reSIProcate/rutil  9694
Public Member Functions
resip::RRVip::SrvTransform Class Reference
Inheritance diagram for resip::RRVip::SrvTransform:
Inheritance graph
[legend]
Collaboration diagram for resip::RRVip::SrvTransform:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 SrvTransform (const Data &vip)
void transform (RRVector &rrs, bool &)

Detailed Description

Definition at line 45 of file RRVip.hxx.


Constructor & Destructor Documentation

RRVip::SrvTransform::SrvTransform ( const Data vip)

Definition at line 191 of file RRVip.cxx.

References DebugLog.

   : Transform(vip)
{
   DebugLog(<< "Creating a new SRV transform for" << vip);
}

Member Function Documentation

void RRVip::SrvTransform::transform ( RRVector rrs,
bool &  invalidVip 
) [virtual]

Reimplemented from resip::RRVip::Transform.

Definition at line 197 of file RRVip.cxx.

References DebugLog, resip::DnsSrvRecord::priority(), and resip::RRVip::vip().

{
   invalidVip = true;
   RRVector::iterator vip;
   for (RRVector::iterator it = src.begin(); it != src.end(); ++it)
   {
      if ((*it)->isSameValue(mVip))
      {
         invalidVip = false;
         vip = it;
         break;
      }
   }
   if(!invalidVip)
   {
      DebugLog(<< "Transforming SRV records");
      int min = dynamic_cast<DnsSrvRecord*>(*(src.begin()))->priority();
      for (RRVector::iterator it = src.begin(); it != src.end(); ++it)
      {
         int priority = ((dynamic_cast<DnsSrvRecord*>(*it))->priority())++;
         if (priority < min) min = priority;
      }
      dynamic_cast<DnsSrvRecord*>((*vip))->priority() = min;
   }
}

Here is the call graph for this function:


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