public void ProcessQueueMessage([QueueTrigger("demoqueue")] ValueMessage message, ILogger log)
        {
            // Set operation id correlation
            CorrelationManager.SetOperationId(message.OperationId);

            TelemetryClient.TrackEvent(GlobalMetricNames.QueueMessageReceived, new Dictionary <string, string>
            {
                [nameof(message)] = JsonConvert.SerializeObject(message)
            });

            var stopWatch = Stopwatch.StartNew();

            // Process queue message
            var       i   = 0;
            const int max = 5;

            while (i++ < max)
            {
                log.LogTrace($"Tracing a test message... ({i}/{max})");
                Thread.Sleep(2500);
            }

            stopWatch.Stop();

            TelemetryClient.TrackEvent(nameof(ProcessQueueMessage), metrics: new Dictionary <string, double>
            {
                [GlobalMetricNames.Elapsed] = stopWatch.ElapsedMilliseconds
            });
        }
예제 #2
0
 public override void SendValue(ValueMessage VM)
 {
     if (VM.Value == null)
     {
         Output.WriteLine("{0}{1} {2} = **NULL**",
                          VM.UTCTime.ToString("dd-MM-yyyy") + " " + VM.UTCTime.ToLongTimeString(),
                          GetIndentString(),
                          VM.Message);
     }
     else
     {
         ArrayList TempArray  = new ArrayList(VM.Value.ToString().Split('\r', '\n'));
         string    TempString = new String(' ', VM.UTCTime.ToString("dd-MM-yyyy").Length + 1 + VM.UTCTime.ToLongTimeString().Length);
         TempString += "";
         TempString += GetIndentString();
         TempString += " " + new String(' ', VM.Message.Length) + "  ";
         Output.WriteLine("{0}{1} {2} = '{3}'",
                          VM.UTCTime.ToString("dd-MM-yyyy") + " " + VM.UTCTime.ToLongTimeString(),
                          GetIndentString(),
                          VM.Message,
                          TempArray[0].ToString());
         TempArray.RemoveAt(0);
         foreach (String s in TempArray)
         {
             if (s.Trim('\r', '\n').Length != 0)
             {
                 Output.WriteLine("{0} '{1}'",
                                  TempString,
                                  s);
             }
         }
     }
 }
 public MessageInfo(ValueMessage message)
     : this(message.MessageType)
 {
     AddValue("Timestamp", "{0:d} {0:HH:mm:ss.fff}", message.Timestamp);
     AddValue("Name", "{0}", message.Name);
     AddValue("Road #", "{0:#,##0}", message.RoadNo);
     AddValue("Device #", "{0:#,##0}", message.DeviceNo);
     AddValue("Old Value", "{0}", message.OldValue);
     AddValue("New Value", "{0}", message.NewValue);
 }
예제 #4
0
 public override void SendValue(ValueMessage VM)
 {
     if (VM.Value == null)
     {
         Console.WriteLine("LOG: " + GetIndentString() + String.Format("{0} = NULL", VM.Message));
     }
     else
     {
         Console.WriteLine("LOG: " + GetIndentString() + String.Format("{0} = '{1}'", VM.Message, VM.Value.ToString()));
     }
 }
예제 #5
0
파일: Category.cs 프로젝트: retahc/old-code
        public void SendValue(string Message, object Value)
        {
            ValueMessage VM = new ValueMessage();

            VM.InitializeNewMessage();
            VM.Message = Message;
            VM.Value   = Value;
            foreach (Destination d in _Destins)
            {
                d.SendValue(VM);
            }
        }
 public void RunPubJob()
 {
     if (pubTimer.HasElapsed() >= 10)
     {
         if (zmqPubSocket != null)
         {
             StatusMessage statusMsg = new StatusMessage();
             lock (pubLockObj)
             {
                 foreach (KeyValuePair <int, float> x in encoderMap)
                 {
                     ValueMessage v = new ValueMessage {
                         Id = x.Key, Value = x.Value
                     };
                     statusMsg.Encoders.Add(v);
                 }
                 foreach (KeyValuePair <int, float> x in accelerometerMap)
                 {
                     ValueMessage v = new ValueMessage {
                         Id = x.Key, Value = x.Value
                     };
                     statusMsg.Accelerometers.Add(v);
                 }
                 foreach (KeyValuePair <int, float> x in gyroscopeMap)
                 {
                     ValueMessage v = new ValueMessage {
                         Id = x.Key, Value = x.Value
                     };
                     statusMsg.Gyroscopes.Add(v);
                 }
                 foreach (KeyValuePair <int, float> x in advancedMap)
                 {
                     ValueMessage v = new ValueMessage {
                         Id = x.Key, Value = x.Value
                     };
                     statusMsg.Advanced.Add(v);
                 }
             }
             Console.WriteLine("Sending");
             zmqPubSocket.Send(new ZFrame(statusMsg.ToByteArray()));
         }
         else
         {
             Interlocked.Increment(ref pubFailCount);
             if (pubFailCount >= 100)
             {
                 ReInitPubSocket();
             }
         }
         pubTimer.Start();
     }
 }
예제 #7
0
        public bool HandleSendValue(int sender, ValueMessage message)
        {
            if (_keyGenStates[message.Proposer].Acks[sender])
            {
                throw new ArgumentException("Already handled this value");
            }
            _keyGenStates[message.Proposer].Acks[sender] = true;
            var myValue = Fr.FromBytes(Crypto.Secp256K1Decrypt(
                                           _keyPair.PrivateKey.Encode(), message.EncryptedValues[_myIdx]
                                           ));

            if (_keyGenStates[message.Proposer].Commitment is null)
            {
                throw new ArgumentException("Cannot handle value since there was no commitment yet");
            }
            if (!_keyGenStates[message.Proposer].Commitment !.Evaluate(_myIdx + 1, sender + 1)
                .Equals(G1.Generator * myValue)
                )
            {
                throw new ArgumentException("Decrypted value does not match commitment");
            }
            _keyGenStates[message.Proposer].Values[sender] = myValue;
            if (_keyGenStates[message.Proposer].ValueCount() > 2 * Faulty && !_finished.Contains(message.Proposer))
            {
                _finished.Add(message.Proposer);
            }

            if (_confirmSent)
            {
                return(false);
            }
            if (!Finished())
            {
                return(false);
            }
            _confirmSent = true;
            return(true);
        }
예제 #8
0
 /// <summary>
 /// Sends the value.
 /// </summary>
 /// <param name="VM">The vm.</param>
 public abstract void SendValue(ValueMessage VM);