/// <summary> /// Executes a subscribe_var command. /// Requests the blackboard to send a notification to the subscriber module when a shared variable is written /// </summary> /// <param name="command">Command to execute</param> private void SubscribeVarCommand(Command command) { SharedVariableSubscription subscription; if (!SharedVariableSubscription.TryParse(command, out subscription)) { SendResponse(command, false); return; } if (!sharedVariables.Contains(subscription.VariableName)) { if (subscription.SubscriptionType == SharedVariableSubscriptionType.Creation) { string varName = subscription.VariableName; if (!pendingSubscriptions.ContainsKey(varName)) { pendingSubscriptions.Add(varName, new List <SharedVariableSubscription>()); } if (!pendingSubscriptions[varName].Contains(subscription)) { pendingSubscriptions[varName].Add(subscription); } SendResponse(command, true); } else { SendResponse(command, false); return; } } else { sharedVariables[subscription.VariableName].Subscriptions.Add(subscription); SendResponse(command, true); } }
public SubscriptionPropertyDescriptor(int index, SharedVariableSubscription subscription, Attribute[] attrs) : base(index.ToString(), attrs) { this.subscription = subscription; }
public SubscriptionPropertyDescriptor(int index, SharedVariableSubscription subscription) : this(index, subscription, null) { }