- void SetConnection(Connection::Pointer c);
- void UnsetConnection(Connection::Pointer c);
- //IOStatus Update();
- void SetModifiedStatus();
- typedef std::vector<Connection::WeakPointer> ConnectionVector;
- const ConnectionVector& GetConnectionVector() const { return mConnection; }
+
+ /// Sets a connection
+ void SetConnection(Connection* c);
+ /// Unsets the connection
+ void UnsetConnection(Connection* c);
+ /// The type of vector of output connections
+ typedef std::vector<Connection*> ConnectionVector;
+ /// Returns the vector of connection plugged into this output (const)
+ const ConnectionVector& GetConnectionVector() const;
+
+ /// Returns the status of the input
+ IOStatus GetStatus() const;
+ /// Sets the status of the input
+ void SetStatus( IOStatus s );
+
+ /// Signals the change observers that the output has changed
+ void SignalChange( BlackBox::Pointer box, const std::string& output );
+
+
+ /// Adds the function f to the list of functions to call when
+ /// the output changes.
+ void AddChangeObserver(OutputChangeCallbackType f);
+
+ /// Removes the function f from the list of functions to call when
+ /// the output changes (TO WRITE)
+ void RemoveChangeObserver(OutputChangeCallbackType f);
+
+ /// Private implementation
+ BBTK_DECLARE_PIMPL(BlackBoxOutputConnector);