Exemple #1
0
        public ROSBridgeSubscriber <T> Subscribe <T>(string topic, ROSCallback <T> callback, int queueSize) where T : IMsg, new()
        {
            Type messageType = typeof(T);

            ThrowIfTopicExistsUnderDifferentType(topic, messageType, "subscribe");

            ROSBridgeSubscriber subscriber;

            if (!subscribers.TryGetValue(topic, out subscriber))
            {
                subscriber = new ROSBridgeSubscriber <T>(topic, queueSize);
                subscribers.Add(topic, subscriber);
                CacheTopic(topic, messageType);
                SendSubscribeOperation(subscriber);
            }

            var sub = (ROSBridgeSubscriber <T>)subscriber;

            sub.Subscribe(callback);

            return(sub);
        }
Exemple #2
0
 public void Subscribe(ROSCallback <IMsg> callback)
 {
     MessageRecieved += callback;
 }
Exemple #3
0
 public void Unsubscribe(ROSCallback <IMsg> callback)
 {
     MessageRecieved -= callback;
 }
 public static ROSCallback <IMsg> ConvertCallback <T>(ROSCallback <T> callback) where T : IMsg
 {
     return(callback == null ? null : new ROSCallback <IMsg>(o => callback((T)o)));
 }