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); }
public void Subscribe(ROSCallback <IMsg> callback) { MessageRecieved += callback; }
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))); }