// $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiExamples/src/Properties/PropertyAlg.h,v 1.6 2008/10/30 22:40:56 marcocle Exp $ #ifndef GAUDIEXAMPLE_PROPERTYALG_H #define GAUDIEXAMPLE_PROPERTYALG_H // Include files #include "GaudiKernel/Algorithm.h" #include "GaudiKernel/Property.h" #include "GaudiKernel/MsgStream.h" template class AlgFactory; /** @class PropertyAlg Trivial Algorithm for tutorial purposes @author nobody */ class PropertyAlg : public Algorithm { protected: /// Constructor of this form must be provided PropertyAlg(const std::string& name, ISvcLocator* pSvcLocator); public: friend class AlgFactory; /// Three mandatory member functions of any algorithm StatusCode initialize(); StatusCode execute(); StatusCode finalize(); /// Callbacks for properties void readHandler(Property&); void updateHandler(Property&); private: /// These data members are used in the execution of this algorithm /// They are set in the initialization phase by the job options service int m_int; double m_double; std::string m_string; bool m_bool; std::vector m_intarray; std::vector m_doublearray; std::vector m_stringarray; std::vector m_boolarray; std::vector m_emptyarray; std::vector u_doublearrayunits; std::vector u_doublearray; std::vector > u_intpairarray; std::vector > u_doublepairarray; IntegerProperty p_int; DoubleProperty p_double; StringProperty p_string; BooleanProperty p_bool; IntegerArrayProperty p_intarray; DoubleArrayProperty p_doublearray; StringArrayProperty p_stringarray; BooleanArrayProperty p_boolarray; }; #endif // GAUDIEXAMPLE_PROPERTYALG_H