diff options
Diffstat (limited to 'TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h')
-rw-r--r-- | TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h b/TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h deleted file mode 100644 index 4800ceb4798..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h +++ /dev/null @@ -1,189 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// client.h -// -// = AUTHOR -// Andy Gokhale, Brian Mendel, Sumedh Mungee, Sergio Flores-Gaitan -// and Nagarajan Surendran. -// -// ============================================================================ - -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" - -#include "cubitC.h" -#include "Task_Client.h" -#include "Util_Thread.h" -#include "Timer.h" - -#if defined (CHORUS) -#include "pccTimer.h" -#endif /* CHORUS */ - -#if defined (VME_DRIVER) -#include <hostLib.h> -extern "C" STATUS vmeDrv (void); -extern "C" STATUS vmeDevCreate (char *); -#endif /* defined (VME_DRIVER) */ - -class Client_i : public virtual MT_Priority -{ - // = TITLE - // Helper class implementing the Multi-Threaded Cubit client. -public: - Client_i (void); - //constructor. - - ~Client_i (void); - // destructor. - - int init (int argc, char *argv[]); - // Initialize the state of <Client_i>. - - void run (void); - // Run the tests. - - int do_priority_inversion_test (void); - // Performs the priority inversion test. - - int do_thread_per_rate_test (void); - // Performs the test with 4 threads each sending requests at rates - // of 20, 10, 5, and 1Hz. - - int start_servant (void); - // Starts the client utilization thread. - - void output_latency (void); - // output the latency results for the requests. - -#if defined (VXWORKS) - void output_taskinfo (void); - // Outputs the details of this task to a file taskinfo.txt. -#endif /* VXWORKS */ - -private: - void init_low_priority (void); - // Sets the priority to be used for the low priority clients. - - void calc_util_time (void); - // Calculate the time for one util computation. - - int activate_high_client (void); - // Activates the high priority client. - - int activate_low_client (void); - // Activates the low priority client. - - int activate_util_thread (void); - // Activates the utilization thread. - - void print_priority_inversion_stats (void); - // Prints the results of the tests. - - void print_context_stats (void); - // Prints the context switch results. - - void print_util_stats (void); - // Prints the utilization test results. - - void print_latency_stats (void); - // Prints the latency and jitter results. - - void get_context_switches (void); - // gets the number of context switches. - - Client *high_priority_client_; - // Pointer to the high priority client object. - - Client **low_priority_client_; - // Array to hold pointers to the low priority tasks. - - ACE_High_Res_Timer timer_; - // Timer for timing the tests. - - MT_Priority priority_; - // Priority helper object. - - Util_Thread *util_thread_; - // Utilization thread. - - ACE_Thread_Manager util_thread_manager_; - // Utilization thread manager. - - ACE_timer_t util_task_duration_; - // Time for one computation of utilization thread. - - Task_State *ts_; - // Pointer to task state. - - ACE_Sched_Priority high_priority_; - // Priority used for the high priority client. - - ACE_Sched_Priority low_priority_; - // Priority used by the low priority clients. - - u_int num_low_priority_; - // Number of low priority clients - - u_int num_priorities_; - // Number of priorities used. - - u_int grain_; - // Granularity of the assignment of the priorities. Some OSs have - // fewer levels of priorities than we have threads in our test, so - // with this mechanism we assign priorities to groups of threads - // when there are more threads than priorities. - - u_int counter_; - // counter of the number of priorities used within a grain. - - char *task_id_; - // Set a task_id string starting with "@", so we are able to - // accurately count the number of context switches. - - ACE_Time_Value delta_; - // elapsed time for the latency tests. - - int argc_; - // number of command line arguments. - - char **argv_; - // command line argument array. - - ACE_Thread_Manager client_thread_manager_; - // Create a separate manager for the client. This allows the use of - // its wait () method on VxWorks, without interfering with the - // server's (global) thread manager. - - ACE_timer_t total_latency_; - // total latency time for all the threads. - - ACE_timer_t total_latency_high_; - // latency time threads other than utilisation. - - ACE_timer_t total_util_task_duration_; - // time taken by the utilization task. - - u_int context_switch_; - // Stores the total number of context switches incurred by the - // program while making CORBA requests - - ACE_Thread_Manager server_thread_manager_; - // Thread manager for the servant used for utilization. - -#if (defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE)) && !defined (ACE_WIN32) - ACE_Profile_Timer timer_for_context_switch; - ACE_Profile_Timer::Rusage usage; -#endif /* (defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE)) && !defined (ACE_WIN32) */ -}; - - |