YAPOG  0.0.1
Yet Another Pokemon Online Game
Packet.hxx
Go to the documentation of this file.
1 #ifndef YAPOG_PACKET_HXX
2 # define YAPOG_PACKET_HXX
3 
4 namespace yap
5 {
6  template <typename T>
7  inline void Packet::WriteData (const T& data)
8  {
9  packet_ << data;
10  }
11 
12  template <typename T>
13  inline T Packet::ReadData ()
14  {
15  T data;
16  packet_ >> data;
17  return data;
18  }
19 
20  template <>
21  inline void Packet::WriteData<String> (const String& data)
22  {
23  Write (static_cast<UInt64> (data.size ()));
24  packet_ << data.c_str ();
25  }
26 
27  template <>
28  inline String Packet::ReadData<String> ()
29  {
30  UInt64 size = ReadUInt64 ();
31  char* data = new char[size + 1];
32 
33  packet_ >> data;
34 
35  return String (data, size);
36  }
37 } // namespace yap
38 
39 #endif // YAPOG_PACKET_HXX