Beispiel #1
0
        public void Write(BridgeType message, Action completed)
        {
            byte[] msg = CyberSerialization.Serialize(message);

            var data = new List <byte>(1 + 4 + Topic.Length + 4 + msg.Length);

            data.Add((byte)BridgeOp.Publish);
            data.Add((byte)(Topic.Length >> 0));
            data.Add((byte)(Topic.Length >> 8));
            data.Add((byte)(Topic.Length >> 16));
            data.Add((byte)(Topic.Length >> 24));
            data.AddRange(Topic);
            data.Add((byte)(msg.Length >> 0));
            data.Add((byte)(msg.Length >> 8));
            data.Add((byte)(msg.Length >> 16));
            data.Add((byte)(msg.Length >> 24));
            data.AddRange(msg);

            Instance.SendAsync(data.ToArray(), completed);
        }
 public void RegSubscriber <DataType, BridgeType>(IBridgePlugin plugin, Func <BridgeType, DataType> converter)
 {
     plugin.AddType <DataType>(typeof(BridgeType).Name);
     plugin.AddSubscriberCreator <DataType>(
         (instance, topic, callback) => (instance as CyberBridgeInstance).AddSubscriber <BridgeType>(topic,
                                                                                                     rawData => callback(converter(CyberSerialization.Unserialize <BridgeType>(rawData)))
                                                                                                     )
         );
 }