//============================================================================ // onClientDisconnected //============================================================================ public void onClientDisconnected() { ThreadSafeCallbackList.MessagePacket pak = new ThreadSafeCallbackList.MessagePacket(); pak.mCallback = this.handleClientDisconnected; pak.mDataObject = 0; pak.mMessageID = "disconnected"; mMessageCallbackList.enqueueMessage(pak); }
//============================================================================ // onClientConnected //============================================================================ public void onClientConnected(string title, string pdbFile) { AllocLogStream.pauseProcessing(); ThreadSafeCallbackList.MessagePacket pak = new ThreadSafeCallbackList.MessagePacket(); pak.mCallback = this.handleClientConnected; pak.mDataObject = pdbFile; pak.mMessageID = title; mMessageCallbackList.enqueueMessage(pak); }
//============================================================================ // fileLoadThread //============================================================================ private void fileLoadThread(object obj) { threadStartParms parms = (threadStartParms)obj; string filename = parms.filename; string pdbfilename = parms.pdbfilename; //open the file, and inact the log stream FileStream fs = new FileStream(filename, FileMode.Open); BinaryReader br = new BinaryReader(fs); AllocLogStream.processBinaryStream(br, pdbfilename, parms.throttleTime); fs.Close(); ThreadSafeCallbackList.MessagePacket pak = new ThreadSafeCallbackList.MessagePacket(); pak.mCallback = this.onStopPressed; pak.mDataObject = null; pak.mMessageID = "stopped"; mMessageCallbackList.enqueueMessage(pak); }
//============================================================================ // onMessageRecieved //============================================================================ public void onMessageRecieved(PacketWrapper packet) { ThreadSafeCallbackList.MessagePacket pak = new ThreadSafeCallbackList.MessagePacket(); pak.mCallback = this.handleMessageRecieved; pak.mDataObject = packet; pak.mMessageID = "packet"; if (GlobalSettings.PlaybackSpeed != GlobalSettings.ePlaybackSpeeds.eASAP) { //spinloop here while we're waiting for commands to be processed.. while (mMessageCallbackList.Count() > 1024) { if (!AllocLogStream.isProcessing()) { break; } // Thread.Sleep(1000); } } mMessageCallbackList.enqueueMessage(pak); }