Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

centellaSys.h

Go to the documentation of this file.
00001 #ifndef centellaSys_h
00002 #define centellaSys_h
00003 
00004 class processManager;
00005 class selectionManager;
00006 class dataManager;
00007 
00008 class optionManager;
00009 class messageManager;
00010 
00011 //-------------------------------
00013 /*! 
00014 \e Centella System has the following managers:  dataManager, processManager, selectionManager, 
00015 optionManager and messageManager. <br>
00016 \e Managers are singletons. They can be invoqued using the static method \c instance(),
00017 (i.e processManager::instance() returns a pointer to processManager).<br>
00018 \e Managers: optionManager, and messageManager are <b> application independent </b>.
00019 In priniple the <b> uer </b> does not need to modify them or implement any class.
00020  It could be that the user will create classes derived from serviceI, optionVI or messageVI and will need
00021 to declare them to the servers of the managers. <br
00022 \e Managers: dataManager, processManager and selectionManager, are <b> application dependent </b>.
00023 The <b> users </b> should implement their algorithms, cuts and transient data classes,
00024  and add them into the managers. That force the user the derived his/her classes from
00025  the following base classes: algorithmVI, cutVI and trsDataVI. the detector geometry or the persistent
00026  data could force the <b> user </b> to make some modifications in the dataManager.
00027 <ul>
00028         <li> the processManagers stores, serves and executes the system an application
00029         algorithms. All the algorithms lately inherits from the base class algorithmVI.
00030         <li> the selectionManager stores, servers and apply the system and application
00031         selections and cuts. All the cuts and selections lately inherits from the base class
00032         cutVI.
00033         <li> the dataManagers stores ans serves the data. The data is clasified into
00034         persistent and transient. The persistent data is left to the <b> user </b> to handle.
00035         The transient data inherits from the base class trsDataVI.
00036         the user should provide the converters from transient to persistent data and turn
00037         them into algorithms.
00038         <li> the optionManager allows to set options into classes. 
00039         Those classes should inherit from optionVI and should be declared into the server. 
00040         The options can be strings, doubles, integers, and booleans.
00041         <li> the messageManager defines an ostream for the system, and allows the classes
00042         to send messages to that ostream.
00043 </ul>
00044 */
00045 //----------------------------
00046 // JA Hernando, Santa Cruz 02/15/00
00047 //----------------------------
00048 //############################
00049 class centellaSys
00050 //############################
00051 {
00052 public:
00053 
00055         centellaSys();
00057         ~centellaSys();
00058 
00059 private:
00060 
00062         messageManager*   m_messageManager;
00064         optionManager*    m_optionManager;
00065         
00067         dataManager*        m_dataManager;
00069         processManager*     m_processManager;
00071         selectionManager* m_selectionManager;
00072 };
00073 #endif

Generated at Fri Aug 18 12:57:37 2000 for centella framework by doxygen 1.1.3 written by Dimitri van Heesch, © 1997-2000