Esempio n. 1
0
 private static void SendUpdateMessage(ISolutionStrategy strategy, ProblemUpdateType updateType, ZmqSocket socket, IFrameable data)
 {
     ZmqMessage message = GetUpdateMessage(strategy, updateType, data);
     socket.SendMessage(message);
 }
Esempio n. 2
0
 private static void SendUpdateMessage(ISolutionStrategy strategy, ProblemUpdateType updateType, ZmqSocket socket, object data, IFormatter formatter = null)
 {
     formatter = formatter ?? new BinaryFormatter();
     ZmqMessage message = new ZmqMessage();
     message.Append(Encoding.UTF8.GetBytes(strategy.Signature));
     message.AppendEmptyFrame();
     message.Append(new byte[1] { (byte)updateType });
     message.AppendEmptyFrame();
     message.Append(new byte[1] { 0x7f });
     using (MemoryStream ms = new MemoryStream())
     {
         formatter.Serialize(ms, data);
         // TODO: Find more efficient way to write byte[] since MemoryStream.ToArray performs a copy
         //       whereas MemoryStream.GetBuffer() returns all allocated bytes whether they are empty or not
         message.Append(ms.ToArray());
     }
     socket.SendMessage(message);
 }
Esempio n. 3
0
 private static void SendUpdateMessage(ISolutionStrategy strategy, ProblemUpdateType updateType, ZmqSocket socket, IBinaryConvertible data)
 {
     ZmqMessage message = new ZmqMessage();
     message.Append(Encoding.UTF8.GetBytes(strategy.Signature));
     message.AppendEmptyFrame();
     message.Append(new byte[1] { (byte)updateType });
     message.AppendEmptyFrame();
     message.Append(new byte[1] { 0x7f });
     message.Append(data.GetBytes());
     socket.SendMessage(message);
 }
Esempio n. 4
0
 private static ZmqMessage GetUpdateMessage(ISolutionStrategy strategy, ProblemUpdateType updateType, IFrameable data)
 {
     var dataFrames = data.GetFrames(Encoding.UTF8).ToList();
     List<Frame> msgFrames = new List<Frame>(dataFrames.Count + 5);
     msgFrames.Add(new Frame(Encoding.UTF8.GetBytes(strategy.Signature)));
     msgFrames.Add(Frame.Empty);
     msgFrames.Add(new Frame(new byte[1] { (byte)updateType }));
     msgFrames.Add(Frame.Empty);
     msgFrames.Add(new Frame(new byte[1] { 0x7f }));
     msgFrames.AddRange(dataFrames);
     ZmqMessage message = new ZmqMessage(msgFrames);
     return message;
 }