Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef WINDOWS_MULTI_INSTANCE_MONITOR_H
00014 #define WINDOWS_MULTI_INSTANCE_MONITOR_H
00015
00016 #include "ace/pre.h"
00017
00018 #include "ace/Unbounded_Queue.h"
00019
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 #pragma once
00022 #endif
00023
00024 #include "ace/Monitor_Control/Windows_Monitor.h"
00025
00026 #if defined (ACE_HAS_WIN32_PDH)
00027
00028 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00029
00030 namespace ACE
00031 {
00032 namespace Monitor_Control
00033 {
00034
00035
00036
00037
00038
00039
00040
00041 class MONITOR_CONTROL_Export Windows_Multi_Instance_Monitor
00042 {
00043 protected:
00044 Windows_Multi_Instance_Monitor (const ACE_TCHAR *wildcard_path);
00045 virtual ~Windows_Multi_Instance_Monitor (void);
00046
00047
00048 void update_i (void);
00049
00050
00051 void clear_impl (void);
00052
00053 protected:
00054 double value_;
00055
00056 private:
00057 typedef ACE_Unbounded_Queue<Windows_Monitor *>
00058 INSTANCES;
00059 typedef ACE_Unbounded_Queue_Const_Iterator<Windows_Monitor *>
00060 INSTANCES_ITERATOR;
00061
00062 INSTANCES instances_;
00063 DWORD n_instances_;
00064 PDH_STATUS status_;
00065 };
00066 }
00067 }
00068
00069 ACE_END_VERSIONED_NAMESPACE_DECL
00070
00071 #include "ace/post.h"
00072
00073 #endif
00074
00075 #endif // WINDOWS_MULTI_INSTANCE_MONITOR_H