00001 //********************************************************************** 00002 // 00003 // REGCOM: Regimental Command 00004 // Copyright (C) 2008 Randi J. Relander 00005 // <rjrelander@users.sourceforge.net> 00006 // 00007 // This program is free software; you can redistribute it and/or 00008 // modify it under the terms of the GNU General Public License 00009 // as published by the Free Software Foundation; either version 3 00010 // of the License, or (at your option) any later version. 00011 // 00012 // This program is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // GNU General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU General Public 00018 // License along with this program. If not, see 00019 // <http://www.gnu.org/licenses/>. 00020 // 00021 //********************************************************************** 00022 00023 #ifndef REGCOM_COMMON_NETWORK_TCP_SOCKET_H 00024 #define REGCOM_COMMON_NETWORK_TCP_SOCKET_H 00025 00026 // LIBRARY INCLUDES 00027 #include "SDL_net.h" 00028 00029 // PROJECT INCLUDES 00030 #include "regcom/common/ErrorCode.h" 00031 00032 // NAMESPACES 00033 namespace regcom { 00034 namespace network { 00035 00036 // FORWARD REFERENCES 00037 class IpAddress; 00038 00040 // CLASS: TcpSocket 00046 class TcpSocket 00047 { 00048 public: 00049 00050 // PUBLIC METHODS 00051 00053 TcpSocket(); 00054 00056 virtual ~TcpSocket(); 00057 00059 common::ErrorCodeType Open(IpAddress& rIpAddress); 00060 00062 common::ErrorCodeType Accept(TcpSocket& rSocket, bool block); 00063 00065 common::ErrorCodeType GetPeerAddress(IpAddress& rAddress); 00066 00068 common::ErrorCodeType Send(const void* pData, size_t byteCount); 00069 00071 common::ErrorCodeType Receive( 00072 void* pData, int maxByteCount, int& rActualByteCount); 00073 00075 common::ErrorCodeType Close(); 00076 00077 private: 00078 00079 // MEMBER VARIABLES 00080 00082 friend class SocketSet; 00083 00085 TCPsocket m_TcpSocket; 00086 }; 00087 00088 } // namespace network 00089 } // namespace regcom 00090 00091 #endif
Navigation
Home Page
Screen Shots
Developers
Documentation
Doxygen
Namespace List
Class List
Class Hierarchy
File List
Todo List
Links
SDL Library
License
SourceForge Project
Forums
Download
Regimental Command
Copyright © 2008
Randi J. Relander