00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00026
00028 #include <SFML/Network/Packet.h>
00029 #include <SFML/Network/Packet.hpp>
00030 #include <SFML/Internal.h>
00031
00032
00033 struct sfPacket
00034 {
00035 sf::Packet This;
00036 };
00037
00038
00039 namespace
00040 {
00044 template <typename T>
00045 T PacketRead(sfPacket* Packet, T Default = 0)
00046 {
00047 CSFML_CHECK_RETURN(Packet, Default);
00048
00049 T Value;
00050 Packet->This >> Value;
00051 return Value;
00052 }
00053
00057 template <typename T>
00058 void PacketWrite(sfPacket* Packet, T Value)
00059 {
00060 CSFML_CHECK(Packet);
00061
00062 Packet->This << Value;
00063 }
00064 }
00065
00066
00070 sfPacket* sfPacket_Create()
00071 {
00072 return new sfPacket;
00073 }
00074
00075
00079 void sfPacket_Destroy(sfPacket* Packet)
00080 {
00081 delete Packet;
00082 }
00083
00084
00088 void sfPacket_Append(sfPacket* Packet, void* Data, size_t SizeInBytes)
00089 {
00090 CSFML_CALL(Packet, Append(Data, SizeInBytes));
00091 }
00092
00093
00097 void sfPacket_Clear(sfPacket* Packet)
00098 {
00099 CSFML_CALL(Packet, Clear());
00100 }
00101
00102
00108 const char* sfPacket_GetData(sfPacket* Packet)
00109 {
00110 CSFML_CALL_RETURN(Packet, GetData(), NULL);
00111 }
00112
00113
00117 sfUint32 sfPacket_GetDataSize(sfPacket* Packet)
00118 {
00119 CSFML_CALL_RETURN(Packet, GetDataSize(), 0);
00120 }
00121
00122
00126 sfBool sfPacket_CanRead(sfPacket* Packet)
00127 {
00128 CSFML_CALL_RETURN(Packet, operator bool(), sfFalse);
00129 }
00130
00131
00138 sfInt8 sfPacket_ReadInt8(sfPacket* Packet) {return PacketRead<sfInt8>(Packet);}
00139 sfUint8 sfPacket_ReadUint8(sfPacket* Packet) {return PacketRead<sfUint8>(Packet);}
00140 sfInt16 sfPacket_ReadInt16(sfPacket* Packet) {return PacketRead<sfInt16>(Packet);}
00141 sfUint16 sfPacket_ReadUint16(sfPacket* Packet) {return PacketRead<sfUint16>(Packet);}
00142 sfInt32 sfPacket_ReadInt32(sfPacket* Packet) {return PacketRead<sfInt32>(Packet);}
00143 sfUint32 sfPacket_ReadUint32(sfPacket* Packet) {return PacketRead<sfUint32>(Packet);}
00144 float sfPacket_ReadFloat(sfPacket* Packet) {return PacketRead<float>(Packet);}
00145 double sfPacket_ReadDouble(sfPacket* Packet) {return PacketRead<double>(Packet);}
00146
00147 void sfPacket_ReadString(sfPacket* Packet, char* String)
00148 {
00149 CSFML_CHECK(Packet);
00150
00151 if (String)
00152 Packet->This >> String;
00153 }
00154
00155
00162 void sfPacket_WriteInt8(sfPacket* Packet, sfInt8 Value) {PacketWrite(Packet, Value);}
00163 void sfPacket_WriteUint8(sfPacket* Packet, sfUint8 Value) {PacketWrite(Packet, Value);}
00164 void sfPacket_WriteInt16(sfPacket* Packet, sfInt16 Value) {PacketWrite(Packet, Value);}
00165 void sfPacket_WriteUint16(sfPacket* Packet, sfUint16 Value) {PacketWrite(Packet, Value);}
00166 void sfPacket_WriteInt32(sfPacket* Packet, sfInt32 Value) {PacketWrite(Packet, Value);}
00167 void sfPacket_WriteUint32(sfPacket* Packet, sfUint32 Value) {PacketWrite(Packet, Value);}
00168 void sfPacket_WriteFloat(sfPacket* Packet, float Value) {PacketWrite(Packet, Value);}
00169 void sfPacket_WriteDouble(sfPacket* Packet, double Value) {PacketWrite(Packet, Value);}
00170
00171 void sfPacket_WriteString(sfPacket* Packet, const char* String)
00172 {
00173 CSFML_CHECK(Packet);
00174
00175 if (String)
00176 Packet->This << String;
00177 }