Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

TransportLayer.cpp

Go to the documentation of this file.
00001 #include "headers.h"
00002 
00028 
00029 
00034 void sigHandle(int x)
00035 {
00036     debug(DEBUG_ERR, "signal occured, exiting in a moment...");
00037     OS_SPEC_SLEEP(4);
00038         exit(0);
00039 } // fn sigHandle
00040 
00041 
00045 TransportLayer::TransportLayer()
00046 {
00047         //signal(SIGSEGV, sigHandle);
00048 
00049     m_serviceTable = new ServiceTable();
00050         MEMCHECK(m_serviceTable);
00051 } // constructor
00052 
00053 
00054 TransportLayer::~TransportLayer()
00055 {
00056         delete m_serviceTable;
00057         m_serviceTable = NULL;
00058 } // destructor
00059 
00060 
00064 int 
00065 TransportLayer::connect()
00066 {
00067         return m_serviceTable->connectService();
00068 } // fn connect
00069 
00070 
00074 
00075 int 
00076 TransportLayer::listenAccept()
00077 {
00078     int serviceNum = m_serviceTable->listenService();
00079     return serviceNum;
00080 } // fn listenAccept
00081 
00082 
00083 
00088 int 
00089 TransportLayer::send(int serviceNumber, u_char *msg, int length)
00090 {
00091     if (!msg || (serviceNumber <= 0) || (length <= 0)) {
00092         return PB_ERROR;
00093     }
00094     int bytesSent;
00095     if ((bytesSent = m_serviceTable->sendData(serviceNumber, msg, length)) > 0) {
00096         return bytesSent;
00097     }
00098     else {
00099         return PB_UNREACHABLE;
00100     }
00101 } // fn send
00102 
00103 
00111 int 
00112 TransportLayer::receive(int serviceNumber, u_char *msg, int length)
00113 {
00114     if (!msg || (serviceNumber <= 0) || (length <= 0)) {
00115         debug(DEBUG_TL, "Invalid parameters");
00116         return PB_ERROR;
00117     }
00118     
00119     debug(DEBUG_TL, "Receive on service number: %d", serviceNumber);
00120     
00121     return m_serviceTable->receiveData(serviceNumber, msg, length);
00122 } // fn receive
00123 
00124 
00131 bool
00132 TransportLayer::disconnect(int serviceNumber)
00133 {
00134         return (m_serviceTable->disconnectService(serviceNumber) == PB_OK);
00135 } // fn disconnect
00136 
00137 
00138 ServiceTable*
00139 TransportLayer::getServiceTable() {
00140     return m_serviceTable;
00141 } // fn getServiceTable
00142 
00143 
00144 NetworkLayer*
00145 TransportLayer::getNetworkLayer() {
00146     return m_serviceTable->getNetworkLayer();
00147 } // fn getNetworkLayer
00148 
00149 

Generated at Thu Jul 11 13:31:52 2002 for Peekabooty by doxygen1.2.9 written by Dimitri van Heesch, © 1997-2001