-
Notifications
You must be signed in to change notification settings - Fork 0
/
lreq.h
executable file
·123 lines (113 loc) · 4.27 KB
/
lreq.h
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/**
`libRQTS` is an implementation of Restricted QuadTreeS (https://github.com/cfmmoc/libRQTS/)
Licensed under The GNU General Public License v3.0 (GPLv3)
Any modification, re-utilization or copy of the source or binary format in other software or publications should mention a CITATION of this library.
Copyright (c) 2016-2018 by Authors (Jin Yan, Guanghong Gong, Ni Li and Luhao Xiao)
**/
/**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%&@@@@*,,,,,,*%&@@@@@
@@@&%#*,* @@@@@@@@@@@@@&%#*,*@@@@@@@@@@@@@@@@@* @@@* .@@
@@@. ,@@@@@@@@&@@@@@, .@@@@@@@@@@@@@@@@* @@@@. .@@@@#. @@@@@@@ @@
@@@@@ .@@@@@@* ,@@@@@@. .@@@@@@@@@@@@@@@, .@@@@@@. .@@@@. .@@@@@@@@. @@
@@@@@, .@@@@@@ ,@@@@@@. @@@@@@@@@@@@@@@@@. *@@@@@. .@@@@. &@@@@@@@. .@
@@@@@. @@@@@@ @@@@@@, @@@@@@@@@@@@@@@@@@ .,,, .@@@@. ,@@@@@@@@@. .@
@@@@@. .@@@@@@@@@@@@@@@@@. @@@@@@@@@@@@@@@@@@* .@@@@. ,@@@@@@@@@. .@
@@@@@, .@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@@. .@@@@. *@@@@@@@@. .@
@@@@@ .@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@ .@@@@@. .@@@@. .@@&%%&@@. @
@@@@@ @@@@@@@@&&@@@@@@@ .@@@&%@@@@@@@@/,/@@ .@@@@@. .@@@@ ,@. @@@. @@
@@@@@ @@@@@ .@@@@@@# ./. *@@@@@ . @@@/, .#@@@ .(#. @@
@@@@@ @@@@@ .@@@@@@. @@@ *@@@@@ @@@@ &@@@ @@
@@@@* @@@@@@@. .@@@@@@. @@@@@@@ .@@@@@@&&@@@@@@@@@@@@@@@@@& .#%%%@@@@@@@
@@@@. @@@@@@@. @@@@@@, . @@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@* @&%%%@@@@@@@
@@@@. .@@@@@@@. .@@@@@@#. .@@@@@@@@@ ,@@. @@@. *#@@@
@@@@, .@@@@@@@, .@@@@@@. .@@@@@@@@@ .@@. .@@@@@ .@@@@ @@@. @@@@@@ ,@@
@@@#. .@@@@@@* .@@@@@@. @@@@@@@@@ .@@ .@@@@@ .@@@@ @@@. @@@@@@@@ @@
@@@. @@@@@@. @@@@@@, .@@@@@@@@@# @@@@@@@@@@ .@@@@@@@@@@ @@@@@@@@# @@
@@@. .@@@@@@@, .@@@@@@@. .@@@@@@@@@. @@@@@@@@@@@ .@@@@@@@@@@@@@@&%%*,. @@@
@@@, .@@@@@@@, .@@@@@@@ .@@@@@@@@@, @@@@@@@@@@@ .@@@@@@@@@@@# @@@@@
@@#. .@@@@@@* .@@@@@@@ @@@@@@@@* @@@@@@@@@@@ .@@@@@@@@@@* @@@@@@@@@@@
@@. @@@@@@. @@@@@@@ #@@@@@@@* @@@@@@@@@@@@ .@@@@@@@@@, @@@@@@@@@*,*@@
@@, @@@@@@@, @@@@@@@# ,@@@@@@@ @@@@@@@@@@@@@ .@@@@@@@@@. @@@@@@@@@@ @@
,. .,/@@,. .,/@@@@. .#@@#* @@@@@@@@@@@%%( .(%&@@@@@@@ *#@@&%#. @@
.@# .@@@@. @ ,, @@@@@@@@@@@@# .@@@@@@@@ ., @@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@**/
#pragma once
#include <string>
/**
@brief A struct representing a group of load requests for inter-process communication.
**/
struct SHARED_LOAD_RQ
{
// read/write flag for inter-process communication
int mWritable;
// request types for a group of load requests
bool mIsSplit[32];
// filenames for a group of load requests
char mFilename[32][32];
// the number of load requests
unsigned int mLength;
};
/**
@brief A class representing a load request.
**/
class CTBLoadReq
{
public:
/**
@remarks
default constructor
**/
CTBLoadReq(void);
/**
@remarks
initialize a load request
@par
split indicates request type (split/merge)
name filename of the request
**/
CTBLoadReq(bool split, std::string name);
/**
@remarks
default deconstructor
**/
~CTBLoadReq(void);
/**
@remarks
return type of load request, true for split request
**/
bool IsSplitReq();
/**
@remarks
return filename of load request
**/
std::string GetReqName();
/**
@remarks
return counter of request
**/
int GetReqCount();
/**
@remarks
return counter of finished request
**/
int GetReqOverCount();
/**
@remarks
increase counter of request by one
**/
void IncReqCount();
/**
@remarks
increase counter of finished request by one
**/
void IncReqOverCount();
private:
// type of load request, true for split request
bool mSplitReq;
// filename of load request
std::string mReqName;
// counter of request
int mReqCount;
// counter of finished request
int mReqOverCount;
};