00001 /* NewNet - A networking framework in C++ 00002 Copyright (C) 2006 Ingmar K. Steen (iksteen@gmail.com) 00003 00004 This program is free software; you can redistribute it and/or modify 00005 it under the terms of the GNU General Public License as published by 00006 the Free Software Foundation; either version 2 of the License, or 00007 (at your option) any later version. 00008 00009 This program is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program; if not, write to the Free Software 00016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 00018 */ 00019 00020 #ifndef NEWNET_CLIENTSOCKET_H 00021 #define NEWNET_CLIENTSOCKET_H 00022 00023 #include "nnsocket.h" 00024 #include "nnbuffer.h" 00025 #include "nnevent.h" 00026 00027 namespace NewNet 00028 { 00030 00034 class ClientSocket : public Socket 00035 { 00036 public: 00038 00040 ClientSocket() : Socket() 00041 { 00042 } 00043 00045 00047 virtual void disconnect(); 00048 00050 00053 virtual void process(); 00054 00056 00059 void send(const unsigned char * data, size_t n) 00060 { 00061 m_SendBuffer.append(data, n); 00062 setDataWaiting(m_SendBuffer.count() > 0); 00063 } 00064 00066 00069 Buffer & sendBuffer() 00070 { 00071 return m_SendBuffer; 00072 } 00073 00075 00076 Buffer & receiveBuffer() 00077 { 00078 return m_ReceiveBuffer; 00079 } 00080 00082 00084 Event<ClientSocket *> cannotConnectEvent; 00086 00088 Event<ClientSocket *> connectedEvent; 00090 00092 Event<ClientSocket *> disconnectedEvent; 00094 00097 Event<ClientSocket *> dataReceivedEvent; 00099 00101 Event<ClientSocket *> dataSentEvent; 00102 00103 private: 00104 Buffer m_SendBuffer, m_ReceiveBuffer; 00105 }; 00106 } 00107 00108 #endif // NEWNET_CLIENTSOCKET_H
1.5.1