reSIProcate/stack  9694
Public Member Functions | Private Attributes
Loadgen::Register Class Reference

#include <Register.hxx>

Collaboration diagram for Loadgen::Register:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Register (Transceiver &tranceiver, const resip::Uri &registrand, int firstExtension, int lastExtension, int numRegistrations=0)
void go ()

Private Attributes

TransceivermTransceiver
resip::Uri mRegistrand
int mFirstExtension
int mLastExtension
int mNumRegistrations

Detailed Description

Definition at line 12 of file Register.hxx.


Constructor & Destructor Documentation

Register::Register ( Transceiver tranceiver,
const resip::Uri registrand,
int  firstExtension,
int  lastExtension,
int  numRegistrations = 0 
)

Definition at line 19 of file Register.cxx.

References mFirstExtension, mLastExtension, and mNumRegistrations.

   : mTransceiver(transceiver),
     mRegistrand(registrand),
     mFirstExtension(firstExtension),
     mLastExtension(lastExtension),
     mNumRegistrations(numRegistrations)
{
   if (mNumRegistrations == 0)
   {
      mNumRegistrations = mLastExtension - mFirstExtension;
   }
}

Member Function Documentation

void Register::go ( )

Definition at line 35 of file Register.cxx.

References Loadgen::Transceiver::contactUri(), ErrLog, mFirstExtension, mLastExtension, mNumRegistrations, mRegistrand, mTransceiver, Loadgen::Transceiver::receive(), Loadgen::Transceiver::send(), resip::NameAddr::uri(), and resip::Uri::user().

Referenced by main().

{
   int numRegistered = 0;
   
   Resolver target(mRegistrand);
   NameAddr registrand;
   registrand.uri() = mRegistrand;
   NameAddr aor(registrand);
   
   NameAddr contact;
   contact.uri() = mTransceiver.contactUri();

   UInt64 startTime = Timer::getTimeMs();
   while (numRegistered < mNumRegistrations)
   {
      for (int i=mFirstExtension; i < mLastExtension && numRegistered < mNumRegistrations; i++)
      {
         aor.uri().user() = Data(i);
         contact.uri().user() = Data(i);
         
         auto_ptr<SipMessage> registration(Helper::makeRegister(registrand, aor, contact) );
         //registration->header(h_Contacts).push_back(contact);
         
         mTransceiver.send(target, *registration);
         
         SipMessage* reg = mTransceiver.receive(2000);
         if(reg)
         {         
            auto_ptr<SipMessage> forDel(reg);
            //validate here
            numRegistered++;
         }
         else
         {
            ErrLog(<< "Registrar not responding.");
            assert(0);
         }
      }
   }
   UInt64 elapsed = Timer::getTimeMs() - startTime;
   cout << mNumRegistrations << " peformed in " << elapsed << " ms, a rate of " 
        << mNumRegistrations / ((float) elapsed / 1000.0) << " registrations per second." << endl;
}

Here is the call graph for this function:


Member Data Documentation

Definition at line 23 of file Register.hxx.

Referenced by go(), and Register().

Definition at line 24 of file Register.hxx.

Referenced by go(), and Register().

Definition at line 25 of file Register.hxx.

Referenced by go(), and Register().

Definition at line 22 of file Register.hxx.

Referenced by go().

Definition at line 21 of file Register.hxx.

Referenced by go().


The documentation for this class was generated from the following files: