00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_PACKET_HPP
00026 #define SFML_PACKET_HPP
00027
00029
00031 #include <SFML/Config.hpp>
00032 #include <string>
00033 #include <vector>
00034
00035
00039 class SFML_API sfPacket
00040 {
00041 public :
00042
00047 sfPacket();
00048
00053 virtual ~sfPacket();
00054
00062 void Append(const void* Data, std::size_t SizeInBytes);
00063
00068 void Clear();
00069
00078 const char* GetData() const;
00079
00086 sfUint32 GetDataSize() const;
00087
00092 sfPacket& operator >>(sfInt8& Data);
00093 sfPacket& operator >>(sfUint8& Data);
00094 sfPacket& operator >>(sfInt16& Data);
00095 sfPacket& operator >>(sfUint16& Data);
00096 sfPacket& operator >>(sfInt32& Data);
00097 sfPacket& operator >>(sfUint32& Data);
00098 sfPacket& operator >>(float& Data);
00099 sfPacket& operator >>(double& Data);
00100 sfPacket& operator >>(char* Data);
00101 sfPacket& operator >>(std::string& Data);
00102
00107 sfPacket& operator <<(sfInt8 Data);
00108 sfPacket& operator <<(sfUint8 Data);
00109 sfPacket& operator <<(sfInt16 Data);
00110 sfPacket& operator <<(sfUint16 Data);
00111 sfPacket& operator <<(sfInt32 Data);
00112 sfPacket& operator <<(sfUint32 Data);
00113 sfPacket& operator <<(float Data);
00114 sfPacket& operator <<(double Data);
00115 sfPacket& operator <<(const char* Data);
00116 sfPacket& operator <<(const std::string& Data);
00117
00118 private :
00119
00120 friend class sfSocketTCP;
00121 friend class sfSocketUDP;
00122
00127 virtual void OnSend();
00128
00133 virtual void OnReceive();
00134
00136
00138 std::vector<char> myData;
00139 std::size_t myReadPos;
00140 };
00141
00142
00143 #endif // SFML_PACKET_HPP