SocketLookupTable Class Reference

#include <NetInterface.hh>

Collaboration diagram for SocketLookupTable:

Collaboration graph
[legend]

Public Member Functions

virtual ~SocketLookupTable ()
SocketFetch (UsageEnvironment &env, Port port, Boolean &isNew)
Boolean Remove (Socket const *sock)

Protected Member Functions

 SocketLookupTable ()
virtual SocketCreateNew (UsageEnvironment &env, Port port)=0

Private Attributes

HashTablefTable

Detailed Description

Definition at line 116 of file NetInterface.hh.


Constructor & Destructor Documentation

SocketLookupTable::~SocketLookupTable (  )  [virtual]

Definition at line 120 of file NetInterface.cpp.

References fTable.

00120                                       {
00121   delete fTable;
00122 }

SocketLookupTable::SocketLookupTable (  )  [protected]

Definition at line 116 of file NetInterface.cpp.


Member Function Documentation

Socket * SocketLookupTable::Fetch ( UsageEnvironment env,
Port  port,
Boolean isNew 
)

Definition at line 124 of file NetInterface.cpp.

References HashTable::Add(), CreateNew(), env, False, fTable, HashTable::Lookup(), NULL, Port::num(), Socket::socketNum(), and True.

00125                                                  {
00126   isNew = False;
00127   Socket* sock;
00128   do {
00129     sock = (Socket*) fTable->Lookup((char*)(long)(port.num()));
00130     if (sock == NULL) { // we need to create one:
00131       sock = CreateNew(env, port);
00132       if (sock == NULL || sock->socketNum() < 0) break;
00133 
00134       fTable->Add((char*)(long)(port.num()), (void*)sock);
00135       isNew = True;
00136     }
00137 
00138     return sock;
00139   } while (0);
00140 
00141   delete sock;
00142   return NULL;
00143 }

Boolean SocketLookupTable::Remove ( Socket const *  sock  ) 

Definition at line 145 of file NetInterface.cpp.

References fTable, Port::num(), Socket::port(), and HashTable::Remove().

00145                                                     {
00146   return fTable->Remove( (char*)(long)(sock->port().num()) );
00147 }

virtual Socket* SocketLookupTable::CreateNew ( UsageEnvironment env,
Port  port 
) [protected, pure virtual]

Referenced by Fetch().


Field Documentation

HashTable* SocketLookupTable::fTable [private]

Definition at line 129 of file NetInterface.hh.

Referenced by Fetch(), Remove(), and ~SocketLookupTable().


The documentation for this class was generated from the following files:
Generated on Tue Oct 7 15:40:11 2008 for live by  doxygen 1.5.2