X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkConnection.cxx;h=b3ce70a0b00256df328d49f41fd87df6922cd0b0;hb=cf155931d4fded21cd2aaaeb0f3ead82067d2bef;hp=5f26be0b7b3beb7f7f0bb98a1968dfa0c354af55;hpb=5934ccb7ca0fabdbe6c1907b2aea3696e19a0251;p=bbtk.git diff --git a/kernel/src/bbtkConnection.cxx b/kernel/src/bbtkConnection.cxx index 5f26be0..b3ce70a 100644 --- a/kernel/src/bbtkConnection.cxx +++ b/kernel/src/bbtkConnection.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkConnection.cxx,v $ Language: C++ - Date: $Date: 2008/04/22 14:30:25 $ - Version: $Revision: 1.10 $ + Date: $Date: 2008/07/25 07:44:12 $ + Version: $Revision: 1.14 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See doc/license.txt or @@ -27,6 +27,7 @@ namespace bbtk { + //================================================================== Connection::Pointer Connection::New(BlackBox::Pointer from, const std::string& output, BlackBox::Pointer to, @@ -45,6 +46,7 @@ namespace bbtk <bbConnectInput(input,this); + bbtkDebugMessage("connection",1,"<== Connection::Connection(\"" + <bbGetFullName()<<"\",\""<bbGetFullName()<<"\",\""< Connection::Connection(\"" + <bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" + <bbGetName()<<"\",\""<bbGetName()<<"\",\""<bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" + <bbGetName()<<"\",\""<bbGetName()<<"\",\""< Connection::Connection(\"" + <bbGetFullName()<<"\",\""<bbGetFullName()<<"\",\""<bbHasOutput(output) ) + { + bbtkError("The box \""<bbGetTypeName()<< + "\" has no output \""<bbHasInput(input) ) + { + bbtkError("The box \""<bbGetTypeName()<< + "\" has no input \""<bbGetInputConnectorMap().find(input)->second->IsConnected()) + { + bbtkError("The input \""<bbGetName() + <<"\" is already connected"); + } + + // std::string t1 ( from->bbGetOutputType(output).name() ); + // std::string t2 ( to->bbGetInputType(input).name() ); + // if //( t1 != t2 ) + if ( from->bbGetOutputType(output) != + to->bbGetInputType(input) ) + { + if ( from->bbGetOutputType(output) == typeid(Data) ) + { + bbtkWarning("Connection '" + <bbGetName()<<"."<() + <<"> : type compatibility with '" + <bbGetName()<<"."<bbGetInputType(input) == typeid(Data) ) + { + bbtkDebugMessage("Kernel",8," -> '"<()<<" : can receive any data" + <bbConnectOutput(output,this); + to->bbConnectInput(input,this); + + bbtkDebugMessage("connection",1,"<== Connection::Connection(\"" <bbGetFullName()<<"\",\""<bbGetFullName()<<"\",\""< Connection::BackwardUpdate() [" + <bbBackwardUpdate(GetThisPointer()); @@ -210,8 +329,9 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, if (mAdaptor && (s==MODIFIED)) mAdaptor->bbSetModifiedStatus(); - bbtkDebugDecTab("Process",2); - + bbtkDebugMessage("process",5, + "<=== Connection::BackwardUpdate() [" + <bbForwardUpdate(this); - bbtkDebugDecTab("Process",2); + bbtkDebugDecTab("process",2); } //================================================================== */ @@ -240,7 +360,7 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, /// doing necessary conversions (adaptation or pointer cast) void Connection::TransferData() { - bbtkDebugMessageInc("Process",3, + bbtkDebugMessageInc("data",3, "Connection::TransferData() [" <() <<" which contains a <" <bbGetOutput(mOutput).type()) <<">"<bbGetInputType(mInput)) <<">"<bbGetOutput(mOutput) .contains( mTo->bbGetInputType(mInput) ) ) { - bbtkDebugMessage("Data",3, + bbtkDebugMessage("data",3, " -> Equal types : transfer ok"<bbSetInput( mInput, mFrom->bbGetOutput(mOutput), @@ -297,7 +414,7 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, } if (adaptor) { - bbtkDebugMessage("Data",3," -> Adaptor found : using it" + bbtkDebugMessage("data",3," -> Adaptor found : using it" <bbSetInput("In",mFrom->bbGetOutput(mOutput),false); adaptor->bbExecute(); @@ -311,7 +428,7 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, (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"<bbSetInput(mInput, mFrom->bbGetOutput(mOutput),false); } - bbtkDebugDecTab("Process",3); } //================================================================== @@ -356,15 +472,19 @@ Connection::Connection(BlackBox::Pointer from, const std::string& output, /// Modified void Connection::SetModifiedStatus() { - bbtkDebugMessageInc("Process",5, - "Connection::SetModifiedStatus() [" - < Connection::SetModifiedStatus() [" + <bbSetModifiedStatus(); mTo->bbSetModifiedStatus( mTo->bbGetInputConnectorMap().find(mInput)->second ); - bbtkDebugDecTab("Process",5); + /* + bbtkDebugMessage("modified",2, + "==> Connection::SetModifiedStatus() [" + <