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

bufferedsocket.h

Go to the documentation of this file.
00001 /********************************************************************
00002         Copyright (c) 2001, Lee Patterson & Ant Works Software
00003         http://ssobjects.sourceforge.net
00004 
00005         created  :  1999 
00006         filename :  bufferedsocket.cpp
00007         author   :  Lee Patterson (lee@antws.com)
00008         
00009         purpose  :  Socket class provides a convienent way to send 
00010                     and recieve packets of data.
00011 *********************************************************************/
00012 
00013 #ifndef BUFFEREDSOCKET_H
00014 #define BUFFEREDSOCKET_H
00015 
00016 #include "packetbuffer.h"
00017 #include "generalexception.h"
00018 #include "socketinstance.h"
00019 #include <ctype.h>
00020 
00021 namespace ssobjects
00022 {
00023 
00042 class BufferedSocket : public SocketInstance
00043 {
00044   public:
00045     BufferedSocket();                                 
00046     ~BufferedSocket();                                
00047     typedef enum {autoRelease,noRelease} ReleaseFlag;
00048     int sendPacket(PacketBuffer* pPacket,const ReleaseFlag release=noRelease);  
00049     int sendPacket(PacketBuffer& packet);                                       
00050     PacketBuffer* recvPacket();                                                 
00051     PacketBuffer* recvPacket(PacketBuffer& packet);                                 
00052     int setTimeout(const int iTimeOut);                                     
00053     void operator << (PacketBuffer& packet);                                    
00054     void operator << (PacketBuffer* ppacket);                                   
00055     void operator >> (PacketBuffer& packet);                                    
00056 
00057   private:
00058     PacketBuffer* readFullPacket();
00059     PacketBuffer* parsForPacket();
00060     void    resetBuffer();
00061 
00062   private:
00063     enum{nBufferSize=1024};
00064     char* m_pbuffer;        //buffer to hold temp info
00065     char* m_ptr;            //pointer into the buffer
00066     unsigned32 m_nBytesInBuf; //size of data in buffer
00067     unsigned32 m_nBufferSize; //size of the buffer
00068     int   m_iTimeout;
00069   private:
00070     //unused overloads
00071     BufferedSocket(const BufferedSocket&);
00072     BufferedSocket& operator=(const BufferedSocket&);
00073 };
00074 
00075 #define throwBufferedSocketException(m) (throw BufferedSocketException(m,__FILE__,__LINE__))
00076 
00077 class BufferedSocketException : public GeneralException
00078 {
00079   public: // Constructor/destructor
00080     BufferedSocketException(char* pchMessage,const char* pFname,const int iLine) 
00081       : GeneralException(pchMessage,pFname,iLine){};
00082 };
00083 
00084 };
00085 
00086 #endif //BUFFEREDSOCKET_H

Generated on Thu Nov 8 12:39:25 2001 for SimpleServerObjects by doxygen1.2.11 written by Dimitri van Heesch, © 1997-2001