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 114 of file NetInterface.hh.


Constructor & Destructor Documentation

SocketLookupTable::~SocketLookupTable (  )  [virtual]

Definition at line 122 of file NetInterface.cpp.

References fTable.

00122                                       {
00123   delete fTable;
00124 }

SocketLookupTable::SocketLookupTable (  )  [protected]

Definition at line 118 of file NetInterface.cpp.


Member Function Documentation

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

Definition at line 126 of file NetInterface.cpp.

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

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

Boolean SocketLookupTable::Remove ( Socket const *  sock  ) 

Definition at line 147 of file NetInterface.cpp.

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

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

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

Referenced by Fetch().


Field Documentation

HashTable* SocketLookupTable::fTable [private]

Definition at line 127 of file NetInterface.hh.

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


The documentation for this class was generated from the following files:
Generated on Thu Feb 2 23:55:57 2012 for live by  doxygen 1.5.2