Stream.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef STREAM_H
  2. #define STREAM_H
  3. #include <cstddef>
  4. using namespace std;
  5. class Stream
  6. {
  7. public:
  8. Stream(size_t minSize = 1);
  9. virtual ~Stream();
  10. void readSocket(int socket);
  11. void sendToSocket(int socket);
  12. bool hasData() const;
  13. void write(const void* writeData, size_t length);
  14. void writeChar(char c);
  15. void writeShort(short s);
  16. void writeInt(int i);
  17. void writeLong(long l);
  18. void writeUnsignedChar(unsigned char uc);
  19. void writeUnsignedShort(unsigned short us);
  20. void writeUnsignedInt(unsigned int ui);
  21. void writeUnsignedLong(unsigned long ul);
  22. void read(void* buffer, size_t length);
  23. char readChar();
  24. short readShort();
  25. int readInt();
  26. long readLong();
  27. unsigned char readUnsignedChar();
  28. unsigned short readUnsignedShort();
  29. unsigned int readUnsignedInt();
  30. unsigned long readUnsignedLong();
  31. private:
  32. void resize(size_t minSize);
  33. size_t getSize(size_t minSize);
  34. size_t dataLength = 0;
  35. unsigned char* data = nullptr;
  36. size_t writeIndex = 0;
  37. size_t readIndex = 0;
  38. };
  39. #endif