diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000000000000000000000000000000000000..669449dc4b05db22e4bfa931be6ccdc35917784c --- /dev/null +++ b/INSTALL @@ -0,0 +1,21 @@ +# +# Copyright +# + +Installation instructions for library dynamicGraph +---------------------------------------------- + +It is recommended to create a specific directory to install this package. +mkdir build +cd build +cmake [Options] .. +make +make install + +Options: + +-DCMAKE_INSTALL_PREFIX=... + specifies the directory where to install the package. + +-DCMAKE_BUILD_TYPE=[none|debug|release|relwithdebinfo|MinSizeRel] + specifies to type of compilation (release, debug, ...) diff --git a/doc/additionalDoc/package.h b/doc/additionalDoc/package.h index 4d22c8469da725dc17adb50b0dc70f618122d304..496b9535023f33a7bce1f72062400c180f8ccffc 100644 --- a/doc/additionalDoc/package.h +++ b/doc/additionalDoc/package.h @@ -5,4 +5,41 @@ This package implements ... +@defgroup factory Plugin management modules. +@ingroup factory + +This code implements the factory design pattern, making creation of features, +tasks and objects available. + +Objects, which are derived from Entities, Tasks, or Features, can be + declared within the code and compiled to shared librairies (.so/.dll files). +These librairies can be loaded at run-time using the sotPluginLoader methods, +and at the same time register their class names to the Factory (see the +sotFactory documentation to learn how). + +The Factory can then create instances of these objects and subsequently +register them in the Pool, where they can be listed, accessed, and acted upon +(see sotPoolStorage documentation). Basic commands defined by entities include +signal connection graph file generation, help and name print, and signals. + +Finally, a shell (command-line) interface is made available thanks to the +sotInterpretor class (see the file test_shell.cpp). Objects deriving from +Entity can expose their own commands by overriding the Entity's default +commandLine() method. It is possible to load a plugin to register custom +shell commands; see sotShellFunctions and sotShellProcedure for an example. + +The public static objects (singletons) made available by including the +corresponding headers in this module are: +\li factory: FactoryStorage +\li pool: PoolStorage +\li Shell: Interpreter + +\image html schema_plugin.png + + +@defgroup signals Signals +@ingroup softwaresupport +This part provides the mechanism to transfer information +from one feature to another. + */ diff --git a/doc/pictures/schema_plugin.png b/doc/pictures/schema_plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..02215f624e985daf346bfe5b432d19cd46e93a98 Binary files /dev/null and b/doc/pictures/schema_plugin.png differ diff --git a/src/debug/debug.cpp b/src/debug/debug.cpp index f5def6f82effaa25aff1cce4d5fe987db9e53953..a8bc457fb91b9e5ee96042c67d19937513a8031b 100644 --- a/src/debug/debug.cpp +++ b/src/debug/debug.cpp @@ -63,9 +63,10 @@ std::ofstream dg_debugfile; //( "/dev/null", std::ios::trunc&std::ios::out ); #endif -DebugTrace dgDebugFLOW(dg_debugfile); -DebugTrace dgERRORFLOW(dg_debugfile); - +namespace dynamicgraph { + DebugTrace dgDEBUGFLOW(dg_debugfile); + DebugTrace dgERRORFLOW(dg_debugfile); +} void DebugTrace::openFile( const char * filename ) { diff --git a/src/dgraph/SourcesLib.cmake b/src/dgraph/SourcesLib.cmake index c7b607e9a9333e9687dd857b7ea63fa9411bf8a2..98c496ade80285ebeb18a2a02a601e5d8c0a7b50 100644 --- a/src/dgraph/SourcesLib.cmake +++ b/src/dgraph/SourcesLib.cmake @@ -22,6 +22,12 @@ SET(libdg_${SOT_MODULE_NAME}_plugins_src dgraph/shell-procedure.cpp ) +# Specify the compile flags for source file. +SET_SOURCE_FILES_PROPERTIES(${SOT_MODULE_NAME}/shell-functions.cpp + ${SOT_MODULE_NAME}/shell-procedure.cpp + PROPERTIES + COMPILE_FLAGS "${MatrixAbstractLayer_cflags}" ) + # --------------------------------------------------------------- # --- GENERIC RULES --------------------------------------------- # --------------------------------------------------------------- diff --git a/src/dgraph/interpreter.cpp b/src/dgraph/interpreter.cpp index e3794e38f46bbaaff705a4ac2736a6a43bbd333b..cb917bd7f23b4f755639de1a776e274b45b06be7 100644 --- a/src/dgraph/interpreter.cpp +++ b/src/dgraph/interpreter.cpp @@ -400,6 +400,7 @@ cmdComputeSignal( const std::string& cmdLine, std::istringstream& cmdArg, std::o void Interpreter:: cmd( const std::string& cmdLine, istringstream& cmdArg, std::ostream& os ) { + cout << "#HACK cmd(" << cmdArg.str() << ")" << endl; istringstream cmdparse(cmdLine.c_str()); string obj,fun; if (cmdLine.find_first_not_of(" ") == string::npos) @@ -486,6 +487,7 @@ ShellFunctionRegisterer( const std::string& funName, const Interpreter::ShellBasicFunction& f) { dgDEBUGIN(25); + cout << "#HACK registering " << funName << endl; Shell.registerFunction(funName,f); dgDEBUGOUT(25); } @@ -504,5 +506,8 @@ void Interpreter::writeCompletionList(std::ostream& os) } +namespace dynamicgraph { //! The global Shell object. -Interpreter dynamicgraph::Shell; + Interpreter Shell; +} + diff --git a/src/dgraph/interpreter.h b/src/dgraph/interpreter.h index 981a8e96aa5ce2b21eb11cf4e6cfa7b06f51f3c7..645e0d06c88bfdc17976c294c2808c8988298bbd 100644 --- a/src/dgraph/interpreter.h +++ b/src/dgraph/interpreter.h @@ -180,9 +180,6 @@ class DYNAMICGRAPH_EXPORT Interpreter }; - -DYNAMICGRAPH_EXPORT extern Interpreter Shell; - /* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */ @@ -204,9 +201,12 @@ public: ShellFunctionRegisterer reg( name,boost::bind(fun,_1,_2,_3) );\ } +DYNAMICGRAPH_EXPORT extern Interpreter Shell; } // namespace dynamicgraph + + #endif /* #ifndef */ diff --git a/src/dgraph/shell-functions.cpp b/src/dgraph/shell-functions.cpp index 78dec1b184eee93b4016cc9bb51fcfc679820a4c..0a4a9f1071612e93b149e89b84cfbd4eb01f6797 100644 --- a/src/dgraph/shell-functions.cpp +++ b/src/dgraph/shell-functions.cpp @@ -488,9 +488,9 @@ cmdCompletionList( const std::string cmdLine, istringstream& cmdArg, std::ostrea extern "C" { - ShellFunctionRegisterer regFun2 - ( "try",boost::bind(ShellFunctions::cmdTry,_1,_2,_3) ); ShellFunctionRegisterer regFun1 + ( "try",boost::bind(ShellFunctions::cmdTry,_1,_2,_3) ); + ShellFunctionRegisterer regFun2 ( "loadPlugins",boost::bind(ShellFunctions::cmdLoadPlugins,_1,_2,_3) ); ShellFunctionRegisterer regFun3 ( "displayPlugins",boost::bind(ShellFunctions::cmdDisplayPlugins,_1,_2,_3) ); diff --git a/src/dgraph/shell-functions.h b/src/dgraph/shell-functions.h index 592056a59474cb41072539b45aad58573ad41b28..e5cf34100463ebd2db2e96751438d94daca50ce2 100644 --- a/src/dgraph/shell-functions.h +++ b/src/dgraph/shell-functions.h @@ -60,6 +60,7 @@ #define STATIC_SHELL_FUNCTION( name ) \ static void name( const std::string cmd,std::istringstream& args, \ std::ostream& os ) + /*! @ingroup dgraph \brief This plugin implements a bunch of useful shell commands. @@ -93,6 +94,4 @@ class SHELLFUNCTIONS_EXPORT ShellFunctions }; - - #endif //#ifndef __SOT_SHELL_FUNCTIONS_HH__