00001 00002 00003 #ifndef CMSDIAG_HH 00004 #define CMSDIAG_HH 00005 00006 #include "cms.hh" 00007 #include "linklist.hh" 00008 00009 class RCS_EXPORT CMS_DIAG_STATIC_PROC_INFO 00010 { 00011 public: 00012 char name[16]; // process name 00013 char host_sysinfo[32]; 00014 long pid; /* Process, Thread or Task Id. */ 00015 double rcslib_ver; // Version of the rcslib used by this component. 00016 }; 00017 00018 class RCS_EXPORT CMS_DIAG_PROC_INFO:public CMS_DIAG_STATIC_PROC_INFO 00019 { 00020 public: 00021 CMS_INTERNAL_ACCESS_TYPE access_type; // access type of last operation 00022 long msg_id; // id of the message written or at time of read. 00023 long msg_size; // size of the message written or at time of read. 00024 long msg_type; // id of the message written or at time of read. 00025 long number_of_accesses; 00026 long number_of_new_messages; 00027 double bytes_moved; 00028 double bytes_moved_across_socket; 00029 double last_access_time; 00030 double first_access_time; 00031 double max_difference; 00032 double min_difference; 00033 }; 00034 00035 class RCS_EXPORT CMS_DIAG_HEADER 00036 { 00037 public: 00038 long last_writer; 00039 long last_reader; 00040 }; 00041 00042 00043 class RCS_EXPORT CMS_DIAGNOSTICS_INFO:public CMS_DIAG_HEADER 00044 { 00045 public: 00046 CMS_DIAGNOSTICS_INFO (); 00047 virtual ~ CMS_DIAGNOSTICS_INFO (); 00048 CMS_DIAG_PROC_INFO *last_writer_dpi; 00049 CMS_DIAG_PROC_INFO *last_reader_dpi; 00050 RCS_LINKED_LIST *dpis; 00051 }; 00052 00053 00054 extern double cmsdiag_timebias; 00055 extern int cmsdiag_timebias_set; 00056 00057 00058 #endif