reSIProcate/rutil  9694
Public Member Functions | Static Public Member Functions | Public Attributes
resip::AresDnsPollItem Class Reference
Inheritance diagram for resip::AresDnsPollItem:
Inheritance graph
[legend]
Collaboration diagram for resip::AresDnsPollItem:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 AresDnsPollItem (FdPollGrp *grp, int fd, AresDns &aresObj, ares_channel chan, int server_idx)
virtual void processPollEvent (FdPollEventMask mask)
 Called by PollGrp when activity is possible.
void resetPollGrp (FdPollGrp *grp)

Static Public Member Functions

static void socket_poll_cb (void *cb_data, ares_channel channel, int server_idx, int fd, ares_poll_action_t act)
 C-function called by ares whenever it opens, closes or changes interest in writability.

Public Attributes

AresDnsmAres
ares_channel mChannel
int mFd
int mServerIdx

Detailed Description

Definition at line 45 of file AresDns.cxx.


Constructor & Destructor Documentation

resip::AresDnsPollItem::AresDnsPollItem ( FdPollGrp grp,
int  fd,
AresDns aresObj,
ares_channel  chan,
int  server_idx 
) [inline]

Definition at line 48 of file AresDns.cxx.

Referenced by socket_poll_cb().

     : FdPollItemBase(grp, fd, FPEM_Read), mAres(aresObj),
       mChannel(chan), mFd(fd), mServerIdx(server_idx)
   {
   }

Member Function Documentation

void AresDnsPollItem::processPollEvent ( FdPollEventMask  mask) [virtual]

Called by PollGrp when activity is possible.

maybe nice if this was passed into us?

Implements resip::FdPollItemIf.

Definition at line 76 of file AresDns.cxx.

References FPEM_Read, FPEM_Write, mChannel, resip::FdPollItemBase::mPollSocket, and mServerIdx.

{
   assert( (mask&(FPEM_Read|FPEM_Write))!= 0 );

   time_t nowSecs;
   time(&nowSecs);      

   ares_process_poll(mChannel, mServerIdx,
     (mask&FPEM_Read)?(int)mPollSocket:-1, (mask&FPEM_Write)?(int)mPollSocket:-1,
     nowSecs);
}
void resip::AresDnsPollItem::resetPollGrp ( FdPollGrp grp) [inline]

Definition at line 56 of file AresDns.cxx.

References resip::FdPollGrp::addPollItem(), and FPEM_Read.

Here is the call graph for this function:

void AresDnsPollItem::socket_poll_cb ( void *  cb_data,
ares_channel  channel,
int  server_idx,
int  fd,
ares_poll_action_t  act 
) [static]

C-function called by ares whenever it opens, closes or changes interest in writability.

Definition at line 94 of file AresDns.cxx.

References AresDnsPollItem(), FPEM_Read, FPEM_Write, INVALID_SOCKET, mChannel, resip::FdPollGrp::modPollItem(), resip::AresDns::mPollGrp, resip::FdPollItemBase::mPollHandle, resip::AresDns::mPollItems, and mServerIdx.

Referenced by resip::AresDns::internalInit().

{
   AresDns *ares = static_cast<AresDns*>(cb_data);
   //assert( ares );
   FdPollGrp *grp = ares->mPollGrp;
   //assert( grp );
   AresDnsPollItem *olditem = ares->mPollItems.at(server_idx);
   if ( olditem )
   {
      assert( olditem->mChannel==channel );
      assert( olditem->mServerIdx==server_idx );
   }
   switch ( act )
   {
   case ARES_POLLACTION_OPEN:
      assert( olditem==NULL );
      assert( fd!=INVALID_SOCKET );
      ares->mPollItems[server_idx] = new AresDnsPollItem( grp, fd, *ares, channel, server_idx);
      break;
   case ARES_POLLACTION_CLOSE:
      assert( olditem );
      ares->mPollItems[server_idx] = NULL;
      delete olditem;   // destructor removes from poll
      break;
   case ARES_POLLACTION_WRITEON:
      assert( olditem );
      grp->modPollItem(olditem->mPollHandle, FPEM_Read|FPEM_Write);
      break;
   case ARES_POLLACTION_WRITEOFF:
      assert( olditem );
      grp->modPollItem(olditem->mPollHandle, FPEM_Read);
      break;
   default:
      assert( 0 );
   }
}

Here is the call graph for this function:


Member Data Documentation

Definition at line 63 of file AresDns.cxx.

Definition at line 64 of file AresDns.cxx.

Referenced by processPollEvent(), and socket_poll_cb().

Definition at line 65 of file AresDns.cxx.

Definition at line 66 of file AresDns.cxx.

Referenced by processPollEvent(), and socket_poll_cb().


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