/* * This method should be called before the termination of the process * This method removes the process from the process list */ protected void TerminateProcess(ServerProcess process) { lock (ProcessList) { ProcessList.Remove(process); } }
} //Sets socket for the communicator private void AddProcess(ServerProcess serverProcess) { lock (_processList) { _processList.Add(serverProcess); _processList.Sort((x, y) => x.Pid.CompareTo(y.Pid)); //sorts processList by Pid } }
private void Analyzer() { System.Timers.Timer checkTimer = new System.Timers.Timer(CheckReceiveTimeInterval); System.Timers.Timer initializeTimer = new System.Timers.Timer(InitializeTimerInterval); initializeTimer.Elapsed += CheckTimerCallback; checkTimer.Elapsed += CheckTimerCallback; initializeTimer.Start(); Packet packet; while ((packet = GetPacket(checkTimer, initializeTimer)) != null) { switch (packet.RequestType) { case (byte)PacketType.FileRequest: { byte processId = packet.ProcessId; ProcessFile(processId, packet); break; } case (byte)PacketType.IdRequest: { byte processId = packet.ProcessId; ProcessUserId(processId, packet); break; } case (byte)PacketType.FileInfo: { byte processId = packet.ProcessId; ProcessFileSave(processId, packet); break; } case (byte)PacketType.File: { ServerProcess process = GetProcess(packet.ProcessId); process.EnqueueProcessQueue(packet); break; } } } checkTimer.Stop(); Activated = false; }