public void incrementSequence(string topic) { Publication pub = lookupPublication(topic); if (pub != null) { pub.incrementSequence(); } }
public void publish(Publication p, RosMessage msg, SerializeFunc serfunc = null) { if (msg == null) { return; } if (serfunc == null) { serfunc = msg.Serialize; } if (p.connection_header == null) { p.connection_header = new Header { Values = new Dictionary <string, string>() }; p.connection_header.Values["type"] = p.DataType; p.connection_header.Values["md5sum"] = p.Md5sum; p.connection_header.Values["message_definition"] = p.MessageDefinition; p.connection_header.Values["callerid"] = ThisNode.Name; p.connection_header.Values["latching"] = Convert.ToString(p.Latch); } if (!ROS.ok || shuttingDown) { return; } if (p.HasSubscribers || p.Latch) { bool nocopy = false; bool serialize = false; if (msg != null && msg.MessageType != "undefined/unknown") { p.getPublishTypes(ref serialize, ref nocopy, msg.MessageType); } else { serialize = true; } p.publish(new MessageAndSerializerFunc(msg, serfunc, serialize, nocopy)); if (serialize) { PollManager.Instance.poll_set.ContinueThreads(); } } else { p.incrementSequence(); } }