packet.hpp 694 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef __PACKET_HPP_
  2. #define __PACKET_HPP_
  3. #include "macs.hpp"
  4. class packet
  5. {
  6. public :
  7. uchar *buf;
  8. long buf_size,ro,wo,rend;
  9. int pre_size;
  10. void make_bigger(int max);
  11. int get_read_position() { return ro; }
  12. void set_read_position(int x) { ro=x; }
  13. int read(uchar *buffer, int size);
  14. int write(uchar *buffer, int size);
  15. int eop() { return ro>=rend; }
  16. void reset();
  17. packet(int prefix_size=2);
  18. void get_string(char *st, int len);
  19. int advance(long offset);
  20. void write_long(ulong x); // writes can't fail...
  21. void write_short(ushort x);
  22. void write_byte(uchar x);
  23. void insert_into(packet &pk);
  24. int size() { return rend-pre_size; }
  25. ~packet();
  26. } ;
  27. #endif