Inheritance diagram for C_TrafficModel:
Definition at line 27 of file C_TrafficModel.hpp.
|
authorize_new_call The following internal variables are used (see also update()):
Definition at line 248 of file C_TrafficModel.cpp. References m_sem_created_call, m_sem_created_call_period, m_sem_desired, and m_sem_max. 00249 { 00250 NEW_VAR(m_sem_desired, C_Semaphore()); 00251 NEW_VAR(m_sem_max, C_Semaphore()); 00252 NEW_VAR(m_sem_created_call, C_Semaphore()); 00253 NEW_VAR(m_sem_created_call_period, C_Semaphore()); 00254 }
|
|
authorize_new_call.
Implemented in C_TrafficDistribBestEffort, C_TrafficDistribPoisson, and C_TrafficDistribUniform. |
|
Indicates a new call has effectively been created Definition at line 124 of file C_TrafficModel.cpp. References m_createdCallNb, m_nbCallCreatedInPeriod, m_sem_created_call, m_sem_created_call_period, C_Semaphore::P(), and C_Semaphore::V(). Referenced by C_CallControlClient::makeCallContextUnavailable(). 00125 { 00126 m_sem_created_call->P(); 00127 m_createdCallNb++; 00128 m_sem_created_call->V(); 00129 m_sem_created_call_period->P(); 00130 m_nbCallCreatedInPeriod++; 00131 m_sem_created_call_period->V(); 00132 }
|
|
Initialization This method initializes the traffic model manager.
Definition at line 97 of file C_TrafficModel.cpp. References m_createdCallNb, m_currentPeriodDuration, m_currentTrafficDuration, m_desiredAverageRate, m_maxNbCreationPerPeriod, m_nbCallCreatedInPeriod, m_periodDuration, m_rateScale, and ms_setup_time. 00101 { 00102 m_desiredAverageRate = P_averageRate; 00103 m_maxNbCreationPerPeriod = P_maxCreationPerPeriod; 00104 m_periodDuration = 1000; 00105 m_nbCallCreatedInPeriod = 0; 00106 m_currentTrafficDuration = 0; 00107 m_createdCallNb = 0; 00108 m_currentPeriodDuration = 0; 00109 ms_setup_time = P_setupTime * 1000; 00110 m_rateScale = P_rateScale ; 00111 00112 return (0); 00113 }
|
|
Start This method must be called just before traffic start. Definition at line 116 of file C_TrafficModel.cpp. References m_currentTimeval, m_startPeriodDate, and m_startTrafficDate. Referenced by C_CallControlClient::init_done(), and C_CallControlClient::start_traffic(). 00117 { 00118 GET_TIME (&m_startTrafficDate); 00119 GET_TIME (&m_startPeriodDate); 00120 GET_TIME (&m_currentTimeval); 00121 }
|
|
Update internal variables The following global variables are used :
The following internal variables are used :
Definition at line 54 of file C_TrafficModel.cpp. References m_currentPeriodDuration, m_currentTimeval, m_currentTrafficDuration, m_sem_created_call, m_startPeriodDate, m_startTrafficDate, C_Semaphore::P(), and C_Semaphore::V(). Referenced by C_TrafficDistribUniform::authorize_new_call(), C_TrafficDistribPoisson::authorize_new_call(), and C_TrafficDistribBestEffort::authorize_new_call(). 00055 { 00056 GET_TIME(&m_currentTimeval); 00057 // Period duration : ti - tp in mili-seconds 00058 m_sem_created_call->P(); 00059 m_currentPeriodDuration = (m_currentTimeval.tv_sec - 00060 m_startPeriodDate.tv_sec)*1000 + 00061 (m_currentTimeval.tv_usec - 00062 m_startPeriodDate.tv_usec)/1000; 00063 00064 00065 //std::cerr << "update m_currentPeriodDuration " << m_currentPeriodDuration << std::endl; 00066 00067 // Traffic duration : ti - T0 in mili-seconds 00068 m_currentTrafficDuration = (m_currentTimeval.tv_sec - 00069 m_startTrafficDate.tv_sec ) * 1000 + 00070 (m_currentTimeval.tv_usec - 00071 m_startTrafficDate.tv_usec ) / 1000; 00072 00073 m_sem_created_call->V(); 00074 00075 } /* end of update */
|