Program: bbtk
Module: $RCSfile: bbtkConnection.cxx,v $
Language: C++
- Date: $Date: 2008/04/25 13:37:48 $
- Version: $Revision: 1.13 $
+ 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
namespace bbtk
{
+ //==================================================================
Connection::Pointer Connection::New(BlackBox::Pointer from,
const std::string& output,
BlackBox::Pointer to,
<<std::endl);
return p;
}
+ //==================================================================
//==================================================================
/// Ctor with the black box from and to and their input and output.
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<<"\")"
+ <<std::endl);
+ }
+ //==================================================================
+
+ //==================================================================
+ Connection::Pointer Connection::New(BlackBox::Pointer from,
+ const std::string& output,
+ BlackBox::Pointer to,
+ const std::string& input )
+ {
+ bbtkDebugMessage("object",1,"##> Connection::Connection(\""
+ <<from->bbGetName()<<"\",\""<<output<<"\",\""
+ <<to->bbGetName()<<"\",\""<<input<<"\")"
+ <<std::endl);
+ Connection::Pointer p =
+ MakePointer(new Connection(from,output,to,input));
+ bbtkDebugMessage("object",1,"<## Connection::Connection(\""
+ <<from->bbGetName()<<"\",\""<<output<<"\",\""
+ <<to->bbGetName()<<"\",\""<<input<<"\")"
+ <<std::endl);
+ return p;
+ }
+ //==================================================================
+
+ //==================================================================
+ /// Ctor with the black box from and to and their input and output.
+/// Check the input and output compatibility
+Connection::Connection(BlackBox::Pointer from, const std::string& output,
+ BlackBox::Pointer to, const std::string& input )
+ : mAdaptor(),
+ mFactory(),
+ mFromAny(false),
+ mToAny(false)
+ {
+ bbtkDebugMessage("object",2,"==> Connection::Connection(\""
+ <<from->bbGetName()<<"\",\""<<output<<"\",\""
+ <<to->bbGetName()<<"\",\""<<input<<"\")"
+ <<std::endl);
+
+ bbtkDebugMessage("connection",1,"==> Connection::Connection(\""
+ <<from->bbGetFullName()<<"\",\""<<output<<"\",\""
+ <<to->bbGetFullName()<<"\",\""<<input<<"\")"
+ <<std::endl);
+
+
+
+ if (! from->bbHasOutput(output) )
+ {
+ bbtkError("The box \""<<from->bbGetTypeName()<<
+ "\" has no output \""<<output<<"\"");
+ }
+ if (! to->bbHasInput(input) )
+ {
+ bbtkError("The box \""<<to->bbGetTypeName()<<
+ "\" has no input \""<<input<<"\"");
+ }
+
+ if (to->bbGetInputConnectorMap().find(input)->second->IsConnected())
+ {
+ bbtkError("The input \""<<input<<"\" of the box \""<<to->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 '"
+ <<GetFullName()
+ <<"' : '"<<from->bbGetName()<<"."<<output
+ <<"' is of type <"
+ <<HumanTypeName<Data>()
+ <<"> : type compatibility with '"
+ <<to->bbGetName()<<"."<<input
+ <<"' will be resolved at run time"
+ );
+ mFromAny = true;
+ }
+ else if ( to->bbGetInputType(input) == typeid(Data) )
+ {
+ bbtkDebugMessage("Kernel",8," -> '"<<input<<"' type is "
+ <<TypeName<Data>()<<" : can receive any data"
+ <<std::endl);
+ mToAny = true;
+ }
+ else
+ {
+ bbtkError("Connection created between different types without Factory provided");
+ }
+ }
+
+
+ mFrom = from;
+ mOriginalFrom = from;
+ mTo = to;
+ mOriginalTo = 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<<"\")"
Program: bbtk
Module: $RCSfile: bbtkConnection.h,v $
Language: C++
- Date: $Date: 2008/04/18 12:59:15 $
- Version: $Revision: 1.6 $
+ Date: $Date: 2008/07/25 07:44:12 $
+ Version: $Revision: 1.7 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See doc/license.txt or
static Pointer New(BlackBoxPointer from, const std::string& output,
BlackBoxPointer to, const std::string& input,
const FactoryPointer f);
+ static Pointer New(BlackBoxPointer from, const std::string& output,
+ BlackBoxPointer to, const std::string& input);
/// Dtor
// ~Connection();
Connection(BlackBoxPointer from, const std::string& output,
BlackBoxPointer to, const std::string& input,
const FactoryPointer f);
+ /// Ctor
+ Connection(BlackBoxPointer from, const std::string& output,
+ BlackBoxPointer to, const std::string& input);
};
+ //=======================================================================
void Object::ReleasePackages()
{
bbtkDebugMessage("object",1,"##> Object::ReleasePackages()"<<std::endl);
{
if (i->use_count() != 0)
{
+ bbtkDebugMessage("object",1,"##> Releasing package '"<<
+ i->lock()->GetThisPointer<Package>()->GetName()
+ <<"'"<<std::endl);
// Object::Pointer p(i->lock());
Package::WeakPointer w(i->lock()->GetThisPointer<Package>());
Package::Release(w);
}
}
-
+ //=======================================================================
+
Program: bbtk
Module: $RCSfile: bbtkWxBlackBox.cxx,v $
Language: C++
- Date: $Date: 2008/07/24 14:37:06 $
- Version: $Revision: 1.25 $
+ Date: $Date: 2008/07/25 07:44:12 $
+ Version: $Revision: 1.26 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
//=========================================================================
void WxBlackBoxDialog::bbShow()
{
+ if (bbIsShown()) return;
bbtkDebugMessage("wx",5,"WxBlackBoxDialog::bbShow() ["
<<bbGetBlackBox()->bbGetFullName()<<"]"<<std::endl);
WxBlackBoxWindow::bbShow();
//=========================================================================
void WxBlackBoxFrame::bbShow()
{
+ if (bbIsShown()) return;
bbtkDebugMessage("wx",5,"WxBlackBoxFrame::bbShow("
<<bbGetBlackBox()->bbGetFullName()<<")"<<std::endl);
WxBlackBoxWindow::bbShow();
Program: bbtk
Module: $RCSfile: bbwxColourSelector.h,v $
Language: C++
- Date: $Date: 2008/05/07 13:14:48 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2008/07/25 07:44:12 $
+ Version: $Revision: 1.5 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
-=========================================================================*//**
+=========================================================================*/
/**
* \file
* \brief Short description in one line
Program: bbtk
Module: $RCSfile: bbwxColourSelectorButton.h,v $
Language: C++
- Date: $Date: 2008/05/07 13:14:49 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2008/07/25 07:44:12 $
+ Version: $Revision: 1.5 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
-=========================================================================*//**
+=========================================================================*/
/**
* \file
* \brief Short description in one line
Program: bbtk
Module: $RCSfile: bbwxCommandButton.cxx,v $
Language: C++
- Date: $Date: 2008/06/26 07:37:11 $
- Version: $Revision: 1.9 $
+ Date: $Date: 2008/07/25 07:44:12 $
+ Version: $Revision: 1.10 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
std::string commandstr(mBox->bbGetInputIn());
// bbtk::Interpreter::mGlobalInterpreter->InterpretLine( commandstr );
- int i;
+ unsigned int i;
bool ok=true;
int pos1=0,pos2;
pos2 = commandstr.find(";",pos1);
Program: bbtk
Module: $RCSfile: bbwxCommandButton.h,v $
Language: C++
- Date: $Date: 2008/05/07 13:14:49 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2008/07/25 07:44:12 $
+ Version: $Revision: 1.5 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
-=========================================================================*//**
+=========================================================================*/
+/**
* \brief Short description in one line
*
* Long description which
Program: bbtk
Module: $RCSfile: bbwxSlider.h,v $
Language: C++
- Date: $Date: 2008/04/18 12:59:53 $
- Version: $Revision: 1.11 $
+ Date: $Date: 2008/07/25 07:44:12 $
+ Version: $Revision: 1.12 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
-=========================================================================*//**
+=========================================================================*/
/**
* \file
* \brief Short description in one line
--- /dev/null
+Using bbtk in C++
+==================
+
+The examples in subdirs must be built as separate projects
+(it illustrates how bbtk and packages installs are found and used
+by external projects)