Advertisement
Patasuss

PacketBuilder

Sep 8th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. class PacketBuilder {
  2. public:
  3.    
  4.     void addBytes(const char* pData, std::size_t pNumBytes) {
  5.         for(std::size_t byteIndex=0; byteIndex<pNumBytes; ++byteIndex) {
  6.             //TODO
  7.         }
  8.     }
  9.    
  10.     template<typename T>
  11.     void add(T pData) {
  12.         char* dataCharPtr = reinterpret_cast<char*>(&pData);
  13.         addBytes(dataCharPtr, sizeof(T));
  14.     }
  15.    
  16.     void add(std::string pStr) {
  17.         addBytes(pStr.c_str(), pStr.size());
  18.     }
  19.    
  20.     void reset() {
  21.         dataVector.clear();
  22.     }
  23.    
  24.     std::unique_ptr<char[]> getPacket() {
  25.         std::unique_ptr<char[]> packet(new char[dataVector.size()]);
  26.         std::memcpy(packet.get(), dataVector.data(), dataVector.size());
  27.         return packet;
  28.     }
  29.    
  30.     char* getDataPtr() {
  31.         return dataVector.data();
  32.     }
  33.    
  34.     std::size_t getSize() {
  35.         return dataVector.size();
  36.     }
  37.    
  38. private:
  39.     std::vector<char> dataVector;
  40. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement