diff options
Diffstat (limited to 'modules/CIAO/DAnCE/NodeManager/MonitorController.h')
-rw-r--r-- | modules/CIAO/DAnCE/NodeManager/MonitorController.h | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/modules/CIAO/DAnCE/NodeManager/MonitorController.h b/modules/CIAO/DAnCE/NodeManager/MonitorController.h new file mode 100644 index 00000000000..4da2dfb322f --- /dev/null +++ b/modules/CIAO/DAnCE/NodeManager/MonitorController.h @@ -0,0 +1,123 @@ +// $Id$ + +//--------------------------------------------------------------------------------- +/** + * @file MonitorController.h + * + * @brief The Monitor Controller class. + * + * This class is invoked by the Nodemanager object and it + * in turn loads the proper Monitor which is strategised. + * + * @author Nilabja Roy + */ +//---------------------------------------------------------------------------------- +#ifndef MONITOR_CONTROLLER_H +#define MONITOR_CONTROLLER_H + +#include "NodeManager_svnt_export.h" +#include "Deployment_BaseC.h" + +#include "TargetManager/TargetManagerImplC.h" +#include "ace/Task.h" +#include "ace/Auto_Ptr.h" + +#include "ace/Synch_Traits.h" +#include "ace/Synch.h" + + +/** + * @namespace CIAO + * + * @brief The top level CIAO namespace + * + */ + +namespace CIAO +{ + + class MonitorBase; + + class NodeManager_Impl_Base; + + /** + * @class MonitorController + * + * @brief The Controller class + * + * Acts as a facade to the Monitor + * module + * + */ + class NodeManager_svnt_Export MonitorController : public ACE_Task_Base + { + public: + /** + * @brief The main function containing the + * entire activity. + * + * This function runs in the context of the + * thread + * @return int The status of the function + */ + int svc (void); + /** + * @brief The terminate function + * + * This function is called to terminate the + * thread + */ + void terminate (); + + + /// The Constructor. + MonitorController (CORBA::ORB_ptr orb, + ::Deployment::Domain& domain, + ::Deployment::TargetManager_ptr target, + ::CIAO::NodeManager_Impl_Base* node_mgr + ); + + ~MonitorController (); + protected: + + /** + * @brief returns the terminating flag + * @return bool The terminating state of the thread + */ + bool terminating (); + + /// The monitor object + auto_ptr <MonitorBase> monitor_; + + /// The TargetManagerImpl object + CIAO::TargetManagerImpl_var target_impl_cmp_; + + /// The TargetManager Facet .... + Deployment::TargetManager_var target_facet_i_; + + /// The terminate flag_ + bool terminate_flag_; + + /// Thread Mutex for synchronizing call + ACE_SYNCH_MUTEX lock_; + + /// the ORB pointer .. + /// @todo Make this a _var + CORBA::ORB_ptr orb_; + + /// The initial domain + ::Deployment::Domain initial_domain_; + + /// The Node Manager + ::CIAO::NodeManager_Impl_Base* node_mgr_; + + /// Flag tells ; what to monitor + bool monitor_cpu_usage_; + + /// To add component pid or not .. + bool add_component_pid_; + }; + +} // CIAO + +#endif |