예제 #1
0
        public void FinishAll()
        {
            var sf = new StackFrame();
            var mn = sf.GetMethod().Name;

            ProgressInfoMessage msgEntity = ProgressInfoMessageBuilder.Create()
                                            .WithCallbackMethodName(mn)
                                            .WithServiceType(serviceType)
                                            .Build();

            distributionFacility.Push(msgEntity);
        }
예제 #2
0
        public void SendTaskProgressIncrease(string user)
        {
            var sf = new StackFrame();
            var mn = sf.GetMethod().Name;

            ProgressInfoMessage msgEntity = ProgressInfoMessageBuilder.Create()
                                            .WithCallbackMethodName(mn)
                                            .WithServiceType(serviceType)
                                            .WithUser(user)
                                            .WithValue(1)
                                            .Build();

            distributionFacility.Push(msgEntity);
        }
        private void handleData(byte[] data, ClientView view)
        {
            try
            {
                MessageBase msg = JsonSerializer.Deserialize <MessageBase>(new ReadOnlySpan <byte>(data));

                if (msg.Type == "ErrorMessage")
                {
                    ErrorMessage ermsg = JsonSerializer.Deserialize <ErrorMessage>(new ReadOnlySpan <byte>(data));
                    view.handleMessage(ermsg, msg.Type);
                }
                if (msg.Type == "LoadContract")
                {
                    LoadMessage lmsg = JsonSerializer.Deserialize <LoadMessage>(new ReadOnlySpan <byte>(data));
                    view.handleMessage(lmsg, msg.Type);
                }
                if (msg.Type == "ProgressInfo")
                {
                    ProgressInfoMessage pimsg = JsonSerializer.Deserialize <ProgressInfoMessage>(new ReadOnlySpan <byte>(data));
                    view.handleMessage(pimsg, msg.Type);
                }
                if (msg.Type == "RecordRequest")
                {
                    GetRecordMessage grmsg = JsonSerializer.Deserialize <GetRecordMessage>(new ReadOnlySpan <byte>(data));
                    view.handleMessage(grmsg, msg.Type);
                }
                if (msg.Type == "DataChanged")
                {
                    DatabaseChangedMessage dbcmsg = JsonSerializer.Deserialize <DatabaseChangedMessage>(new ReadOnlySpan <byte>(data));
                    view.handleMessage(dbcmsg, msg.Type);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
                ErrorMessage ermsg = new ErrorMessage(ex.StackTrace);
                view.handleMessage(ermsg, "ErrorMessage");
            }
        }
 public void startListening()
 {
     while (true)
     {
         waitForTask.WaitOne();
         while (tasks.Count > 0)
         {
             ProgressInfoMessage progress = new ProgressInfoMessage($"Analyzing {tasks[0].Contract.FileName}.");
             TcpServerWrapper.Instance.send <ProgressInfoMessage>(tasks[0].Port, progress);
             ServerLogger.Instance.writeLog(progress.Info);
             tasks[0].executeTask();
             LoadMessage resp = new LoadMessage("", tasks[0].Contract.FileName);
             TcpServerWrapper.Instance.send <LoadMessage>(tasks[0].Port, resp);
             TcpServerWrapper.Instance.sendToAll <DatabaseChangedMessage>(new DatabaseChangedMessage());
             ServerLogger.Instance.writeLog($"{resp.FileName} analyzed succesfully.");
             tasks.RemoveAt(0);
         }
         waitForTask.Reset();
         if (endThread)
         {
             break;
         }
     }
 }