C_TrafficDistribPoisson Class Reference

Inheritance diagram for C_TrafficDistribPoisson:

C_TrafficModel List of all members.

Public Member Functions

 C_TrafficDistribPoisson ()
 ~C_TrafficDistribPoisson ()
int authorize_new_call ()

Detailed Description

Definition at line 29 of file C_TrafficDistribPoisson.hpp.


Member Function Documentation

int C_TrafficDistribPoisson::authorize_new_call  )  [virtual]
 

authorize_new_call.

Parameters:
P_cot : (out)
Returns:
a positive value if new calls are allowed, and zero if not

Implements C_TrafficModel.

Definition at line 53 of file C_TrafficDistribPoisson.cpp.

References C_TrafficModel::m_currentTrafficDuration, C_TrafficModel::m_desiredAverageRate, C_TrafficModel::m_sem_desired, C_TrafficModel::ms_setup_time, C_Semaphore::P(), StochasticLib1::Poisson(), C_TrafficModel::reset(), C_TrafficModel::update(), and C_Semaphore::V().

00054 {
00055   long L_desiredAverageRate ;
00056 
00057   float L_poissonMean;
00058   float L_poissonVal = 0.0;
00059   long  L_DeltaSinceLastFuncCall;   // ms
00060 
00061   reset ();
00062   update ();
00063 
00064   m_sem_desired->P();
00065   L_desiredAverageRate = m_desiredAverageRate ;
00066   m_sem_desired->V();
00067 
00068   if (m_currentTrafficDuration <= ms_setup_time) {
00069     return (0);
00070   }
00071 
00072   L_DeltaSinceLastFuncCall = m_currentTrafficDuration - m_LastFctCallTS;
00073 //  L_DeltaSinceLastFuncCall = m_currentPeriodDuration ;
00074   L_poissonMean =( (float)  ( (float) L_DeltaSinceLastFuncCall / (float) 1000.0)  *
00075      (float) L_desiredAverageRate);
00076   L_poissonVal = m_sto->Poisson(L_poissonMean);
00077   
00078   m_LastFctCallTS = m_currentTrafficDuration;
00079 
00080   return ((int) L_poissonVal);
00081 
00082 } /* end of authorize_new_call */


The documentation for this class was generated from the following files:
Generated on Wed Mar 7 14:57:56 2007 for Seagull by  doxygen 1.4.6