Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

DiffusionIO Class Reference

#include <iodev.hh>

Collaboration diagram for DiffusionIO:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DiffusionIO ()
virtual ~DiffusionIO ()
virtual void addInFDS (fd_set *fds, int *max)
virtual bool hasFD (int fd)
virtual int checkInFDS (fd_set *fds)
virtual DiffPacket recvPacket (int fd)=0
virtual void sendPacket (DiffPacket p, int len, int dst)=0

Protected Attributes

int num_out_descriptors_
int num_in_descriptors_
int max_in_descriptor_
list< int > in_fds_
list< int > out_fds_

Constructor & Destructor Documentation

DiffusionIO::DiffusionIO  ) 
 

Definition at line 25 of file iodev.cc.

References max_in_descriptor_, num_in_descriptors_, and num_out_descriptors_.

00026 {
00027   num_out_descriptors_ = 0;
00028   num_in_descriptors_ = 0;
00029   max_in_descriptor_ = 0;
00030 }

virtual DiffusionIO::~DiffusionIO  )  [inline, virtual]
 

Definition at line 47 of file iodev.hh.

00047                         {
00048     // Nothing to do
00049   };


Member Function Documentation

void DiffusionIO::addInFDS fd_set *  fds,
int *  max
[virtual]
 

Definition at line 32 of file iodev.cc.

References in_fds_, max, and max_in_descriptor_.

00033 {
00034   list<int>::iterator itr;
00035 
00036   for (itr = in_fds_.begin(); itr != in_fds_.end(); ++itr){
00037     FD_SET(*itr, fds);
00038   }
00039 
00040   if (max_in_descriptor_ > *max)
00041     *max = max_in_descriptor_;
00042 }

int DiffusionIO::checkInFDS fd_set *  fds  )  [virtual]
 

Definition at line 44 of file iodev.cc.

References in_fds_.

00045 {
00046   list<int>::iterator itr;
00047   int fd;
00048 
00049   for (itr = in_fds_.begin(); itr != in_fds_.end(); ++itr){
00050     fd = *itr;
00051     if (FD_ISSET(fd, fds)){
00052       return (fd);
00053     }
00054   }
00055   return 0;
00056 }

bool DiffusionIO::hasFD int  fd  )  [virtual]
 

Definition at line 58 of file iodev.cc.

References in_fds_.

00059 {
00060   list<int>::iterator itr;
00061   int device_fd;
00062 
00063   for (itr = in_fds_.begin(); itr != in_fds_.end(); ++itr){
00064     device_fd = *itr;
00065     if (device_fd == fd)
00066       return true;
00067   }
00068   return false;
00069 }

virtual DiffPacket DiffusionIO::recvPacket int  fd  )  [pure virtual]
 

virtual void DiffusionIO::sendPacket DiffPacket  p,
int  len,
int  dst
[pure virtual]
 


Member Data Documentation

list<int> DiffusionIO::in_fds_ [protected]
 

Definition at line 61 of file iodev.hh.

Referenced by addInFDS(), checkInFDS(), and hasFD().

int DiffusionIO::max_in_descriptor_ [protected]
 

Definition at line 60 of file iodev.hh.

Referenced by addInFDS(), and DiffusionIO().

int DiffusionIO::num_in_descriptors_ [protected]
 

Definition at line 59 of file iodev.hh.

Referenced by DiffusionIO().

int DiffusionIO::num_out_descriptors_ [protected]
 

Definition at line 58 of file iodev.hh.

Referenced by DiffusionIO().

list<int> DiffusionIO::out_fds_ [protected]
 

Definition at line 62 of file iodev.hh.


The documentation for this class was generated from the following files:
Generated on Tue Apr 20 12:38:23 2004 for NS2.26SourcesOriginal by doxygen 1.3.3