Program: bbtk
Module: $RCSfile: bbtkBlackBoxOutputConnector.cxx,v $
Language: C++
- Date: $Date: 2008/10/17 08:18:12 $
- Version: $Revision: 1.8 $
+ Date: $Date: 2008/12/08 12:54:00 $
+ Version: $Revision: 1.9 $
=========================================================================*/
/* ---------------------------------------------------------------------
namespace bbtk
{
+ //======================================================================
BlackBoxOutputConnector::BlackBoxOutputConnector()
- // : mStatus(MODIFIED)
+ : mStatus(OUTOFDATE)
{
bbtkDebugMessage("Kernel",9,"BlackBoxOutputConnector::BlackBoxOutputConnector()"<<std::endl);
}
+ //======================================================================
+
+ //======================================================================
BlackBoxOutputConnector::~BlackBoxOutputConnector()
{
bbtkDebugMessage("Kernel",9,
"<== BlackBoxOutputConnector::~BlackBoxOutputConnector()"
<<std::endl);
}
+ //======================================================================
+ //======================================================================
///
void BlackBoxOutputConnector::SetConnection(Connection* c)
{
bbtkDebugMessage("Kernel",9,"BlackBoxOutputConnector::SetConnection("
<<c<<")"<<std::endl);
mConnection.push_back(c);
+ // AddChangeObserver(boost::bind(&Connection::SignalChange,c));
}
+ //======================================================================
-
- ///
+ //======================================================================
void BlackBoxOutputConnector::UnsetConnection(Connection* c)
{
bbtkDebugMessageInc("Kernel",9,"BlackBoxOutputConnector::UnsetConnection("
bbtkInternalError("BlackBoxOutputConnector::UnsetConnection("<<c<<") : connection is absent from connections list");
}
mConnection.erase(i);
+ // RemoveChangeObserver(boost::bind(&Connection::SignalChange,c));
bbtkDebugDecTab("Kernel",9);
}
-
+ //======================================================================
+ //======================================================================
+ void BlackBoxOutputConnector::SignalChange( BlackBox::Pointer box,
+ const std::string& output )
+ {
+ bbtkDebugMessage("change",2,
+ "==> BlackBoxOutputConnector::SignalChange("
+ <<box->bbGetFullName()<<",'"
+ <<output<<"','"<<GetIOStatusString(mStatus)<<"') ["
+ <<this<<"]"
+ <<std::endl);
+
+ mChangeSignal(box,output,mStatus);
+
+ bbtkDebugMessage("change",2,
+ "<== BlackBoxOutputConnector::SignalChange("
+ <<box->bbGetFullName()<<",'"
+ <<output<<"','"<<GetIOStatusString(mStatus)<<"') ["
+ <<this<<"]"
+ <<std::endl);
+ }
+ //======================================================================
+ /*
void BlackBoxOutputConnector::SetModifiedStatus()
{
bbtkDebugMessage("modified",2,
}
-
+ */
+ /*
+ //======================================================================
+ void BlackBoxOutputConnector::SetChangeTime(const ChangeTime& t)
+ {
+ bbtkDebugMessage("change",2,
+ "==> BlackBoxOutputConnector::SetChangeTime("<<t<<") ["
+ <<this<<"]"
+ <<std::endl);
+ if (mChangeTime.Set(t))
+ {
+ mChangeSignal(this);
+ }
+ bbtkDebugMessage("change",2,
+ "<== BlackBoxOutputConnector::SetChangeTime("<<t<<") ["
+ <<this<<"]"
+ <<std::endl);
+ }
+ //======================================================================
+ */
+ /*
+ //======================================================================
+ void BlackBoxOutputConnector::SetChangeTimeToCurrentTime()
+ {
+ bbtkDebugMessage("change",2,
+ "==> BlackBoxOutputConnector::SetChangeTimetoCurrentTime() ["
+ <<this<<"]"
+ <<std::endl);
+ mChangeTime.Set(ChangeTime::GetCurrentTime());
+ mChangeSignal(this);
+
+ bbtkDebugMessage("change",2,
+ "<==> BlackBoxOutputConnector::SetChangeTimetoCurrentTime() ["
+ <<this<<"]"
+ <<std::endl);
+ }
+ //======================================================================
+ */
+ //======================================================================
+ void BlackBoxOutputConnector::AddChangeObserver(OutputChangeCallbackType f)
+ {
+ mChangeSignal.connect(f);
+ }
+ //======================================================================
+
+ //======================================================================
+ /// Removes the function f from the list of functions to call when
+ /// the output changes (TO WRITE)
+ void BlackBoxOutputConnector::RemoveChangeObserver(OutputChangeCallbackType f)
+ {
+ bbtkError("BlackBoxOutputConnector::RemoveChangeObserver not implemented");
+
+ //mChangeSignal.disconnect(f);
+ }
+ //======================================================================
}
// namespace bbtk