#include <C_GeneratorStats.hpp>
Public Types | |
typedef C_GeneratorStats::_T_dynamicalRepartition | T_dynamicalRepartition |
enum | E_Action { E_CREATE_INCOMING_CALL, E_CALL_FAILED, E_CALL_REFUSED, E_CALL_INIT_SUCCESSFULLY_ENDED, E_CALL_TRAFFIC_SUCCESSFULLY_ENDED, E_CALL_DEFAULT_SUCCESSFULLY_ENDED, E_CALL_ABORT_SUCCESSFULLY_ENDED, E_SEND_MSG, E_RECV_MSG, E_RESET_PD_COUNTERS, E_RESET_PL_COUNTERS, E_FAILED_UNEXPECTED_MSG, E_FAILED_CANNOT_SEND_MSG, E_FAILED_ABORTED, E_FAILED_TIMEOUT, E_CREATE_OUTGOING_CALL, E_ADD_CALL_DURATION, E_ADD_RESPONSE_TIME_DURATION, E_FAILED_CALL_REJECTED, E_FAILED_MAX_UDP_RETRANS, E_FAILED_CMD_NOT_SENT, E_FAILED_REGEXP_DOESNT_MATCH, E_FAILED_REGEXP_HDR_NOT_FOUND } |
enum | E_CounterName { CPT_C_IncomingCallCreated, CPT_C_MsgSend, CPT_C_MsgRecv, CPT_C_CurrentCall, CPT_C_InitSuccessfulCall, CPT_C_TrafficSuccessfulCall, CPT_C_DefaultSuccessfulCall, CPT_C_AbortSuccessfulCall, CPT_C_FailedCall, CPT_C_RefusedCall, CPT_C_FailedCallAborted, CPT_C_FailedCallTimeout, CPT_C_FailedCallCannotSendMessage, CPT_C_FailedCallUnexpectedMessage, CPT_C_OutgoingCallCreated, CPT_C_NbOfCallUsedForAverageResponseTime, CPT_C_AverageResponseTime, CPT_C_NbOfCallUsedForAverageCallLength, CPT_C_AverageCallLength, CPT_C_FailedCallMaxUdpRetrans, CPT_C_FailedCallCallRejected, CPT_C_FailedCallCmdNotSent, CPT_C_FailedCallRegexpDoesntMatch, CPT_C_FailedCallRegexpHdrNotFound, CPT_PD_IncomingCallCreated, CPT_PD_MsgSend, CPT_PD_MsgRecv, CPT_PD_InitSuccessfulCall, CPT_PD_TrafficSuccessfulCall, CPT_PD_DefaultSuccessfulCall, CPT_PD_AbortSuccessfulCall, CPT_PD_FailedCall, CPT_PD_RefusedCall, CPT_PD_FailedCallAborted, CPT_PD_FailedCallTimeout, CPT_PD_FailedCallCannotSendMessage, CPT_PD_FailedCallUnexpectedMessage, CPT_PD_OutgoingCallCreated, CPT_PD_NbOfCallUsedForAverageResponseTime, CPT_PD_AverageResponseTime, CPT_PD_NbOfCallUsedForAverageCallLength, CPT_PD_AverageCallLength, CPT_PD_FailedCallMaxUdpRetrans, CPT_PD_FailedCallCallRejected, CPT_PD_FailedCallCmdNotSent, CPT_PD_FailedCallRegexpDoesntMatch, CPT_PD_FailedCallRegexpHdrNotFound, CPT_PL_IncomingCallCreated, CPT_PL_MsgSend, CPT_PL_MsgRecv, CPT_PL_InitSuccessfulCall, CPT_PL_TrafficSuccessfulCall, CPT_PL_DefaultSuccessfulCall, CPT_PL_AbortSuccessfulCall, CPT_PL_FailedCall, CPT_PL_RefusedCall, CPT_PL_FailedCallAborted, CPT_PL_FailedCallTimeout, CPT_PL_FailedCallCannotSendMessage, CPT_PL_FailedCallUnexpectedMessage, CPT_PL_OutgoingCallCreated, CPT_PL_NbOfCallUsedForAverageResponseTime, CPT_PL_AverageResponseTime, CPT_PL_NbOfCallUsedForAverageCallLength, CPT_PL_AverageCallLength, CPT_PL_FailedCallMaxUdpRetrans, CPT_PL_FailedCallCallRejected, CPT_PL_FailedCallCmdNotSent, CPT_PL_FailedCallRegexpDoesntMatch, CPT_PL_FailedCallRegexpHdrNotFound, E_NB_COUNTER } |
Public Methods | |
void | close () |
int | computeStat (E_Action P_action) |
int | computeStat (E_Action P_action, unsigned long P_value) |
int | executeStatAction (E_Action P_action) |
int | executeStatAction (E_Action P_action, unsigned long P_value) |
void | displayScreen (int P_id, int P_sub_screen) |
void | makeFirstLog () |
void | makeLog () |
void | info_msg (char *P_msg) |
void | err_msg (char *P_msg) |
void | reset_cumul_counters () |
void | activate_percent_traffic () |
void | setRepartitionCallLength (unsigned int *repartition, int nombre) |
void | setRepartitionCallLength (char *liste) |
void | setRepartitionResponseTime (unsigned int *repartition, int nombre) |
void | setRepartitionResponseTime (char *liste) |
void | setFileName (char *name) |
void | setFileName (char *name, char *extension) |
void | displayData () |
void | displayStat () |
void | displayRepartition () |
void | dumpData () |
int | init () |
void | displayScreen () |
void | makeDisplay1 (bool P_display) |
void | makeDisplay2 () |
char * | dumpCounters () |
Static Public Methods | |
C_GeneratorStats * | instance () |
Definition at line 50 of file C_GeneratorStats.hpp.
|
Actions on counters Definition at line 67 of file C_GeneratorStats.hpp.
00068 { 00069 E_CREATE_INCOMING_CALL, 00070 E_CALL_FAILED, 00071 E_CALL_REFUSED, 00072 // E_CALL_SUCCESSFULLY_ENDED, 00073 00074 00075 E_CALL_INIT_SUCCESSFULLY_ENDED, 00076 E_CALL_TRAFFIC_SUCCESSFULLY_ENDED, 00077 E_CALL_DEFAULT_SUCCESSFULLY_ENDED, 00078 E_CALL_ABORT_SUCCESSFULLY_ENDED, 00079 00080 E_SEND_MSG, 00081 E_RECV_MSG, 00082 00083 E_RESET_PD_COUNTERS, 00084 E_RESET_PL_COUNTERS, 00085 00086 E_FAILED_UNEXPECTED_MSG, 00087 E_FAILED_CANNOT_SEND_MSG, 00088 E_FAILED_ABORTED, 00089 00090 E_FAILED_TIMEOUT, 00091 00092 E_CREATE_OUTGOING_CALL, 00093 00094 00095 // Not used 00096 E_ADD_CALL_DURATION, 00097 E_ADD_RESPONSE_TIME_DURATION, 00098 E_FAILED_CALL_REJECTED, 00099 E_FAILED_MAX_UDP_RETRANS, 00100 E_FAILED_CMD_NOT_SENT, 00101 E_FAILED_REGEXP_DOESNT_MATCH, 00102 E_FAILED_REGEXP_HDR_NOT_FOUND 00103 }; |
|
Counters management Definition at line 107 of file C_GeneratorStats.hpp.
00108 { 00109 // Cumulative counter 00110 CPT_C_IncomingCallCreated, 00111 CPT_C_MsgSend, 00112 CPT_C_MsgRecv, 00113 CPT_C_CurrentCall, 00114 00115 00116 CPT_C_InitSuccessfulCall, 00117 CPT_C_TrafficSuccessfulCall, 00118 CPT_C_DefaultSuccessfulCall, 00119 CPT_C_AbortSuccessfulCall, 00120 CPT_C_FailedCall, 00121 CPT_C_RefusedCall, 00122 CPT_C_FailedCallAborted, 00123 CPT_C_FailedCallTimeout, 00124 00125 CPT_C_FailedCallCannotSendMessage, 00126 CPT_C_FailedCallUnexpectedMessage, 00127 CPT_C_OutgoingCallCreated, 00128 CPT_C_NbOfCallUsedForAverageResponseTime, 00129 CPT_C_AverageResponseTime, 00130 00131 // not used 00132 CPT_C_NbOfCallUsedForAverageCallLength, 00133 CPT_C_AverageCallLength, 00134 CPT_C_FailedCallMaxUdpRetrans, 00135 CPT_C_FailedCallCallRejected, 00136 CPT_C_FailedCallCmdNotSent, 00137 CPT_C_FailedCallRegexpDoesntMatch, 00138 CPT_C_FailedCallRegexpHdrNotFound, 00139 00140 // Periodic Display counter 00141 CPT_PD_IncomingCallCreated, // must be the first PD counter (RESET_PD_COUNTER macro) 00142 CPT_PD_MsgSend, 00143 CPT_PD_MsgRecv, 00144 00145 00146 CPT_PD_InitSuccessfulCall, 00147 CPT_PD_TrafficSuccessfulCall, 00148 CPT_PD_DefaultSuccessfulCall, 00149 CPT_PD_AbortSuccessfulCall, 00150 CPT_PD_FailedCall, 00151 CPT_PD_RefusedCall, 00152 CPT_PD_FailedCallAborted, 00153 CPT_PD_FailedCallTimeout, 00154 00155 CPT_PD_FailedCallCannotSendMessage, 00156 CPT_PD_FailedCallUnexpectedMessage, 00157 CPT_PD_OutgoingCallCreated, 00158 CPT_PD_NbOfCallUsedForAverageResponseTime, 00159 CPT_PD_AverageResponseTime, 00160 00161 00162 // not used 00163 CPT_PD_NbOfCallUsedForAverageCallLength, 00164 CPT_PD_AverageCallLength, 00165 CPT_PD_FailedCallMaxUdpRetrans, 00166 CPT_PD_FailedCallCallRejected, 00167 CPT_PD_FailedCallCmdNotSent, 00168 CPT_PD_FailedCallRegexpDoesntMatch, 00169 CPT_PD_FailedCallRegexpHdrNotFound, // must be the last PD counter (RESET_PD_COUNTER macro) 00170 00171 // Periodic logging counter 00172 CPT_PL_IncomingCallCreated, // must be the first PL counter (RESET_PL_COUNTER macro) 00173 CPT_PL_MsgSend, 00174 CPT_PL_MsgRecv, 00175 00176 00177 CPT_PL_InitSuccessfulCall, 00178 CPT_PL_TrafficSuccessfulCall, 00179 CPT_PL_DefaultSuccessfulCall, 00180 CPT_PL_AbortSuccessfulCall, 00181 CPT_PL_FailedCall, 00182 CPT_PL_RefusedCall, 00183 CPT_PL_FailedCallAborted, 00184 CPT_PL_FailedCallTimeout, 00185 00186 00187 CPT_PL_FailedCallCannotSendMessage, 00188 CPT_PL_FailedCallUnexpectedMessage, 00189 CPT_PL_OutgoingCallCreated, 00190 CPT_PL_NbOfCallUsedForAverageResponseTime, 00191 CPT_PL_AverageResponseTime, 00192 00193 00194 // not used 00195 CPT_PL_NbOfCallUsedForAverageCallLength, 00196 CPT_PL_AverageCallLength, 00197 CPT_PL_FailedCallMaxUdpRetrans, 00198 CPT_PL_FailedCallCallRejected, 00199 CPT_PL_FailedCallCmdNotSent, 00200 CPT_PL_FailedCallRegexpDoesntMatch, 00201 CPT_PL_FailedCallRegexpHdrNotFound, // must be the last PL counter (RESET_PL_COUNTER macro) 00202 00203 E_NB_COUNTER 00204 }; |
|
Delete the single instance of the class. Only one instance of C_GeneratorStats exists in the component. This instance is deleted when the close method is called. Definition at line 43 of file C_GeneratorStats.cpp.
00044 { 00045 00046 FREE_TABLE(m_ResponseTimeRepartition); 00047 00048 FREE_TABLE(m_CallLengthRepartition) ; 00049 00050 if(m_outputStream != NULL) 00051 { 00052 m_outputStream->close(); 00053 DELETE_VAR(m_outputStream); 00054 } 00055 00056 FREE_TABLE(m_fileName); 00057 00058 FREE_TABLE(m_current_repartition_table); 00059 00060 00061 m_SizeOfResponseTimeRepartition = 0; 00062 m_SizeOfCallLengthRepartition = 0; 00063 m_CallLengthRepartition = NULL; 00064 m_fileName = NULL; 00065 m_ResponseTimeRepartition = NULL; 00066 m_outputStream = NULL; 00067 00068 DELETE_VAR(m_instance); 00069 m_instance = NULL; 00070 00071 } |
|
ComputeStat Methode are used to modify counter value It's the main interface to update counter
Definition at line 367 of file C_GeneratorStats.cpp.
00368 { 00369 switch (P_action) { 00370 00371 case E_CREATE_INCOMING_CALL : 00372 00373 m_mutexTable[CPT_C_IncomingCallCreated].lock() ; 00374 m_counters [CPT_C_IncomingCallCreated]++; 00375 m_counters [CPT_PD_IncomingCallCreated]++; 00376 m_counters [CPT_PL_IncomingCallCreated]++; 00377 m_mutexTable[CPT_C_IncomingCallCreated].unlock() ; 00378 00379 m_mutexTable[CPT_C_CurrentCall].lock(); 00380 m_counters [CPT_C_CurrentCall]++; 00381 m_mutexTable[CPT_C_CurrentCall].unlock(); 00382 break; 00383 00384 case E_SEND_MSG : 00385 m_mutexTable[CPT_C_MsgSend].lock() ; 00386 m_counters [CPT_C_MsgSend]++; 00387 m_counters [CPT_PD_MsgSend]++; 00388 m_counters [CPT_PL_MsgSend]++; 00389 m_mutexTable[CPT_C_MsgSend].unlock() ; 00390 break; 00391 00392 case E_RECV_MSG : 00393 m_mutexTable[CPT_C_MsgRecv].lock() ; 00394 m_counters [CPT_C_MsgRecv]++; 00395 m_counters [CPT_PD_MsgRecv]++; 00396 m_counters [CPT_PL_MsgRecv]++; 00397 m_mutexTable[CPT_C_MsgRecv].unlock() ; 00398 break; 00399 00400 case E_CALL_FAILED : 00401 m_mutexTable[CPT_C_FailedCall].lock() ; 00402 m_counters [CPT_C_FailedCall]++; 00403 m_counters [CPT_PD_FailedCall]++; 00404 m_counters [CPT_PL_FailedCall]++; 00405 m_mutexTable[CPT_C_FailedCall].unlock() ; 00406 m_mutexTable[CPT_C_CurrentCall].lock(); 00407 m_counters [CPT_C_CurrentCall]--; 00408 m_mutexTable[CPT_C_CurrentCall].unlock(); 00409 break; 00410 00411 case E_CALL_INIT_SUCCESSFULLY_ENDED : 00412 m_mutexTable[CPT_C_InitSuccessfulCall].lock() ; 00413 m_counters [CPT_C_InitSuccessfulCall]++; 00414 m_counters [CPT_PD_InitSuccessfulCall]++; 00415 m_counters [CPT_PL_InitSuccessfulCall]++; 00416 m_mutexTable[CPT_C_InitSuccessfulCall].unlock() ; 00417 00418 m_mutexTable[CPT_C_CurrentCall].lock(); 00419 m_counters [CPT_C_CurrentCall]--; 00420 m_mutexTable[CPT_C_CurrentCall].unlock(); 00421 break; 00422 00423 case E_CALL_TRAFFIC_SUCCESSFULLY_ENDED : 00424 m_mutexTable[CPT_C_TrafficSuccessfulCall].lock() ; 00425 m_counters [CPT_C_TrafficSuccessfulCall]++; 00426 m_counters [CPT_PD_TrafficSuccessfulCall]++; 00427 m_counters [CPT_PL_TrafficSuccessfulCall]++; 00428 m_mutexTable[CPT_C_TrafficSuccessfulCall].unlock() ; 00429 00430 m_mutexTable[CPT_C_CurrentCall].lock(); 00431 m_counters [CPT_C_CurrentCall]--; 00432 m_mutexTable[CPT_C_CurrentCall].unlock(); 00433 break; 00434 00435 case E_CALL_DEFAULT_SUCCESSFULLY_ENDED : 00436 m_mutexTable[CPT_C_DefaultSuccessfulCall].lock() ; 00437 m_counters [CPT_C_DefaultSuccessfulCall]++; 00438 m_counters [CPT_PD_DefaultSuccessfulCall]++; 00439 m_counters [CPT_PL_DefaultSuccessfulCall]++; 00440 m_mutexTable[CPT_C_DefaultSuccessfulCall].unlock() ; 00441 00442 m_mutexTable[CPT_C_CurrentCall].lock(); 00443 m_counters [CPT_C_CurrentCall]--; 00444 m_mutexTable[CPT_C_CurrentCall].unlock(); 00445 break; 00446 00447 case E_CALL_ABORT_SUCCESSFULLY_ENDED : 00448 m_mutexTable[CPT_C_AbortSuccessfulCall].lock() ; 00449 m_counters [CPT_C_AbortSuccessfulCall]++; 00450 m_counters [CPT_PD_AbortSuccessfulCall]++; 00451 m_counters [CPT_PL_AbortSuccessfulCall]++; 00452 m_mutexTable[CPT_C_AbortSuccessfulCall].unlock() ; 00453 00454 m_mutexTable[CPT_C_CurrentCall].lock(); 00455 m_counters [CPT_C_CurrentCall]--; 00456 m_mutexTable[CPT_C_CurrentCall].unlock(); 00457 break; 00458 00459 case E_FAILED_CANNOT_SEND_MSG : 00460 m_mutexTable[CPT_C_FailedCallCannotSendMessage].lock() ; 00461 m_counters [CPT_C_FailedCallCannotSendMessage]++; 00462 m_counters [CPT_PD_FailedCallCannotSendMessage]++; 00463 m_counters [CPT_PL_FailedCallCannotSendMessage]++; 00464 m_mutexTable[CPT_C_FailedCallCannotSendMessage].unlock() ; 00465 break; 00466 00467 case E_FAILED_UNEXPECTED_MSG : 00468 m_mutexTable[CPT_C_FailedCallUnexpectedMessage].lock() ; 00469 m_counters [CPT_C_FailedCallUnexpectedMessage]++; 00470 m_counters [CPT_PD_FailedCallUnexpectedMessage]++; 00471 m_counters [CPT_PL_FailedCallUnexpectedMessage]++; 00472 m_mutexTable[CPT_C_FailedCallUnexpectedMessage].unlock() ; 00473 break; 00474 00475 case E_RESET_PD_COUNTERS : 00476 m_mutexTable[CPT_PD_IncomingCallCreated].lock(); 00477 m_counters[CPT_PD_IncomingCallCreated] = (unsigned long) 0; 00478 m_counters[CPT_PD_OutgoingCallCreated] = (unsigned long) 0; 00479 m_counters[CPT_PD_MsgRecv] = (unsigned long) 0; 00480 m_counters[CPT_PD_MsgSend] = (unsigned long) 0; 00481 00482 m_counters[CPT_PD_InitSuccessfulCall] = (unsigned long) 0; 00483 m_counters[CPT_PD_TrafficSuccessfulCall] = (unsigned long) 0; 00484 m_counters[CPT_PD_DefaultSuccessfulCall] = (unsigned long) 0; 00485 m_counters[CPT_PD_AbortSuccessfulCall] = (unsigned long) 0; 00486 00487 m_counters[CPT_PD_FailedCall] = (unsigned long) 0; 00488 00489 GET_TIME (&m_pdStartTime); 00490 m_mutexTable[CPT_PD_IncomingCallCreated].unlock(); 00491 break; 00492 00493 case E_RESET_PL_COUNTERS : 00494 RESET_PL_COUNTERS (m_counters); 00495 GET_TIME (&m_plStartTime); 00496 break; 00497 00498 case E_CREATE_OUTGOING_CALL : 00499 00500 m_mutexTable [CPT_C_OutgoingCallCreated].lock() ; 00501 m_counters [CPT_C_OutgoingCallCreated]++; 00502 m_counters [CPT_PD_OutgoingCallCreated]++; 00503 m_counters [CPT_PL_OutgoingCallCreated]++; 00504 m_mutexTable [CPT_C_OutgoingCallCreated].unlock() ; 00505 00506 m_mutexTable [CPT_C_CurrentCall].lock() ; 00507 m_counters [CPT_C_CurrentCall]++; 00508 m_mutexTable [CPT_C_CurrentCall].unlock() ; 00509 break; 00510 00511 00512 // NOT USED 00513 case E_FAILED_MAX_UDP_RETRANS : 00514 m_counters [CPT_C_FailedCallMaxUdpRetrans]++; 00515 m_counters [CPT_PD_FailedCallMaxUdpRetrans]++; 00516 m_counters [CPT_PL_FailedCallMaxUdpRetrans]++; 00517 break; 00518 00519 case E_FAILED_CALL_REJECTED : 00520 m_counters [CPT_C_FailedCallCallRejected]++; 00521 m_counters [CPT_PD_FailedCallCallRejected]++; 00522 m_counters [CPT_PL_FailedCallCallRejected]++; 00523 break; 00524 00525 case E_FAILED_CMD_NOT_SENT : 00526 m_counters [CPT_C_FailedCallCmdNotSent]++; 00527 m_counters [CPT_PD_FailedCallCmdNotSent]++; 00528 m_counters [CPT_PL_FailedCallCmdNotSent]++; 00529 break; 00530 00531 case E_FAILED_REGEXP_DOESNT_MATCH : 00532 m_counters [CPT_C_FailedCallRegexpDoesntMatch]++; 00533 m_counters [CPT_PD_FailedCallRegexpDoesntMatch]++; 00534 m_counters [CPT_PL_FailedCallRegexpDoesntMatch]++; 00535 break; 00536 00537 case E_FAILED_REGEXP_HDR_NOT_FOUND : 00538 m_counters [CPT_C_FailedCallRegexpHdrNotFound]++; 00539 m_counters [CPT_PD_FailedCallRegexpHdrNotFound]++; 00540 m_counters [CPT_PL_FailedCallRegexpHdrNotFound]++; 00541 break; 00542 00543 00544 default : 00545 GEN_FATAL(0,"C_GeneratorStats::ComputeStat() - Unrecognized Action " << P_action); 00546 break ; 00547 } /* end switch */ 00548 00549 return (0); 00550 } |
|
Display data periodically updated on screen. Definition at line 1167 of file C_GeneratorStats.cpp.
01168 { 01169 long localElapsedTime, globalElapsedTime ; 01170 struct timeval currentTime; 01171 float averageCallRate; 01172 float realInstantCallRate; 01173 unsigned long numberOfCall; 01174 01175 GET_TIME (¤tTime); 01176 // computing the real call rate 01177 globalElapsedTime = ms_difftime (¤tTime, &m_startTime); 01178 localElapsedTime = ms_difftime (¤tTime, &m_pdStartTime); 01179 // the call rate is for all the call : incoming and outgoing 01180 numberOfCall = m_counters[CPT_C_IncomingCallCreated] + m_counters[CPT_C_OutgoingCallCreated]; 01181 averageCallRate = (globalElapsedTime > 0 ? 1000*(float)numberOfCall/(float)globalElapsedTime : 0.0); 01182 numberOfCall = m_counters[CPT_PD_IncomingCallCreated] + m_counters[CPT_PD_OutgoingCallCreated]; 01183 realInstantCallRate = (localElapsedTime > 0 ? 01184 1000*(float)numberOfCall / (float)localElapsedTime : 01185 0.0); 01186 01187 // display info 01188 DISPLAY_DLINE (); 01189 // build and display header info 01190 DISPLAY_TXT ("Start Time ", formatTime(&m_startTime)); 01191 DISPLAY_TXT ("Last Reset Time", formatTime(&m_pdStartTime)); 01192 DISPLAY_TXT ("Current Time", formatTime(¤tTime)); 01193 01194 // printing the header in the middle 01195 DISPLAY_CROSS_LINE(); 01196 DISPLAY_HEADER(); 01197 DISPLAY_CROSS_LINE(); 01198 01199 DISPLAY_TXT_COL ("Elapsed Time", msToHHMMSSmmm(localElapsedTime), msToHHMMSSmmm(globalElapsedTime)); 01200 01201 DISPLAY_VAL_RATEF_COL ("Call Rate", realInstantCallRate, averageCallRate); 01202 DISPLAY_CROSS_LINE (); 01203 01204 DISPLAY_2VAL ("Incoming call created", m_counters[CPT_PD_IncomingCallCreated], 01205 m_counters[CPT_C_IncomingCallCreated]); 01206 01207 DISPLAY_2VAL ("OutGoing call created", m_counters[CPT_PD_OutgoingCallCreated], 01208 m_counters[CPT_C_OutgoingCallCreated]); 01209 DISPLAY_CUMUL ("Total Call created", m_counters[CPT_C_IncomingCallCreated] + 01210 m_counters[CPT_C_OutgoingCallCreated]); 01211 DISPLAY_PERIO ("Current Calls", m_counters[CPT_C_CurrentCall]); 01212 DISPLAY_CROSS_LINE (); 01213 01214 01215 DISPLAY_2VAL ("Successful init call", m_counters[CPT_PD_InitSuccessfulCall], 01216 m_counters[CPT_C_InitSuccessfulCall]); 01217 01218 DISPLAY_2VAL ("Successful traffic call", m_counters[CPT_PD_TrafficSuccessfulCall], 01219 m_counters[CPT_C_TrafficSuccessfulCall]); 01220 01221 DISPLAY_2VAL ("Successful default call", m_counters[CPT_PD_DefaultSuccessfulCall], 01222 m_counters[CPT_C_DefaultSuccessfulCall]); 01223 01224 DISPLAY_2VAL ("Successful abort call", m_counters[CPT_PD_AbortSuccessfulCall], 01225 m_counters[CPT_C_AbortSuccessfulCall]); 01226 01227 01228 DISPLAY_2VAL ("Failed call", m_counters[CPT_PD_FailedCall], m_counters[CPT_C_FailedCall]); 01229 01230 01231 DISPLAY_CROSS_LINE (); 01232 DISPLAY_TXT_COL ("Response Time", msToHHMMSSmmm( m_counters [CPT_PD_AverageResponseTime] ), 01233 msToHHMMSSmmm( m_counters [CPT_C_AverageResponseTime] )); 01234 DISPLAY_TXT_COL ("Call Length", msToHHMMSSmmm( m_counters [CPT_PD_AverageCallLength] ), 01235 msToHHMMSSmmm( m_counters [CPT_C_AverageCallLength] )); 01236 DISPLAY_CROSS_LINE (); 01237 01238 DISPLAY_INFO("Average Response Time Repartition"); 01239 displayRepartition(m_ResponseTimeRepartition, m_SizeOfResponseTimeRepartition); 01240 DISPLAY_INFO("Average Call Length Repartition"); 01241 displayRepartition(m_CallLengthRepartition, m_SizeOfCallLengthRepartition); 01242 01243 01244 DISPLAY_DLINE (); 01245 } /* end of displayData () */ |
|
Dump data periodically in the file m_FileName Definition at line 1931 of file C_GeneratorStats.cpp.
01932 { 01933 long localElapsedTime, globalElapsedTime ; 01934 struct timeval currentTime; 01935 float averageCallRate; 01936 float realInstantCallRate; 01937 unsigned long numberOfCall; 01938 01939 // computing the real call rate 01940 GET_TIME (¤tTime); 01941 globalElapsedTime = ms_difftime (¤tTime, &m_startTime); 01942 localElapsedTime = ms_difftime (¤tTime, &m_plStartTime); 01943 // the call rate is for all the call : incoming and outgoing 01944 numberOfCall = m_counters[CPT_C_IncomingCallCreated] + m_counters[CPT_C_OutgoingCallCreated]; 01945 averageCallRate = (globalElapsedTime > 0 ? 1000*(float)numberOfCall/(float)globalElapsedTime : 0.0); 01946 numberOfCall = m_counters[CPT_PL_IncomingCallCreated] + m_counters[CPT_PL_OutgoingCallCreated]; 01947 realInstantCallRate = (localElapsedTime > 0 ? 01948 1000*(float)numberOfCall / (float)localElapsedTime : 01949 0.0); 01950 01951 01952 if(m_outputStream == NULL) 01953 { 01954 // if the file is still not opened, we opened it now 01955 NEW_VAR(m_outputStream, 01956 fstream_output(m_fileName)); 01957 m_headerAlreadyDisplayed = false; 01958 01959 if(m_outputStream == NULL) { 01960 iostream_error << "Unable to open log file !" << iostream_endl; 01961 exit(-1); 01962 } 01963 01964 if(!m_outputStream->good()) { 01965 iostream_error << "Unable to open log file !" << iostream_endl; 01966 exit(-1); 01967 } 01968 } 01969 01970 if(m_headerAlreadyDisplayed == false) 01971 { 01972 // header - it's dump in file only one time at the beginning of the file 01973 (*m_outputStream) << "StartTime;" 01974 << "LastResetTime;" 01975 << "CurrentTime;" 01976 << "ElapsedTime(P);" 01977 << "ElapsedTime(C);" 01978 << "CallRate(P);" 01979 << "CallRate(C);" 01980 << "IncomingCall(P);" 01981 << "IncomingCall(C);" 01982 << "OutgoingCall(P);" 01983 << "OutgoingCall(C);" 01984 << "TotalCallCreated;" 01985 << "CurrentCall;" 01986 << "InitSuccessfulCall(P);" 01987 << "InitSuccessfulCall(C);" 01988 << "TrafficSuccessfulCall(P);" 01989 << "TrafficSuccessfulCall(C);" 01990 << "DefaultSuccessfulCall(P);" 01991 << "DefaultSuccessfulCall(C);" 01992 << "AbortSuccessfulCall(P);" 01993 << "AbortSuccessfulCall(C);" 01994 << "FailedCall(P);" 01995 << "FailedCall(C);" 01996 << "FailedCannotSendMessage(P);" 01997 << "FailedCannotSendMessage(C);" 01998 << "FailedMaxUDPRetrans(P);" 01999 << "FailedMaxUDPRetrans(C);" 02000 << "FailedUnexpectedMessage(P);" 02001 << "FailedUnexpectedMessage(C);" 02002 << "FailedCallRejected(P);" 02003 << "FailedCallRejected(C);" 02004 << "FailedCmdNotSent(P);" 02005 << "FailedCmdNotSent(C);" 02006 << "FailedRegexpDoesntMatch(P);" 02007 << "FailedRegexpDoesntMatch(C);" 02008 << "FailedRegexpHdrNotFound(P);" 02009 << "FailedRegexpHdrNotFound(C);" 02010 << "ResponseTime(P);" 02011 << "ResponseTime(C);" 02012 << "CallLength(P);" 02013 << "CallLength(C);"; 02014 (*m_outputStream) << sRepartitionHeader(m_ResponseTimeRepartition, m_SizeOfResponseTimeRepartition, 02015 (char*) "ResponseTimeRepartition"); 02016 (*m_outputStream) << sRepartitionHeader(m_CallLengthRepartition, m_SizeOfCallLengthRepartition, 02017 (char*) "CallLengthRepartition"); 02018 (*m_outputStream) << iostream_endl; 02019 m_headerAlreadyDisplayed = true; 02020 } 02021 02022 // content 02023 (*m_outputStream) << formatTime(&m_startTime) << ";"; 02024 (*m_outputStream) << formatTime(&m_plStartTime) << ";"; 02025 (*m_outputStream) << formatTime(¤tTime) << ";" 02026 << msToHHMMSS(localElapsedTime) << ";"; 02027 (*m_outputStream) << msToHHMMSS(globalElapsedTime) << ";" 02028 << realInstantCallRate << ";" 02029 << averageCallRate << ";" 02030 << m_counters[CPT_PL_IncomingCallCreated] << ";" 02031 << m_counters[CPT_C_IncomingCallCreated] << ";" 02032 << m_counters[CPT_PL_OutgoingCallCreated] << ";" 02033 << m_counters[CPT_C_OutgoingCallCreated] << ";" 02034 << m_counters[CPT_C_IncomingCallCreated]+ 02035 m_counters[CPT_C_OutgoingCallCreated] << ";" 02036 << m_counters[CPT_C_CurrentCall] << ";" 02037 << m_counters[CPT_PL_InitSuccessfulCall] << ";" 02038 << m_counters[CPT_C_InitSuccessfulCall] << ";" 02039 << m_counters[CPT_PL_TrafficSuccessfulCall] << ";" 02040 << m_counters[CPT_C_TrafficSuccessfulCall] << ";" 02041 << m_counters[CPT_PL_DefaultSuccessfulCall] << ";" 02042 << m_counters[CPT_C_DefaultSuccessfulCall] << ";" 02043 << m_counters[CPT_PL_AbortSuccessfulCall] << ";" 02044 << m_counters[CPT_C_AbortSuccessfulCall] << ";" 02045 << m_counters[CPT_PL_FailedCall] << ";" 02046 << m_counters[CPT_C_FailedCall] << ";" 02047 << m_counters[CPT_PL_FailedCallCannotSendMessage] << ";" 02048 << m_counters[CPT_C_FailedCallCannotSendMessage] << ";" 02049 << m_counters[CPT_PL_FailedCallMaxUdpRetrans] << ";" 02050 << m_counters[CPT_C_FailedCallMaxUdpRetrans] << ";" 02051 << m_counters[CPT_PL_FailedCallUnexpectedMessage] << ";" 02052 << m_counters[CPT_C_FailedCallUnexpectedMessage] << ";" 02053 << m_counters[CPT_PL_FailedCallCallRejected] << ";" 02054 << m_counters[CPT_C_FailedCallCallRejected] << ";" 02055 << m_counters[CPT_PL_FailedCallCmdNotSent] << ";" 02056 << m_counters[CPT_C_FailedCallCmdNotSent] << ";" 02057 << m_counters[CPT_PL_FailedCallRegexpDoesntMatch] << ";" 02058 << m_counters[CPT_C_FailedCallRegexpDoesntMatch] << ";" 02059 << m_counters[CPT_PL_FailedCallRegexpHdrNotFound] << ";" 02060 << m_counters[CPT_C_FailedCallRegexpHdrNotFound] << ";"; 02061 // SF917289 << m_counters[CPT_C_UnexpectedMessage] << ";"; 02062 (*m_outputStream) << msToHHMMSSmmm( m_counters [CPT_PL_AverageResponseTime] ) << ";"; 02063 (*m_outputStream) << msToHHMMSSmmm( m_counters [CPT_C_AverageResponseTime ] ) << ";"; 02064 (*m_outputStream) << msToHHMMSSmmm( m_counters [CPT_PL_AverageCallLength ] ) << ";"; 02065 (*m_outputStream) << msToHHMMSSmmm( m_counters [CPT_C_AverageCallLength ] ) << ";"; 02066 (*m_outputStream) << sRepartitionInfo(m_ResponseTimeRepartition, m_SizeOfResponseTimeRepartition); 02067 (*m_outputStream) << sRepartitionInfo(m_CallLengthRepartition, m_SizeOfCallLengthRepartition); 02068 (*m_outputStream) << iostream_endl; 02069 02070 // flushing the output file to let the tail -f working ! 02071 (*m_outputStream).flush(); 02072 02073 } /* end of logData () */ |
|
initialize the class variable member Definition at line 74 of file C_GeneratorStats.cpp.
00075 { 00076 if (m_initDone == false) { 00077 // reset of all counter 00078 RESET_COUNTERS(m_counters); 00079 GET_TIME (&m_startTime); 00080 memcpy (&m_pdStartTime, &m_startTime, sizeof (struct timeval)); 00081 memcpy (&m_plStartTime, &m_startTime, sizeof (struct timeval)); 00082 m_outputStream = NULL; 00083 m_headerAlreadyDisplayed = false; 00084 m_initDone = true ; 00085 00086 m_current_repartition_table = NULL ; 00087 m_current_display_rep_id = 0 ; 00088 m_nb_display_rep_id = 2 ; 00089 ALLOC_TABLE(m_current_repartition_table, 00090 T_DisplayRepFct*, 00091 sizeof(T_DisplayRepFct), 2); 00092 00093 m_current_repartition_table[0] = &C_GeneratorStats::displayRepartition_without_percent ; 00094 m_current_repartition_table[1] = &C_GeneratorStats::displayRepartition_with_percent ; 00095 m_current_repartition_display = m_current_repartition_table[0]; 00096 } 00097 return(1); 00098 } |
|
Get the single instance of the class. Only one instance of C_GeneratorStats exists in the component. This instance is automatically created the first time the instance() method is called.
Definition at line 34 of file C_GeneratorStats.cpp.
00035 { 00036 if (m_instance == NULL) { 00037 NEW_VAR(m_instance, C_GeneratorStats()) ; 00038 } 00039 return m_instance; 00040 } |
|
setRepartitionCallLength
Definition at line 299 of file C_GeneratorStats.cpp.
00300 { 00301 initRepartition(repartition, 00302 nombre, 00303 &m_CallLengthRepartition, 00304 &m_SizeOfCallLengthRepartition); 00305 } |