summaryrefslogtreecommitdiff
path: root/ACE/ace/Monitor_Control/Monitor_Control_utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/Monitor_Control/Monitor_Control_utils.h')
-rw-r--r--ACE/ace/Monitor_Control/Monitor_Control_utils.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/ACE/ace/Monitor_Control/Monitor_Control_utils.h b/ACE/ace/Monitor_Control/Monitor_Control_utils.h
new file mode 100644
index 00000000000..0299c59fc53
--- /dev/null
+++ b/ACE/ace/Monitor_Control/Monitor_Control_utils.h
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Monitor_Control_utils.h
+ *
+ * $Id$
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef MONITOR_CONTROL_UTILS_H
+#define MONITOR_CONTROL_UTILS_H
+
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/Service_Config.h"
+#include "ace/Dynamic_Service.h"
+#include "ace/Reactor.h"
+
+#include "ace/Monitor_Control/Auto_Update_Starter.h"
+
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::CPU_Load_Monitor
+ CPU_LOAD_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Memory_Usage_Monitor
+ MEMORY_USAGE_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Num_Threads_Monitor
+ NUM_THREADS_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Bytes_Sent_Monitor
+ BYTES_SENT_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Packets_Sent_Monitor
+ PACKETS_SENT_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Bytes_Received_Monitor
+ BYTES_RECEIVED_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Packets_Received_Monitor
+ PACKETS_RECEIVED_MONITOR;
+
+using namespace ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control;
+
+template<typename OS_MP_TYPE>
+Monitor_Base*
+create_os_monitor (const char* name = 0,
+ ACE_Time_Value period = ACE_Time_Value::zero)
+{
+ Monitor_Base* retval = 0;
+
+ ACE_VERSIONED_NAMESPACE_NAME::MC_ADMINMANAGER *mgr =
+ ACE_VERSIONED_NAMESPACE_NAME::ACE_Dynamic_Service<
+ ACE_VERSIONED_NAMESPACE_NAME::MC_ADMINMANAGER>::instance (
+ "MC_ADMINMANAGER");
+
+ const char* working_name =
+ (name == 0 ? OS_MP_TYPE::default_name () : name);
+
+ retval = mgr->admin ().monitor_point (working_name);
+
+ if (retval == 0)
+ {
+ ACE_NEW_RETURN (retval, OS_MP_TYPE (working_name), 0);
+ (void) mgr->admin ().monitor_point (retval, period);
+ }
+
+ return retval;
+}
+
+#define START_PERIODIC_MONITORS \
+ ACE_VERSIONED_NAMESPACE_NAME::STARTER starter; \
+ starter.activate ()
+
+#define STOP_PERIODIC_MONITORS \
+ ACE_VERSIONED_NAMESPACE_NAME::ACE_Dynamic_Service< \
+ ACE_VERSIONED_NAMESPACE_NAME::MC_ADMINMANAGER>::instance ( \
+ "MC_ADMINMANAGER")->admin ().reactor ()->end_reactor_event_loop (); \
+ ACE_VERSIONED_NAMESPACE_NAME::ACE_Thread_Manager::instance ()->wait ()
+
+#define ADD_PERIODIC_QUERY(HANDLER,QUERY,INTERVAL_SEC) \
+ ACE_VERSIONED_NAMESPACE_NAME::ACE_Dynamic_Service< \
+ ACE_VERSIONED_NAMESPACE_NAME::MC_ADMINMANAGER>::instance ( \
+ "MC_ADMINMANAGER")->admin ().auto_query (HANDLER, QUERY, INTERVAL_SEC)
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // MONITOR_CONTROL_UTILS_H