internal void Publish(MessageAndSerializerFunc msg) { lock (gate) { publishQueue.TryOnNext(msg); } }
public override void EnqueueMessage(MessageAndSerializerFunc holder) { if (!outbox.TryOnNext(holder)) { // TODO: handle queue full case } }
internal void Append(string message, ROSOUT_LEVEL level, CallerInfo callerInfo) { var logMessage = new Log { msg = message, name = ThisNode.Name, file = callerInfo.FilePath, function = callerInfo.MemberName, line = (uint)callerInfo.LineNumber, level = (byte)level, header = new Messages.std_msgs.Header { stamp = ROS.GetTime() } }; logMessage.topics = topicManager.GetAdvertisedTopics(); queue.TryOnNext(logMessage); }
public override void EnqueueMessage(MessageAndSerializerFunc holder) { outbox.TryOnNext(holder); // queue will drop oldest messages when full }