public static void Commit() { BlackBoard.instance.isInitialCommitMade = true; while (BlackBoard.instance.pendingWrites.Count > 0) { BlackBoard.WriteEntry writeEntry = BlackBoard.instance.pendingWrites.Dequeue(); BlackBoard.Board board; if (BlackBoard.instance.boards.Contains(writeEntry.board)) { board = (BlackBoard.Board)BlackBoard.instance.boards[writeEntry.board]; } else { board = new BlackBoard.Board(writeEntry.board); BlackBoard.instance.boards.Add(writeEntry.board, board); } board.Write(writeEntry.id, writeEntry.value); if (board.GetWriteCount() == 1) { BlackBoard.instance.boardNames.Add(writeEntry.board); } BlackBoard.instance.writtenIDs.Add(writeEntry.id); } BlackBoard.instance.UpdateCache(); BlackBoard.instance.writtenIDs.Clear(); }
public static void Register(string board, string id, Callback callback) { if (BlackBoard.instance.boards.Contains(board)) { ((BlackBoard.Board)BlackBoard.instance.boards[board]).Register(id, callback); return; } BlackBoard.Board board2 = new BlackBoard.Board(board); board2.Register(id, callback); BlackBoard.instance.boards.Add(board, board2); }
public static void WriteInstant(string board, string id, object value) { BlackBoard.WriteEntry writeEntry = new BlackBoard.WriteEntry(board, id, value); BlackBoard.Board board2; if (BlackBoard.instance.boards.Contains(writeEntry.board)) { board2 = (BlackBoard.Board)BlackBoard.instance.boards[writeEntry.board]; } else { board2 = new BlackBoard.Board(writeEntry.board); BlackBoard.instance.boards.Add(writeEntry.board, board2); } board2.WriteInstant(writeEntry.id, writeEntry.value); if (board2.GetWriteCount() == 1) { BlackBoard.instance.boardNames.Add(writeEntry.board); } }
public static string[] GetAllFieldsFromBoard(string board) { BlackBoard.Board board2 = (BlackBoard.Board)BlackBoard.instance.boards[board]; return(board2.GetAllFieldNames()); }