3es  0.7
3espacketbuffer.h
1 //
2 // author: Kazys Stepanas
3 //
4 #ifndef _3ESPACKETBUFFER_H_
5 #define _3ESPACKETBUFFER_H_
6 
7 #include "3es-core.h"
8 
9 #include <cinttypes>
10 
11 namespace tes
12 {
13  struct PacketHeader;
14 
18  class _3es_coreAPI PacketBuffer
19  {
20  public:
22  PacketBuffer();
24  ~PacketBuffer();
25 
32  int addBytes(const uint8_t *bytes, size_t byteCount);
33 
39  PacketHeader *extractPacket();
40 
43  void releasePacket(PacketHeader *packet);
44 
45  private:
49  void appendData(const uint8_t *bytes, size_t byteCount);
50 
53  void removeData(size_t byteCount);
54 
55  uint8_t *_packetBuffer;
56  size_t _byteCount;
57  size_t _bufferSize;
58  bool _markerFound;
59  };
60 }
61 
62 #endif // _3ESPACKETBUFFER_H_
This class accepts responsibility for collating incoming byte streams.
Definition: 3espacketbuffer.h:18
Definition: 3esbounds.h:13
The header for an incoming 3ES data packet.
Definition: 3espacketheader.h:32