X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkBlackBoxOutputConnector.h;h=53248857fd1adc3cb6da0ce829b286b32bf37bf0;hb=f4943325ab23ef597c435e65976548f6f4dc49c9;hp=c97cdc55e939434096bd992897738d7629b5f249;hpb=6575a389b71b1b85c79e4444885becb76ecf16e4;p=bbtk.git diff --git a/kernel/src/bbtkBlackBoxOutputConnector.h b/kernel/src/bbtkBlackBoxOutputConnector.h index c97cdc5..5324885 100644 --- a/kernel/src/bbtkBlackBoxOutputConnector.h +++ b/kernel/src/bbtkBlackBoxOutputConnector.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkBlackBoxOutputConnector.h,v $ Language: C++ - Date: $Date: 2008/10/17 08:18:12 $ - Version: $Revision: 1.4 $ + Date: $Date: 2009/06/08 14:50:03 $ + Version: $Revision: 1.10 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -41,32 +41,62 @@ #ifndef __bbtkBlackBoxOutputConnector_h__ #define __bbtkBlackBoxOutputConnector_h__ +#include "bbtkPimpl.h" #include "bbtkConnection.h" +#include "bbtkBlackBox.h" #include "bbtkMessageManager.h" #include + namespace bbtk { - + class BBTK_EXPORT BlackBoxOutputConnector { public: - - BlackBoxOutputConnector(); + + + typedef BlackBox::OutputChangeCallbackType OutputChangeCallbackType; + + /// Ctor + BlackBoxOutputConnector(BlackBoxPointer b); + /// Dtor ~BlackBoxOutputConnector(); + + /// Sets a connection void SetConnection(Connection* c); + /// Unsets the connection void UnsetConnection(Connection* c); - //IOStatus Update(); - void SetModifiedStatus(); + /// The type of vector of output connections typedef std::vector ConnectionVector; - const ConnectionVector& GetConnectionVector() const { return mConnection; } + /// 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); private: - /// The vector of output connections - ConnectionVector mConnection; - /// The status of the output - //IOStatus mStatus; + /// Purposedly not implemented + BlackBoxOutputConnector(const BlackBoxOutputConnector&); + }; }