00001 #ifndef algorithmTask_h
00002 #define algorithmTask_h
00003
00004 #include "Event/algorithmComposite.h"
00005 #include "Event/serviceI.h"
00006
00007 00009
00010 \c algorithmTask is an algorithmVI and an algorithmComposite.<br>
00011 \b users can add dinamically algorithms using the services of serviceI.
00012 <ul>
00013 <li> To be declared into the system servers, every algorithmTask object should have a name (\c setName() method of serviceI).
00014 <li> \b user can add algorithms to the algorithm composite via the
00015 service of serviceI (optionVI). Use option \c "addAlgorithm".
00016 <li> the \c setOption() method from optionVI allows an external user
00017 (optionManager) to add dinamically algorithms to the algorithmComposite.
00018 </ul>
00019 */
00020
00021
00022
00023
00024
00025 class algorithmTask: public algorithmComposite, public serviceI
00026
00027 {
00028 public:
00029
00030
00032 algorithmTask(std::string name) {m_algName = ""; setName(name);}
00034 virtual ~algorithmTask(){};
00035
00037 virtual void writeOut() const;
00038
00039 protected:
00040
00042 virtual void defineOption();
00044 virtual void setOption(std::string add, std::string algName);
00045
00046 private:
00047
00049 std::string m_algName;
00050 };
00051 #endif