Пример #1
0
 /*
  * 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;
        }