Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PacketBuilder {
- public:
- void addBytes(const char* pData, std::size_t pNumBytes) {
- for(std::size_t byteIndex=0; byteIndex<pNumBytes; ++byteIndex) {
- //TODO
- }
- }
- template<typename T>
- void add(T pData) {
- char* dataCharPtr = reinterpret_cast<char*>(&pData);
- addBytes(dataCharPtr, sizeof(T));
- }
- void add(std::string pStr) {
- addBytes(pStr.c_str(), pStr.size());
- }
- void reset() {
- dataVector.clear();
- }
- std::unique_ptr<char[]> getPacket() {
- std::unique_ptr<char[]> packet(new char[dataVector.size()]);
- std::memcpy(packet.get(), dataVector.data(), dataVector.size());
- return packet;
- }
- char* getDataPtr() {
- return dataVector.data();
- }
- std::size_t getSize() {
- return dataVector.size();
- }
- private:
- std::vector<char> dataVector;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement