Skip to content

Instantly share code, notes, and snippets.

View ShukantPal's full-sized avatar
👌
Open to opportunities

Shukant Pal ShukantPal

👌
Open to opportunities
View GitHub Profile
@ShukantPal
ShukantPal / typescript.lang
Created June 5, 2021 18:38
Example TypeScript language definition file for GNU source-highlight
# TypeScript lang definition file
# Typed variable declaration
(keyword,normal,symbol,normal,usertype) = `(const|let|var)([[:blank:]]*[$[:alnum:]_]+[[:blank:]]*)(:)([[:blank:]]*)([$[:alnum:]_]+)`
# Type annotations for function parameters
state symbol = "(" begin
state internal_object_literal delim "{" "}" begin
include "typescript_simple.lang"
end
Name Sign Bit Exponent bits Mantissa bits emin emax
binary16 1 5 10 -14 +15
binary32 1 8 23 -126 +127
binary64 1 11 52 -1022 +1023
public class FirebaseGameSynchronizer implements ChildEventListener {
private DatabaseReference mMovesRecordList;
private Modulator mMessageModulator;
private int mMoveIndex;
private int mSelfMoveSoph;
private boolean mSynced;
private ArrayDeque<String> mUnsyncBuffer = new ArrayDeque<>();
public class FirebaseGameSynchronizer implements ChildEventListener {
private int mSelfMoveSoph;// Semaphore that stores the no. of moves we posted
private boolean mMoveIndex;// no. of moves synced currently
private DatabaseReference mMovesRecordList;// moves-node
private Modulator mMessageModulator;
private FirebaseGameSynchronizer(DatabaseReference movesRecordList,
Modulator messageModulator) {
mMovesRecordList = movesRecordList;
public class FirebaseGameSynchronizer implements ChildEventListener {
private DatabaseReference mMovesRecordList;
private Modulator mMessageModulator;
private int mMoveIndex;
private int mSelfMoveSoph;
private boolean mSynced;
private ArrayDeque<String> mUnsyncBuffer = new ArrayDeque<>();
protected class SelfChallengeCanceller implements Transaction.Handler {
private final SelfChallengeManager mChallenger;
private SelfChallengeCanceller(SelfChallengeManager challenger) {
Log.d("MatchMaker.Cancel", "Opened cancel request");
mChallenger = challenger;
}
@NonNull
public class FirebasePlayerMatchMaker {
public static interface OnMatchMadeCallback {
public void run(FirebasePlayerMatchMaker c);
}
public static final String RANDOM_ROOM_ID = "/Globl";
public static final String ROOM_ID = "/GameRooms";
public static final String GAMES_RECORD = "/OpenGameMoves";
protected class SelfChallengeManager implements Transaction.Handler, ValueEventListener {
protected final Challenge mUploadedChallenge;
protected DatabaseReference mChallengeRef;
protected DatabaseReference mGameRecordRef;
protected SelfChallengeManager() {
mUploadedChallenge = new Challenge(
FirebaseAuth.getInstance().getCurrentUser().getUid(), null);
}
protected class Matcher implements Transaction.Handler {
private Challenge mSelectedChallenge = null;
private final OnFailCallback mFailCallback;
protected Matcher(@Nullable OnFailCallback failCallback) {
mFailCallback = failCallback;
}
@NonNull
package com.silcos.permainan.match;
import com.google.firebase.database.IgnoreExtraProperties;
@IgnoreExtraProperties
public class Challenge {
public String opener;
public String gameRef;