-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.toc
More file actions
182 lines (182 loc) · 18.3 KB
/
Copy pathmain.toc
File metadata and controls
182 lines (182 loc) · 18.3 KB
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
\acswitchoff
\contentsline {section}{\numberline {1}Scope}{6}{section.1}%
\contentsline {section}{\numberline {2}Terms and Definitions}{6}{section.2}%
\contentsline {section}{\numberline {3}Symbols}{6}{section.3}%
\contentsline {subsection}{\numberline {3.1}Abbreviations}{6}{subsection.3.1}%
\contentsline {subsection}{\numberline {3.2}Mathematical Symbols}{7}{subsection.3.2}%
\contentsline {section}{\numberline {4}Additional Information}{7}{section.4}%
\contentsline {subsection}{\numberline {4.1}How to Read this Specification}{7}{subsection.4.1}%
\contentsline {subsection}{\numberline {4.2}Acknowledgments}{8}{subsection.4.2}%
\contentsline {subsection}{\numberline {4.3}State of Maturity}{8}{subsection.4.3}%
\contentsline {section}{\numberline {5}Overview}{9}{section.5}%
\contentsline {subsection}{\numberline {5.1}Introduction}{9}{subsection.5.1}%
\contentsline {subsection}{\numberline {5.2}Requirements for a Rank protocol}{9}{subsection.5.2}%
\contentsline {subsection}{\numberline {5.3}Modes and Components}{9}{subsection.5.3}%
\contentsline {subsubsection}{\numberline {5.3.1}Modes of Execution}{9}{subsubsection.5.3.1}%
\contentsline {subsubsection}{\numberline {5.3.2}Components}{9}{subsubsection.5.3.2}%
\contentsline {section}{\numberline {6}Protocol Messages}{11}{section.6}%
\contentsline {subsection}{\numberline {6.1}Overview}{11}{subsection.6.1}%
\contentsline {subsection}{\numberline {6.2}Message Header}{11}{subsection.6.2}%
\contentsline {subsection}{\numberline {6.3}Exclusive Admission Request Message (EAR)}{11}{subsection.6.3}%
\contentsline {subsection}{\numberline {6.4}Multiple Admission Request Message (MAR)}{13}{subsection.6.4}%
\contentsline {subsection}{\numberline {6.5}Bid Message (BID)}{14}{subsection.6.5}%
\contentsline {subsection}{\numberline {6.6}Acceptation Message (ACC)}{14}{subsection.6.6}%
\contentsline {subsection}{\numberline {6.7}Refusal Message (REF)}{14}{subsection.6.7}%
\contentsline {subsection}{\numberline {6.8}Replenish Message (REP)}{15}{subsection.6.8}%
\contentsline {section}{\numberline {7}The Message Exchange and Parsing Algorithm}{17}{section.7}%
\contentsline {subsection}{\numberline {7.1}Overview of the Main Procedure}{17}{subsection.7.1}%
\contentsline {subsection}{\numberline {7.2}Receive Message and Delegate it to a Handler Thread}{17}{subsection.7.2}%
\contentsline {subsection}{\numberline {7.3}Parsing an entering EAR Message}{20}{subsection.7.3}%
\contentsline {subsection}{\numberline {7.4}Parsing an entering MAR Message}{23}{subsection.7.4}%
\contentsline {subsection}{\numberline {7.5}Parsing an entering BID Message}{25}{subsection.7.5}%
\contentsline {subsection}{\numberline {7.6}Parsing an entering ACC Message}{28}{subsection.7.6}%
\contentsline {subsection}{\numberline {7.7}Parsing an entering REF Message}{29}{subsection.7.7}%
\contentsline {subsection}{\numberline {7.8}Parsing an entering REP Message}{31}{subsection.7.8}%
\contentsline {section}{\numberline {8}The Data Model}{33}{section.8}%
\contentsline {subsection}{\numberline {8.1}Overview}{33}{subsection.8.1}%
\contentsline {subsection}{\numberline {8.2}The Process Structure}{33}{subsection.8.2}%
\contentsline {subsubsection}{\numberline {8.2.1}The get\_instance() operation}{35}{subsubsection.8.2.1}%
\contentsline {subsubsection}{\numberline {8.2.2}The execute() operation}{37}{subsubsection.8.2.2}%
\contentsline {subsubsection}{\numberline {8.2.3}The stop() operation}{37}{subsubsection.8.2.3}%
\contentsline {subsubsection}{\numberline {8.2.4}The is\_running() operation}{37}{subsubsection.8.2.4}%
\contentsline {subsubsection}{\numberline {8.2.5}The lifecycle() operation}{37}{subsubsection.8.2.5}%
\contentsline {subsubsection}{\numberline {8.2.6}The is\_bid\_in\_store() operation}{37}{subsubsection.8.2.6}%
\contentsline {subsubsection}{\numberline {8.2.7}The is\_uuid\_in\_store() operation}{38}{subsubsection.8.2.7}%
\contentsline {subsubsection}{\numberline {8.2.8}The store() operation}{38}{subsubsection.8.2.8}%
\contentsline {subsubsection}{\numberline {8.2.9}The create\_handler() operation}{38}{subsubsection.8.2.9}%
\contentsline {subsubsection}{\numberline {8.2.10}The resume\_handler() operation}{38}{subsubsection.8.2.10}%
\contentsline {subsubsection}{\numberline {8.2.11}The suspend\_handler() operation}{38}{subsubsection.8.2.11}%
\contentsline {subsubsection}{\numberline {8.2.12}The get\_handler() operation}{39}{subsubsection.8.2.12}%
\contentsline {subsubsection}{\numberline {8.2.13}The delete\_handler() operation}{39}{subsubsection.8.2.13}%
\contentsline {subsubsection}{\numberline {8.2.14}The get\_handler\_state() operation}{39}{subsubsection.8.2.14}%
\contentsline {subsection}{\numberline {8.3}The is\_uuid\_in\_store() operation}{39}{subsection.8.3}%
\contentsline {subsubsection}{\numberline {8.3.1}The get\_connections\_to() operation}{39}{subsubsection.8.3.1}%
\contentsline {paragraph}{With MAC addresses as listener identifier}{39}{section*.6}%
\contentsline {paragraph}{With IPv4 addresses as listener identifier}{39}{section*.7}%
\contentsline {paragraph}{With IPv6 addresses as listener identifier}{40}{section*.8}%
\contentsline {paragraph}{With DDS' RTPS Entity GUIDs as listener identifier}{40}{section*.9}%
\contentsline {subsubsection}{\numberline {8.3.2}The connections\_cardinal() operation}{40}{subsubsection.8.3.2}%
\contentsline {subsubsection}{\numberline {8.3.3}The parse\_as\_message\_header() operation}{40}{subsubsection.8.3.3}%
\contentsline {subsubsection}{\numberline {8.3.4}The parse\_as\_message\_type() operation}{40}{subsubsection.8.3.4}%
\contentsline {subsubsection}{\numberline {8.3.5}The parse\_as\_message\_uuid() operation}{40}{subsubsection.8.3.5}%
\contentsline {subsubsection}{\numberline {8.3.6}The Process() private constructor}{40}{subsubsection.8.3.6}%
\contentsline {subsection}{\numberline {8.4}The Resources Structure}{41}{subsection.8.4}%
\contentsline {subsubsection}{\numberline {8.4.1}The get\_instance() operation}{42}{subsubsection.8.4.1}%
\contentsline {subsubsection}{\numberline {8.4.2}The execute() operation}{42}{subsubsection.8.4.2}%
\contentsline {subsubsection}{\numberline {8.4.3}The stop() operation}{42}{subsubsection.8.4.3}%
\contentsline {subsubsection}{\numberline {8.4.4}The is\_running() operation}{43}{subsubsection.8.4.4}%
\contentsline {subsubsection}{\numberline {8.4.5}The lifecycle() operation}{43}{subsubsection.8.4.5}%
\contentsline {subsubsection}{\numberline {8.4.6}The estimate\_bid() operations}{44}{subsubsection.8.4.6}%
\contentsline {subsubsection}{\numberline {8.4.7}The available\_for\_performance() operation}{45}{subsubsection.8.4.7}%
\contentsline {subsubsection}{\numberline {8.4.8}The replenish\_reservation() operation}{46}{subsubsection.8.4.8}%
\contentsline {subsubsection}{\numberline {8.4.9}The mark\_reservation() operation}{46}{subsubsection.8.4.9}%
\contentsline {subsubsection}{\numberline {8.4.10}The reservations() operation}{46}{subsubsection.8.4.10}%
\contentsline {subsubsection}{\numberline {8.4.11}The reservations\_size() operation}{46}{subsubsection.8.4.11}%
\contentsline {subsubsection}{\numberline {8.4.12}The Resources private constructor}{47}{subsubsection.8.4.12}%
\contentsline {subsection}{\numberline {8.5}The Reservation Structure}{47}{subsection.8.5}%
\contentsline {subsubsection}{\numberline {8.5.1}The ReservationState Enumeration}{48}{subsubsection.8.5.1}%
\contentsline {subsubsection}{\numberline {8.5.2}The priority() operation}{51}{subsubsection.8.5.2}%
\contentsline {subsubsection}{\numberline {8.5.3}The capabilities() operation}{51}{subsubsection.8.5.3}%
\contentsline {subsubsection}{\numberline {8.5.4}The state() operation}{51}{subsubsection.8.5.4}%
\contentsline {subsubsection}{\numberline {8.5.5}The uuid() operation}{51}{subsubsection.8.5.5}%
\contentsline {subsubsection}{\numberline {8.5.6}The wait\_for\_sacrifice() operation}{51}{subsubsection.8.5.6}%
\contentsline {subsubsection}{\numberline {8.5.7}The reserve() operation}{51}{subsubsection.8.5.7}%
\contentsline {subsubsection}{\numberline {8.5.8}The pre\_reserve() operation}{51}{subsubsection.8.5.8}%
\contentsline {subsubsection}{\numberline {8.5.9}The unconsider() operation}{51}{subsubsection.8.5.9}%
\contentsline {subsubsection}{\numberline {8.5.10}The replenish() operation}{51}{subsubsection.8.5.10}%
\contentsline {subsubsection}{\numberline {8.5.11}The mark\_pre\_reserved() operation}{51}{subsubsection.8.5.11}%
\contentsline {subsubsection}{\numberline {8.5.12}The mark\_reserved() operation}{51}{subsubsection.8.5.12}%
\contentsline {subsubsection}{\numberline {8.5.13}The mark\_listener() operation}{51}{subsubsection.8.5.13}%
\contentsline {subsubsection}{\numberline {8.5.14}The operator<() function for comparisons}{51}{subsubsection.8.5.14}%
\contentsline {subsubsection}{\numberline {8.5.15}The operator==() function for comparisons}{51}{subsubsection.8.5.15}%
\contentsline {subsubsection}{\numberline {8.5.16}The Reservation constructor}{51}{subsubsection.8.5.16}%
\contentsline {subsection}{\numberline {8.6}The Capabilities Interface}{52}{subsection.8.6}%
\contentsline {subsubsection}{\numberline {8.6.1}The CapabilityItemType Enumeration}{52}{subsubsection.8.6.1}%
\contentsline {subsubsection}{\numberline {8.6.2}The CurrentCapabilities Structure}{53}{subsubsection.8.6.2}%
\contentsline {subsubsection}{\numberline {8.6.3}The RequestingCapabilities Structure}{53}{subsubsection.8.6.3}%
\contentsline {subsubsection}{\numberline {8.6.4}The produce\_yang() operation}{54}{subsubsection.8.6.4}%
\contentsline {subsubsection}{\numberline {8.6.5}The items() operation}{54}{subsubsection.8.6.5}%
\contentsline {subsubsection}{\numberline {8.6.6}The metrics getter operations}{54}{subsubsection.8.6.6}%
\contentsline {subsubsection}{\numberline {8.6.7}The metrics setter operations}{54}{subsubsection.8.6.7}%
\contentsline {subsubsection}{\numberline {8.6.8}The operator<() comparison operation}{54}{subsubsection.8.6.8}%
\contentsline {subsection}{\numberline {8.7}The Store Structure}{54}{subsection.8.7}%
\contentsline {subsection}{\numberline {8.8}The Handler Model}{54}{subsection.8.8}%
\contentsline {subsubsection}{\numberline {8.8.1}The HandlerState Enumeration}{55}{subsubsection.8.8.1}%
\contentsline {subsubsection}{\numberline {8.8.2}The BidSet Set}{55}{subsubsection.8.8.2}%
\contentsline {subsubsection}{\numberline {8.8.3}The id() operation}{55}{subsubsection.8.8.3}%
\contentsline {subsubsection}{\numberline {8.8.4}The state() operation}{60}{subsubsection.8.8.4}%
\contentsline {subsubsection}{\numberline {8.8.5}The handle() operation}{60}{subsubsection.8.8.5}%
\contentsline {subsubsection}{\numberline {8.8.6}The is\_me() operation \textcolor {red}{TODO Move this to utilities/identity}}{60}{subsubsection.8.8.6}%
\contentsline {subsubsection}{\numberline {8.8.7}The associated\_reservation() operation}{61}{subsubsection.8.8.7}%
\contentsline {subsubsection}{\numberline {8.8.8}The produce\_reservation() operation}{61}{subsubsection.8.8.8}%
\contentsline {subsubsection}{\numberline {8.8.9}The create\_translation() operation}{61}{subsubsection.8.8.9}%
\contentsline {subsubsection}{\numberline {8.8.10}The is\_translation\_table\_empty\_for() operation}{61}{subsubsection.8.8.10}%
\contentsline {subsubsection}{\numberline {8.8.11}The locate\_original\_of() operation}{61}{subsubsection.8.8.11}%
\contentsline {subsubsection}{\numberline {8.8.12}The new\_bid() operation}{61}{subsubsection.8.8.12}%
\contentsline {subsubsection}{\numberline {8.8.13}The clear\_bids() operation}{62}{subsubsection.8.8.13}%
\contentsline {subsubsection}{\numberline {8.8.14}The bids\_cardinal() operation}{62}{subsubsection.8.8.14}%
\contentsline {subsubsection}{\numberline {8.8.15}The min\_bids() operation}{62}{subsubsection.8.8.15}%
\contentsline {subsubsection}{\numberline {8.8.16}The is\_min\_bid\_unique() operation}{62}{subsubsection.8.8.16}%
\contentsline {subsubsection}{\numberline {8.8.17}The lifecycle() operation}{62}{subsubsection.8.8.17}%
\contentsline {subsubsection}{\numberline {8.8.18}The execute() operation}{62}{subsubsection.8.8.18}%
\contentsline {subsubsection}{\numberline {8.8.19}The stop() operation}{63}{subsubsection.8.8.19}%
\contentsline {subsubsection}{\numberline {8.8.20}The is\_running() operation}{63}{subsubsection.8.8.20}%
\contentsline {subsubsection}{\numberline {8.8.21}The Handler public constructor}{63}{subsubsection.8.8.21}%
\contentsline {subsection}{\numberline {8.9}The Message Structure}{63}{subsection.8.9}%
\contentsline {subsubsection}{\numberline {8.9.1}The Message Header Structure}{65}{subsubsection.8.9.1}%
\contentsline {subsubsection}{\numberline {8.9.2}The Message Type Enumeration}{65}{subsubsection.8.9.2}%
\contentsline {subsubsection}{\numberline {8.9.3}The Message's header() operation}{66}{subsubsection.8.9.3}%
\contentsline {subsubsection}{\numberline {8.9.4}The Message's new\_prototype() operation}{66}{subsubsection.8.9.4}%
\contentsline {subsubsection}{\numberline {8.9.5}The Message's version() operation}{66}{subsubsection.8.9.5}%
\contentsline {subsubsection}{\numberline {8.9.6}The Message's type() operation}{66}{subsubsection.8.9.6}%
\contentsline {subsubsection}{\numberline {8.9.7}The Message's uuid() operation}{66}{subsubsection.8.9.7}%
\contentsline {subsubsection}{\numberline {8.9.8}The Message's public constructor}{66}{subsubsection.8.9.8}%
\contentsline {subsection}{\numberline {8.10}The EAR Message Structure}{66}{subsection.8.10}%
\contentsline {subsubsection}{\numberline {8.10.1}The EAR Message's requirements() operation}{68}{subsubsection.8.10.1}%
\contentsline {subsubsection}{\numberline {8.10.2}The EAR Message's expand\_listener\_length() operation}{68}{subsubsection.8.10.2}%
\contentsline {subsubsection}{\numberline {8.10.3}The EAR Message's priority() operation}{68}{subsubsection.8.10.3}%
\contentsline {subsubsection}{\numberline {8.10.4}The EAR Message's listener\_length() operation}{68}{subsubsection.8.10.4}%
\contentsline {subsubsection}{\numberline {8.10.5}The EAR Message's listener\_id() operation}{68}{subsubsection.8.10.5}%
\contentsline {subsubsection}{\numberline {8.10.6}The EAR Message's payload\_length() operation}{68}{subsubsection.8.10.6}%
\contentsline {subsubsection}{\numberline {8.10.7}The EAR Message's payload() operation}{68}{subsubsection.8.10.7}%
\contentsline {subsubsection}{\numberline {8.10.8}The EAR Message's public constructors}{68}{subsubsection.8.10.8}%
\contentsline {subsection}{\numberline {8.11}The MAR Message Structure}{68}{subsection.8.11}%
\contentsline {subsubsection}{\numberline {8.11.1}The MAR Message's requirements() operation}{70}{subsubsection.8.11.1}%
\contentsline {subsubsection}{\numberline {8.11.2}The MAR Message's expand\_listener\_length() operation}{70}{subsubsection.8.11.2}%
\contentsline {subsubsection}{\numberline {8.11.3}The MAR Message's priority() operation}{70}{subsubsection.8.11.3}%
\contentsline {subsubsection}{\numberline {8.11.4}The MAR Message's listener\_length() operation}{70}{subsubsection.8.11.4}%
\contentsline {subsubsection}{\numberline {8.11.5}The MAR Message's listener\_id() operation}{70}{subsubsection.8.11.5}%
\contentsline {subsubsection}{\numberline {8.11.6}The MAR Message's payload\_length() operation}{70}{subsubsection.8.11.6}%
\contentsline {subsubsection}{\numberline {8.11.7}The MAR Message's payload() operation}{70}{subsubsection.8.11.7}%
\contentsline {subsubsection}{\numberline {8.11.8}The MAR Message's public constructors}{70}{subsubsection.8.11.8}%
\contentsline {subsection}{\numberline {8.12}The BID Message Structure}{70}{subsection.8.12}%
\contentsline {subsubsection}{\numberline {8.12.1}The BID Message's value() operation}{71}{subsubsection.8.12.1}%
\contentsline {subsubsection}{\numberline {8.12.2}The BID Message's public constructors}{71}{subsubsection.8.12.2}%
\contentsline {subsection}{\numberline {8.13}The ACC Message Structure}{71}{subsection.8.13}%
\contentsline {subsubsection}{\numberline {8.13.1}The ACC Message's public constructors}{71}{subsubsection.8.13.1}%
\contentsline {subsection}{\numberline {8.14}The REF Message Structure}{72}{subsection.8.14}%
\contentsline {subsubsection}{\numberline {8.14.1}The REF Message's public constructors}{72}{subsubsection.8.14.1}%
\contentsline {subsection}{\numberline {8.15}The REP Message Structure}{72}{subsection.8.15}%
\contentsline {subsubsection}{\numberline {8.15.1}The REP Message's expand\_listener\_length() operation}{72}{subsubsection.8.15.1}%
\contentsline {subsubsection}{\numberline {8.15.2}The REP Message's listener\_length() operation}{74}{subsubsection.8.15.2}%
\contentsline {subsubsection}{\numberline {8.15.3}The REP Message's listener() operation}{74}{subsubsection.8.15.3}%
\contentsline {subsubsection}{\numberline {8.15.4}The REP Message's reserved() operation}{74}{subsubsection.8.15.4}%
\contentsline {subsubsection}{\numberline {8.15.5}The REP Message's public constructors}{74}{subsubsection.8.15.5}%
\contentsline {subsection}{\numberline {8.16}The TranslationTable Structure}{74}{subsection.8.16}%
\contentsline {subsection}{\numberline {8.17}The TimeoutHandler Structure}{74}{subsection.8.17}%
\contentsline {subsubsection}{\numberline {8.17.1}The initiate\_timeout() operation}{76}{subsubsection.8.17.1}%
\contentsline {subsubsection}{\numberline {8.17.2}The terminate\_timeout() operation}{76}{subsubsection.8.17.2}%
\contentsline {subsubsection}{\numberline {8.17.3}The get\_instance() operation}{77}{subsubsection.8.17.3}%
\contentsline {subsubsection}{\numberline {8.17.4}The execute() operation}{77}{subsubsection.8.17.4}%
\contentsline {subsubsection}{\numberline {8.17.5}The stop() operation}{77}{subsubsection.8.17.5}%
\contentsline {subsubsection}{\numberline {8.17.6}The is\_running() operation}{77}{subsubsection.8.17.6}%
\contentsline {subsubsection}{\numberline {8.17.7}The lifecycle() operation}{77}{subsubsection.8.17.7}%
\contentsline {subsubsection}{\numberline {8.17.8}The TimeoutHandler private constructor}{77}{subsubsection.8.17.8}%
\contentsline {subsection}{\numberline {8.18}The TimeoutTable Structure}{77}{subsection.8.18}%
\contentsline {subsection}{\numberline {8.19}The TimeoutHandlerSpec Structure}{77}{subsection.8.19}%
\contentsline {subsubsection}{\numberline {8.19.1}The execute() operation}{79}{subsubsection.8.19.1}%
\contentsline {subsubsection}{\numberline {8.19.2}The stop() operation}{79}{subsubsection.8.19.2}%
\contentsline {subsubsection}{\numberline {8.19.3}The is\_running() operation}{79}{subsubsection.8.19.3}%
\contentsline {subsubsection}{\numberline {8.19.4}The lifecycle() operation}{79}{subsubsection.8.19.4}%
\contentsline {subsubsection}{\numberline {8.19.5}The TimeoutHandlerSpec constructor}{79}{subsubsection.8.19.5}%
\contentsline {section}{\numberline {9}Timeout Definitions}{81}{section.9}%