-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIPCHandler.hpp
56 lines (39 loc) · 1.08 KB
/
IPCHandler.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef IPCHandler_hpp
#define IPCHandler_hpp
#include "Debug.cpp"
#include <cstdint>
#include <vector>
using namespace std;
typedef vector<size_t> SharedMemOffset_t;
typedef void* SharedMemAddress_t;
static const SharedMemOffset_t ElementSizes{
sizeof(uint16_t), //- client filedescriptor
sizeof(uint16_t), //- http version
sizeof(uint16_t), //- request number
sizeof(uint16_t), //- payload-length (bytes)
sizeof(nullptr) //- payload-size (bytes), dynamic size
};
typedef struct {
void* StaticFSPtr;
void* PostASStatusPtr;
void* PostASRequestsPtr;
void* PostASResultsPtr;
} SHMSegmentPointer_t;
class SHMStaticFS
{
public:
SHMStaticFS();
~SHMStaticFS();
void setBaseAddress(void*);
void resetOffset();
SharedMemAddress_t getNextAddress();
SharedMemAddress_t getNextAddress(uint16_t);
SharedMemAddress_t getCurrentOffsetAddress();
private:
void _stepElementOffset();
SharedMemAddress_t _BaseAddress;
SharedMemAddress_t _OffsetAddress;
SharedMemOffset_t _OffsetSizes;
uint8_t _ElementOffset;
};
#endif