diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Metrics/Metrics_FrameManager_T.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Metrics/Metrics_FrameManager_T.h | 277 |
1 files changed, 0 insertions, 277 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Metrics/Metrics_FrameManager_T.h b/TAO/orbsvcs/orbsvcs/Metrics/Metrics_FrameManager_T.h deleted file mode 100644 index 0335c8bf43c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Metrics/Metrics_FrameManager_T.h +++ /dev/null @@ -1,277 +0,0 @@ -// $Id$ - -#ifndef METRICS_FRAME_MANAGER_T_H -#define METRICS_FRAME_MANAGER_T_H - -#include "ace/OS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Hash_Map_Manager.h" -#include "ace/High_Res_Timer.h" - -#include "orbsvcs/Time_Utilities.h" -#include "orbsvcs/RtecSchedulerC.h" -#include "orbsvcs/MetricsS.h" - -#include "orbsvcs/Metrics/Metrics_FrameManager.h" - - -template <class ACE_LOCK> -struct TAO_Metrics_Frame_Manager_Data -{ - // = TITLE - // Defines a class for time frame management data. - // - // = DESCRIPTION - // This class makes use of the <ACE_Time_Value> class to - // store period and endpoint data for a given time frame. - -public: - - TAO_Metrics_Frame_Manager_Data (RtecScheduler::Period_t p) - : frame_id_ (0), period_ (0, p / 10) {} - // Constructor. Note that p is in hundreds of nanoseconds so we - // divide by ten to get microseconds. The start_ and end_ data - // members are set equal to ACE_Time_Value::zero by their own - // default constructors. - - CORBA::ULong frame_id_; - // Stores the number of previous frames for that period. May roll - // over, but is intended to provide a locally (for a large range of - // locality) unique frame identifier. - - ACE_Time_Value period_; - // Relative time to the next frame, from the start of this one. - - ACE_Time_Value start_; - // Absolute time of the start of the frame and end of the last. - - ACE_Time_Value end_; - // Absolute time to the end of the frame and start of the next. - - ACE_LOCK lock_; - // Lock for synchronizing access to the data instance. -}; - - -template <class ACE_LOCK> -class TAO_Metrics_FrameManager : public POA_Metrics::FrameManager - -{ - // = TITLE - // Defines a class that implements a local metrics cache. - // - // = DESCRIPTION - // This class makes use of the <ACE_Metrics_Cache> class to - // implement a cache for local use. -public: - - typedef TAO_Metrics_FrameManager<ACE_LOCK> TAO_METRICS_FRAME_MANAGER_TYPE; - typedef TAO_Metrics_Frame_Manager_Data<ACE_LOCK> TAO_METRICS_FRAME_MANAGER_DATA_TYPE; - - typedef ACE_Hash_Map_Manager_Ex<RtecScheduler::Period_t, - TAO_METRICS_FRAME_MANAGER_DATA_TYPE *, - ACE_Hash<RtecScheduler::Period_t>, - ACE_Equal_To<RtecScheduler::Period_t>, - ACE_Null_Mutex> METRICS_FRAME_DATA_MAP; - // Type of map used for O(1) lookup of monitored data for operations. - - typedef ACE_Hash_Map_Entry<RtecScheduler::Period_t, - TAO_METRICS_FRAME_MANAGER_DATA_TYPE *> - METRICS_FRAME_DATA_MAP_ENTRY; - // Type of entry in monitor map. - - typedef ACE_Hash_Map_Iterator_Ex<RtecScheduler::Period_t, - TAO_METRICS_FRAME_MANAGER_DATA_TYPE *, - ACE_Hash<RtecScheduler::Period_t>, - ACE_Equal_To<RtecScheduler::Period_t>, - ACE_Null_Mutex> - METRICS_FRAME_DATA_MAP_ITERATOR; - // Type of iterator for monitor map. - - TAO_Metrics_FrameManager (); - // Constructor. - - ~TAO_Metrics_FrameManager (); - // Destructor. - - CORBA::Short register_period (RtecScheduler::Period_t p, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::INTERNAL, - Metrics::SYNCHRONIZATION)); - // Binds the period to the internal frame map, with a new frame data - // structure. Returns 0 if a new entry is bound successfully, - // returns 1 if an attempt is made to bind an existing entry, and - // returns -1 if failures occur. - - CORBA::Short update_all_frames (const ACE_Time_Value& tv); - // Updates time frames, based on the passed time value. - - CORBA::Short update_all_frames_with_time (Metrics::Time mt, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::SYNCHRONIZATION)); - // Updates time frames, based on the passed time value. - - CORBA::Short update_all_frames (CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::SYNCHRONIZATION)); - // Updates time frames, based on the current time as of the call. - - CORBA::Short update_frame (RtecScheduler::Period_t p, const ACE_Time_Value& tv); - // Updates the passed period's time frame, based on the passed time - // value. - - CORBA::Short update_frame_with_time (RtecScheduler::Period_t p, - Metrics::Time mt, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::INTERNAL, - Metrics::SYNCHRONIZATION)); - // Updates the passed period's time frame, based on the passed time - // value. - - CORBA::Short update_frame (RtecScheduler::Period_t p, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::INTERNAL, - Metrics::SYNCHRONIZATION)); - // Updates the passed period's time frame, based on the current time - // as of the call. - - CORBA::Short reset_all_frames (const ACE_Time_Value& tv); - // Resets time frames, based on the passed time value. - - CORBA::Short reset_all_frames_with_time (Metrics::Time mt, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::SYNCHRONIZATION)); - // Resets time frames, based on the passed time value. - - CORBA::Short reset_all_frames (CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::SYNCHRONIZATION)); - // Resets time frames, based on the current time as of the call. - - CORBA::Short reset_frame (RtecScheduler::Period_t p, const ACE_Time_Value& tv); - // Resets the passed period's start-of-frame, based on the passed time - // value. - - CORBA::Short reset_frame_with_time (RtecScheduler::Period_t p, - Metrics::Time mt, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::INTERNAL, - Metrics::SYNCHRONIZATION)); - // Resets the passed period's start-of-frame, based on the passed time - // value. - - CORBA::Short reset_frame (RtecScheduler::Period_t p, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::INTERNAL, - Metrics::SYNCHRONIZATION)); - // Resets the passed period's start-of-frame, based on the current time - // as of the call. - - CORBA::Short get_start_time (RtecScheduler::Period_t p, ACE_Time_Value &start); - // Gets the start time for the period's current frame. - - CORBA::Short get_start_time (RtecScheduler::Period_t p, - Metrics::Time &start, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::INTERNAL, - Metrics::SYNCHRONIZATION)); - // Gets the start time for the period's current frame. - - CORBA::Short get_end_time (RtecScheduler::Period_t p, ACE_Time_Value &end); - // Gets the end time for the period's current frame. - - CORBA::Short get_end_time (RtecScheduler::Period_t p, - Metrics::Time &end, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::INTERNAL, - Metrics::SYNCHRONIZATION)); - // Gets the end time for the period's current frame. - - CORBA::Short get_frame_id (RtecScheduler::Period_t p, - CORBA::ULong &id, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::INTERNAL, - Metrics::SYNCHRONIZATION)); - // Gets the locally unique identifier for the period's current frame. - - CORBA::Short get_frame_data (RtecScheduler::Period_t p, ACE_Time_Value &start, - ACE_Time_Value &end, CORBA::ULong &id); - // Gets the start time, end time, and id period's current frame. - - CORBA::Short get_frame_data (RtecScheduler::Period_t p, - Metrics::Time &start, - Metrics::Time &end, - CORBA::ULong &id, - CORBA::Environment &ACE_TRY_ENV - = CORBA::Environment::default_environment ()) - ACE_THROW_SPEC ((CORBA::SystemException, - Metrics::INTERNAL, - Metrics::SYNCHRONIZATION)); - // Gets the start time, end time, and id period's current frame. - -protected: - - CORBA::Short update_data (TAO_Metrics_Frame_Manager_Data<ACE_LOCK> & data, - const ACE_Time_Value& tv); - // Updates the passed frame data structure's start and end times, - // based on the passed time value. This is a protected internal - // method, and should only be called with locks already held. - - - CORBA::Short reset_data (TAO_Metrics_Frame_Manager_Data<ACE_LOCK> & data, - const ACE_Time_Value& tv); - // Resets the passed frame data structure's start and end times, to - // the passed time value and one period later, respectively. This - // is a protected internal method, and should only be called with - // locks already held. - - METRICS_FRAME_DATA_MAP frame_data_map_; - // Maps periods to frame data. - - // Count of the number of registered periods. - u_long period_count_; - - ACE_LOCK lock_; - // Lock for synchronizing access to the map. -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "orbsvcs/Metrics/Metrics_FrameManager_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Metrics_FrameManager_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#if defined (__ACE_INLINE__) -#include "orbsvcs/Metrics/Metrics_FrameManager_T.inl" -#endif /* __ACE_INLINE__ */ - -#endif /* METRICS_FRAME_MANAGER_T_H */ - |