MADARA  3.4.1
BufferFilterHeader.h
Go to the documentation of this file.
1 #ifndef _MADARA_FILTERS_BUFFERFILTERHEADER_H_
2 #define _MADARA_FILTERS_BUFFERFILTERHEADER_H_
3 
12 #include "madara/utility/StdInt.h"
13 #include "madara/MadaraExport.h"
14 #include "BufferFilter.h"
15 #include <string.h>
16 
17 namespace madara
18 {
19 namespace filters
20 {
32 class MADARA_EXPORT BufferFilterHeader
33 {
34 public:
38  BufferFilterHeader() : size(20), id(""), version(0) {}
39 
43  static uint64_t encoded_size(void)
44  {
45  return 20;
46  }
47 
53  bool check_filter(filters::BufferFilter* filter);
54 
59  void read(filters::BufferFilter* filter);
60 
70  const char* read(const char* buffer, int64_t& buffer_remaining);
71 
81  char* write(char* buffer, int64_t& buffer_remaining);
82 
86  uint64_t size = 0;
87 
91  char id[8] = {'\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0'};
92 
96  uint32_t version = 0;
97 };
98 }
99 }
100 
101 #include "BufferFilterHeader.inl"
102 
103 #endif // _MADARA_FILTERS_BUFFERFILTERHEADER_H_
Defines a buffer filter header.
static uint64_t encoded_size(void)
Returns the size of the encoded BufferFilterHeader class.
Abstract base class for implementing buffer filters via a functor interface.
Definition: BufferFilter.h:27
Copyright(c) 2020 Galois.