Inheritance diagram for C_TrafficDistribUniform:
Public Member Functions | |
C_TrafficDistribUniform () | |
~C_TrafficDistribUniform () | |
int | authorize_new_call () |
Definition at line 26 of file C_TrafficDistribUniform.hpp.
|
authorize_new_call.
Implements C_TrafficModel. Definition at line 34 of file C_TrafficDistribUniform.cpp. References C_TrafficModel::m_createdCallNb, C_TrafficModel::m_currentPeriodDuration, C_TrafficModel::m_currentTrafficDuration, C_TrafficModel::m_desiredAverageRate, C_TrafficModel::m_nbCallCreatedInPeriod, C_TrafficModel::m_sem_created_call, C_TrafficModel::m_sem_created_call_period, C_TrafficModel::m_sem_desired, C_TrafficModel::ms_setup_time, C_Semaphore::P(), C_TrafficModel::reset(), C_TrafficModel::update(), and C_Semaphore::V(). 00035 { 00036 int L_callLimit; 00037 float L_NB1; 00038 00039 long L_desiredAverageRate ; 00040 long L_createdCallNb ; 00041 long L_nbCallCreatedInPeriod ; 00042 long L_currentPeriodDuration ; 00043 00044 00045 update (); 00046 00047 m_sem_desired->P(); 00048 L_desiredAverageRate = m_desiredAverageRate ; 00049 m_sem_desired->V(); 00050 00051 m_sem_created_call->P(); 00052 L_createdCallNb = m_createdCallNb ; 00053 L_currentPeriodDuration = m_currentPeriodDuration ; 00054 00055 m_sem_created_call->V(); 00056 00057 m_sem_created_call_period->P(); 00058 L_nbCallCreatedInPeriod = m_nbCallCreatedInPeriod ; 00059 m_sem_created_call_period->V(); 00060 00061 if (m_currentTrafficDuration <= ms_setup_time) { 00062 return (0); 00063 } 00064 00065 L_NB1 = ( (L_currentPeriodDuration * L_desiredAverageRate) / 00066 (float) 1000.0) ; 00067 00068 00069 L_callLimit = (int) (floor (L_NB1)) - L_nbCallCreatedInPeriod ; 00070 00071 reset () ; 00072 00073 return ((L_callLimit < 0) ? 0 : L_callLimit ); 00074 00075 } /* end of authorize_new_call */
|