Advertisement
Guest User

ByteBuffer.h

a guest
Jul 29th, 2017
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.13 KB | None | 0 0
  1. #ifndef BYTEBUFFER_H
  2. #define BYTEBUFFER_H
  3.  
  4. #include <vector>
  5. #include <cstdint>
  6. #include <string>
  7.  
  8. // Version: 1.0.2
  9.  
  10. class ByteBuffer {
  11.     std::vector<char> vec;
  12.     size_t readIndex = 0;
  13.     bool dontSwap = true;
  14. public:
  15.     ByteBuffer() = default;
  16.     explicit ByteBuffer(bool littleEndian);
  17.     ByteBuffer(const char *data, size_t length);
  18.     ByteBuffer(const char *data, size_t length, bool littleEndian);
  19.  
  20.     void setUint8(size_t index, uint8_t val);
  21.     void putUint8(uint8_t val);
  22.     uint8_t getUint8();
  23.     uint8_t getUint8(size_t index);
  24.  
  25.     void setInt8(size_t index, int8_t val);
  26.     void putInt8(int8_t val);
  27.     int8_t getInt8();
  28.     int8_t getInt8(size_t index);
  29.  
  30.     void setUint16(size_t index, uint16_t val);
  31.     void putUint16(uint16_t val);
  32.     uint16_t getUint16();
  33.     uint16_t getUint16(size_t index);
  34.  
  35.     void setInt16(size_t index, int16_t val);
  36.     void putInt16(int16_t val);
  37.     int16_t getInt16();
  38.     int16_t getInt16(size_t index);
  39.  
  40.     void setUint32(size_t index, uint32_t val);
  41.     void putUint32(uint32_t val);
  42.     uint32_t getUint32();
  43.     uint32_t getUint32(size_t index);
  44.  
  45.     void setInt32(size_t index, int32_t val);
  46.     void putInt32(int32_t val);
  47.     int32_t getInt32();
  48.     int32_t getInt32(size_t index);
  49.  
  50.     void setFloat32(size_t index, float val);
  51.     void putFloat32(float val);
  52.     float getFloat32();
  53.     float getFloat32(size_t index);
  54.  
  55.     void setFloat64(size_t index, double val);
  56.     void putFloat64(double val);
  57.     double getFloat64();
  58.     double getFloat64(size_t index);
  59.  
  60.     void setLittleEndian(bool le);
  61.     bool isLittleEndian();
  62.  
  63.     void setUTF16(size_t index, std::u16string str);
  64.     void putUTF16(std::u16string str);
  65.     std::u16string getUTF16();
  66.     std::u16string getUTF16(size_t index);
  67.  
  68.     void setUTF8(size_t index, std::string str);
  69.     void putUTF8(std::string str);
  70.     std::string getUTF8();
  71.     std::string getUTF8(size_t index);
  72.  
  73.     void erase(size_t index, size_t count = 1);
  74.     std::vector<char> getVector();
  75.     char* getData();
  76.     size_t size();
  77.  
  78.     std::string toString();
  79. };
  80.  
  81. #endif //BYTEBUFFER_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement