Program: bbtk
Module: $RCSfile: bbtkConnection.cxx,v $
Language: C++
- Date: $Date: 2008/04/18 12:59:15 $
- Version: $Revision: 1.7 $
+ Date: $Date: 2008/04/25 13:37:48 $
+ Version: $Revision: 1.13 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See doc/license.txt or
<<to->bbGetName()<<"\",\""<<input<<"\")"
<<std::endl);
+ bbtkDebugMessage("connection",1,"==> Connection::Connection(\""
+ <<from->bbGetFullName()<<"\",\""<<output<<"\",\""
+ <<to->bbGetFullName()<<"\",\""<<input<<"\")"
+ <<std::endl);
+
if (! from->bbHasOutput(output) )
}
}
- // Lock this pointer !!!
- Pointer p = MakePointer(this,true);
- from->bbConnectOutput(output,p);
- to->bbConnectInput(input,p);
+
mFrom = from;
mOriginalFrom = from;
mTo = to;
mInput = mOriginalInput = input;
mOutput = mOriginalOutput = output;
+ // Lock this pointer !!!
+ //Pointer p = MakePointer(this,true);
+ from->bbConnectOutput(output,this);
+ to->bbConnectInput(input,this);
+
+ bbtkDebugMessage("connection",1,"<== Connection::Connection(\""
+ <<from->bbGetFullName()<<"\",\""<<output<<"\",\""
+ <<to->bbGetFullName()<<"\",\""<<input<<"\")"
+ <<std::endl);
+
bbtkDebugMessage("object",2,"==> Connection::Connection(\""
<<from->bbGetName()<<"\",\""<<output<<"\",\""
<<to->bbGetName()<<"\",\""<<input<<"\")"
<<GetFullName()<<"]"<<std::endl);
if (mAdaptor) mAdaptor.reset();
- mOriginalFrom.reset();
- mOriginalTo.reset();
if (mFrom!=0)
{
- mFrom->bbDisconnectOutput(mOutput,
- GetThisPointer<Connection>());
+ mFrom->bbDisconnectOutput(mOutput,this);
+ // GetThisPointer<Connection>());
+ mFrom.reset();
}
else
{
}
if (mTo!=0)
{
- mTo->bbDisconnectInput(mInput,
- GetThisPointer<Connection>());
+ mTo->bbDisconnectInput(mInput,this);// GetThisPointer<Connection>());
+ mTo.reset();
}
else
{
bbtkInternalError("Connection::~Connection() : invalid final box pointer");
}
- mFrom.reset();
- mTo.reset();
+
bbtkDebugMessage("object",2,
"<== Connection::~Connection() ["
/// Backward Update
IOStatus Connection::BackwardUpdate()
{
- bbtkDebugMessageInc("Process",2,
- "Connection::BackwardUpdate() ["
- <<GetFullName()<<"]"<<std::endl);
+ bbtkDebugMessage("process",5,
+ "===> Connection::BackwardUpdate() ["
+ <<GetFullName()<<"]"<<std::endl);
IOStatus s = UPTODATE;
s = mFrom->bbBackwardUpdate(GetThisPointer<Connection>());
if (mAdaptor && (s==MODIFIED)) mAdaptor->bbSetModifiedStatus();
- bbtkDebugDecTab("Process",2);
-
+ bbtkDebugMessage("process",5,
+ "<=== Connection::BackwardUpdate() ["
+ <<GetFullName()<<"]"<<std::endl);
return s;
}
//==================================================================
/// Forward Update
void Connection::ForwardUpdate()
{
- bbtkDebugMessageInc("Process",2,
+ bbtkDebugMessageInc("process",2,
"Connection::ForwardUpdate() ["
<<GetFullName()<<"]"<<std::endl);
mTo->bbForwardUpdate(this);
- bbtkDebugDecTab("Process",2);
+ bbtkDebugDecTab("process",2);
}
//==================================================================
*/
/// doing necessary conversions (adaptation or pointer cast)
void Connection::TransferData()
{
- bbtkDebugMessageInc("Process",3,
+ bbtkDebugMessageInc("data",3,
"Connection::TransferData() ["
<<GetFullName()<<"]"<<std::endl);
// If no adaptor but source type is an any and target is not an any
else if ( mFromAny && (! mToAny) )
{
- bbtkDebugMessage("Data",3,
- "Connection::TransferData() ["
- <<GetFullName()<<"]"<<std::endl);
- bbtkDebugMessage("Data",3,
+ bbtkDebugMessage("data",3,
" * Source type is an "
<<HumanTypeName<Data>()
<<" which contains a <"
<<HumanTypeName(mFrom->bbGetOutput(mOutput).type())
<<">"<<std::endl);
- bbtkDebugMessage("Data",3,
+ bbtkDebugMessage("data",3,
" * Target type is <"
<<HumanTypeName(mTo->bbGetInputType(mInput))
<<">"<<std::endl);
if (mFrom->bbGetOutput(mOutput)
.contains( mTo->bbGetInputType(mInput) ) )
{
- bbtkDebugMessage("Data",3,
+ bbtkDebugMessage("data",3,
" -> Equal types : transfer ok"<<std::endl);
mTo->bbSetInput( mInput,
mFrom->bbGetOutput(mOutput),
}
if (adaptor)
{
- bbtkDebugMessage("Data",3," -> Adaptor found : using it"
+ bbtkDebugMessage("data",3," -> Adaptor found : using it"
<<std::endl);
adaptor->bbSetInput("In",mFrom->bbGetOutput(mOutput),false);
adaptor->bbExecute();
(mTo->bbGetDescriptor()->GetInputDescriptor(mInput)
->IsPointerType()) )
{
- bbtkDebugMessage("Data",3,
+ bbtkDebugMessage("data",3,
" -> No adaptor found but source and target types are both pointers : trying up or down cast"<<std::endl);
void* nptr =
mTo->bbSetInput(mInput, mFrom->bbGetOutput(mOutput),false);
}
- bbtkDebugDecTab("Process",3);
}
//==================================================================
/// Modified
void Connection::SetModifiedStatus()
{
- bbtkDebugMessageInc("Process",5,
- "Connection::SetModifiedStatus() ["
- <<GetFullName()<<"]"<<std::endl);
+ bbtkDebugMessage("modified",2,
+ "==> Connection::SetModifiedStatus() ["
+ <<GetFullName()<<"]"<<std::endl);
if (mAdaptor) mAdaptor->bbSetModifiedStatus();
mTo->bbSetModifiedStatus( mTo->bbGetInputConnectorMap().find(mInput)->second );
- bbtkDebugDecTab("Process",5);
+ /*
+ bbtkDebugMessage("modified",2,
+ "==> Connection::SetModifiedStatus() ["
+ <<GetFullName()<<"]"<<std::endl);
+ */
}
//==================================================================
//==================================================================
void Connection::Check() const
{
- bbtkMessage("Debug",1,"** Checking Connection "<<(void*)this<<" ["<<GetFullName()<<"]"
+ bbtkMessage("debug",1,"** Checking Connection "<<(void*)this<<" ["<<GetFullName()<<"]"
<<std::endl);
if (mFrom==0)
{
- bbtkMessage("Debug",2," - From = 0"<<std::endl);
+ bbtkMessage("debug",2," - From = 0"<<std::endl);
}
else
{
- bbtkMessage("Debug",2," - From : "<<mFrom->bbGetFullName()<<std::endl);
+ bbtkMessage("debug",2," - From : "<<mFrom->bbGetFullName()<<std::endl);
if (!mFrom->bbHasOutput(mOutput))
{
bbtkError("** Checking Connection "<<(void*)this
<< mFrom->bbGetFullName()<<" does not have output '"
<<mOutput<<"'");
}
- bbtkMessage("Debug",2," - From : Output '"<<mOutput<<"' exists"<<std::endl);
+ bbtkMessage("debug",2," - From : Output '"<<mOutput<<"' exists"<<std::endl);
BlackBox::OutputConnectorMapType::const_iterator i
= mFrom->bbGetOutputConnectorMap().find(mOutput);
if (i== mFrom->bbGetOutputConnectorMap().end())
<<mFrom->bbGetFullName()<<" output '"
<<mOutput<<"' is not in OutputConnectorMap");
}
- bbtkMessage("Debug",2," - From : Output '"<<mOutput
+ bbtkMessage("debug",2," - From : Output '"<<mOutput
<<"' is in OutputConnectorMap"<<std::endl);
- std::vector< Connection::WeakPointer >::const_iterator j;
+ std::vector< Connection* >::const_iterator j;
+ /*
for (j = i->second->GetConnectionVector().begin();
j != i->second->GetConnectionVector().end();
++j)
{
- if ((*j).lock()==GetThisPointer<Connection>()) break;
+ if ((*j)==this) break;
}
- /*
+ */
j = find(i->second->GetConnectionVector().begin(),
i->second->GetConnectionVector().end(),
- GetThisPointer<Connection>());
- */
+ this);
+
if (j==i->second->GetConnectionVector().end())
{
bbtkError("** Checking Connection "<<(void*)this
<<" does not point to this connection");
}
- bbtkMessage("Debug",2," - From : This connection is in OutputConnector connection vector"<<std::endl);
- bbtkMessage("Debug",1," * Box from : Check successfull"<<std::endl);
+ bbtkMessage("debug",2," - From : This connection is in OutputConnector connection vector"<<std::endl);
+ bbtkMessage("debug",2," * Box from : Check successfull"<<std::endl);
}
if (mTo==0)
{
- bbtkMessage("Debug",2," - To = 0"<<std::endl);
+ bbtkMessage("debug",2," - To = 0"<<std::endl);
}
else
{
- bbtkMessage("Debug",2," - To : "<<mTo->bbGetName()<<std::endl);
+ bbtkMessage("debug",2," - To : "<<mTo->bbGetName()<<std::endl);
// std::cout << mTo << std::endl;
// std::cout << mTo->bbGetDescriptor() << std::endl;
// std::cout << mTo->bbGetDescriptor()->GetTypeName() << std::endl;
// mTo->bbGetFullName();
- bbtkMessage("Debug",2," - To : "<<mTo->bbGetFullName()<<std::endl);
+ bbtkMessage("debug",2," - To : "<<mTo->bbGetFullName()<<std::endl);
if (!mTo->bbHasInput(mInput))
{
bbtkError("** Checking Connection "<<(void*)this
<<mTo->bbGetFullName()<<" does not have input '"
<<mInput<<"'");
}
- bbtkMessage("Debug",2," - To : Input '"<<mInput<<"' exists"<<std::endl);
+ bbtkMessage("debug",2," - To : Input '"<<mInput<<"' exists"<<std::endl);
BlackBox::InputConnectorMapType::const_iterator i
= mTo->bbGetInputConnectorMap().find(mInput);
if (i== mTo->bbGetInputConnectorMap().end())
<<mTo->bbGetFullName()<<" input '"
<<mInput<<"' is not in InputConnectorMap");
}
- bbtkMessage("Debug",2," - To : Input '"<<mInput
+ bbtkMessage("debug",2," - To : Input '"<<mInput
<<"' is in InputConnectorMap"<<std::endl);
if (i->second->GetConnection()==0)
<<" does not point to this connection");
}
- bbtkMessage("Debug",2," - To : This connection is in InputConnector connection vector"<<std::endl);
- bbtkMessage("Debug",1," * Box to : Check successfull"<<std::endl);
+ bbtkMessage("debug",2," - To : This connection is in InputConnector connection vector"<<std::endl);
+ bbtkMessage("debug",2," * Box to : Check successfull"<<std::endl);
}
}