Diff to HTML by rtfpessoa

Files changed (16) hide show
  1. generated/generated/Debug/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_CustomErrorCode.cpp +148 -0
  2. generated/generated/Debug/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleAsync.cpp +2414 -0
  3. generated/generated/Debug/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleCustomObjects.cpp +704 -0
  4. generated/generated/Debug/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleInstanceObjects.cpp +649 -0
  5. {baseline/home/runner/work/ThunderTools/ThunderTools/ghpages_baseline/ProxyStubGenerator/master/latest_raw → generated/generated}/Debug/ThunderInterfaces/interfaces/generated/ProxyStubs_OCDM.cpp +2 -2
  6. generated/generated/Debug/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestAutomation.cpp +858 -0
  7. generated/generated/Debug/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestController.cpp +865 -0
  8. generated/generated/Debug/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestUtility.cpp +486 -0
  9. generated/generated/Release/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_CustomErrorCode.cpp +205 -0
  10. generated/generated/Release/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleAsync.cpp +3882 -0
  11. generated/generated/Release/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleCustomObjects.cpp +1085 -0
  12. generated/generated/Release/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleInstanceObjects.cpp +1040 -0
  13. {baseline/home/runner/work/ThunderTools/ThunderTools/ghpages_baseline/ProxyStubGenerator/master/latest_raw → generated/generated}/Release/ThunderInterfaces/interfaces/generated/ProxyStubs_OCDM.cpp +2 -2
  14. generated/generated/Release/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestAutomation.cpp +1267 -0
  15. generated/generated/Release/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestController.cpp +1448 -0
  16. generated/generated/Release/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestUtility.cpp +772 -0
generated/generated/Debug/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_CustomErrorCode.cpp ADDED
@@ -0,0 +1,148 @@
1
+ //
2
+ // generated automatically from "ICustomErrorCode.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class Example::ICustomErrorCode
6
+ //
7
+
8
+ #include "Module.h"
9
+ #include "ICustomErrorCode.h"
10
+
11
+ #include <com/com.h>
12
+
13
+ namespace Thunder {
14
+
15
+ namespace ProxyStubs {
16
+
17
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
18
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
19
+
20
+ // -----------------------------------------------------------------
21
+ // STUBS
22
+ // -----------------------------------------------------------------
23
+
24
+ //
25
+ // Example::ICustomErrorCode interface stub definitions
26
+ //
27
+ // Methods:
28
+ // (0) virtual Core::hresult TriggerCustomError(const int32_t) const = 0
29
+ // (1) virtual Core::hresult TriggerNonCustomError(const uint32_t) const = 0
30
+ //
31
+
32
+ static ProxyStub::MethodHandler ExampleCustomErrorCodeStubMethods[] = {
33
+ // (0) virtual Core::hresult TriggerCustomError(const int32_t) const = 0
34
+ //
35
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
36
+ const Example::ICustomErrorCode* implementation = reinterpret_cast<const Example::ICustomErrorCode*>(message->Parameters().Implementation());
37
+ ASSERT(implementation != nullptr);
38
+
39
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
40
+ const int32_t _errorcode = reader.Number<int32_t>();
41
+
42
+ Core::hresult result = implementation->TriggerCustomError(_errorcode);
43
+
44
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
45
+ writer.Number<Core::hresult>(result);
46
+ },
47
+
48
+ // (1) virtual Core::hresult TriggerNonCustomError(const uint32_t) const = 0
49
+ //
50
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
51
+ const Example::ICustomErrorCode* implementation = reinterpret_cast<const Example::ICustomErrorCode*>(message->Parameters().Implementation());
52
+ ASSERT(implementation != nullptr);
53
+
54
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
55
+ const uint32_t _errorcode = reader.Number<uint32_t>();
56
+
57
+ Core::hresult result = implementation->TriggerNonCustomError(_errorcode);
58
+
59
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
60
+ writer.Number<Core::hresult>(result);
61
+ }
62
+ , nullptr
63
+ }; // ExampleCustomErrorCodeStubMethods
64
+
65
+ // -----------------------------------------------------------------
66
+ // PROXIES
67
+ // -----------------------------------------------------------------
68
+
69
+ //
70
+ // Example::ICustomErrorCode interface proxy definitions
71
+ //
72
+ // Methods:
73
+ // (0) virtual Core::hresult TriggerCustomError(const int32_t) const = 0
74
+ // (1) virtual Core::hresult TriggerNonCustomError(const uint32_t) const = 0
75
+ //
76
+
77
+ class ExampleCustomErrorCodeProxy final : public ProxyStub::UnknownProxyType<Example::ICustomErrorCode> {
78
+ public:
79
+ ExampleCustomErrorCodeProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
80
+ : BaseClass(channel, implementation, otherSideInformed)
81
+ {
82
+ }
83
+
84
+ Core::hresult TriggerCustomError(const int32_t _errorcode) const override
85
+ {
86
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
87
+
88
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
89
+ writer.Number<int32_t>(_errorcode);
90
+
91
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
92
+ if (hresult == Core::ERROR_NONE) {
93
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
94
+ hresult = reader.Number<Core::hresult>();
95
+ } else {
96
+ ASSERT((hresult & COM_ERROR) != 0);
97
+ }
98
+
99
+ return (hresult);
100
+ }
101
+
102
+ Core::hresult TriggerNonCustomError(const uint32_t _errorcode) const override
103
+ {
104
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
105
+
106
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
107
+ writer.Number<uint32_t>(_errorcode);
108
+
109
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
110
+ if (hresult == Core::ERROR_NONE) {
111
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
112
+ hresult = reader.Number<Core::hresult>();
113
+ } else {
114
+ ASSERT((hresult & COM_ERROR) != 0);
115
+ }
116
+
117
+ return (hresult);
118
+ }
119
+
120
+ }; // class ExampleCustomErrorCodeProxy
121
+
122
+ POP_WARNING()
123
+ POP_WARNING()
124
+
125
+ // -----------------------------------------------------------------
126
+ // REGISTRATION
127
+ // -----------------------------------------------------------------
128
+ namespace {
129
+
130
+ typedef ProxyStub::UnknownStubType<Example::ICustomErrorCode, ExampleCustomErrorCodeStubMethods> ExampleCustomErrorCodeStub;
131
+
132
+ static class Instantiation {
133
+ public:
134
+ Instantiation()
135
+ {
136
+ RPC::Administrator::Instance().Announce<Example::ICustomErrorCode, ExampleCustomErrorCodeProxy, ExampleCustomErrorCodeStub>();
137
+ }
138
+ ~Instantiation()
139
+ {
140
+ RPC::Administrator::Instance().Recall<Example::ICustomErrorCode>();
141
+ }
142
+ } ProxyStubRegistration;
143
+
144
+ } // namespace
145
+
146
+ } // namespace ProxyStubs
147
+
148
+ }
generated/generated/Debug/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleAsync.cpp ADDED
@@ -0,0 +1,2414 @@
1
+ //
2
+ // generated automatically from "ISimpleAsync.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class RPC::IIteratorType<typename ELEMENT, const uint32_t INTERFACE_ID> [with ELEMENT = string, INTERFACE_ID = RPC::ID_STRINGITERATOR] [[iterator]]
6
+ // - class RPC::IIteratorType<typename ELEMENT, const uint32_t INTERFACE_ID> [with ELEMENT = uint32_t, INTERFACE_ID = RPC::ID_VALUEITERATOR] [[iterator]]
7
+ // - class RPC::IIteratorType<typename ELEMENT, const uint32_t INTERFACE_ID> [with ELEMENT = RPC::Environment, INTERFACE_ID = RPC::ID_ENVIRONMENTITERATOR] [[iterator]]
8
+ // - class Example::ISimpleAsync
9
+ // - class Example::ISimpleAsync::ICallback
10
+ // - class Example::ISimpleAsync::INotification
11
+ // - class Example::ISimpleAsync::IBindNotification
12
+ //
13
+
14
+ #include "Module.h"
15
+ #include "ISimpleAsync.h"
16
+
17
+ #include <com/com.h>
18
+
19
+ namespace Thunder {
20
+
21
+ namespace ProxyStubs {
22
+
23
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
24
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
25
+
26
+ // -----------------------------------------------------------------
27
+ // STUBS
28
+ // -----------------------------------------------------------------
29
+
30
+ //
31
+ // RPC::IIteratorTypeInstance_bd6e04b8d151c1f7 interface stub definitions
32
+ //
33
+ // Methods:
34
+ // (0) virtual bool Next(string&) = 0
35
+ // (1) virtual bool Previous(string&) = 0
36
+ // (2) virtual void Reset(const uint32_t) = 0
37
+ // (3) virtual bool IsValid() const = 0
38
+ // (4) virtual uint32_t Count() const = 0
39
+ // (5) virtual string Current() const = 0
40
+ //
41
+
42
+ static ProxyStub::MethodHandler RPCIteratorTypeInstance_bd6e04b8d151c1f7StubMethods[] = {
43
+ // (0) virtual bool Next(string&) = 0
44
+ //
45
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
46
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
47
+
48
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
49
+ ASSERT(implementation != nullptr);
50
+
51
+ string _info{};
52
+
53
+ bool result = implementation->Next(_info);
54
+
55
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
56
+ writer.Boolean(result);
57
+ writer.Text(_info);
58
+ },
59
+
60
+ // (1) virtual bool Previous(string&) = 0
61
+ //
62
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
63
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
64
+
65
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
66
+ ASSERT(implementation != nullptr);
67
+
68
+ string _info{};
69
+
70
+ bool result = implementation->Previous(_info);
71
+
72
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
73
+ writer.Boolean(result);
74
+ writer.Text(_info);
75
+ },
76
+
77
+ // (2) virtual void Reset(const uint32_t) = 0
78
+ //
79
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
80
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
81
+
82
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
83
+ ASSERT(implementation != nullptr);
84
+
85
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
86
+ const uint32_t _position = reader.Number<uint32_t>();
87
+
88
+ implementation->Reset(_position);
89
+ },
90
+
91
+ // (3) virtual bool IsValid() const = 0
92
+ //
93
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
94
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
95
+
96
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
97
+ ASSERT(implementation != nullptr);
98
+
99
+ bool result = implementation->IsValid();
100
+
101
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
102
+ writer.Boolean(result);
103
+ },
104
+
105
+ // (4) virtual uint32_t Count() const = 0
106
+ //
107
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
108
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
109
+
110
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
111
+ ASSERT(implementation != nullptr);
112
+
113
+ uint32_t result = implementation->Count();
114
+
115
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
116
+ writer.Number<uint32_t>(result);
117
+ },
118
+
119
+ // (5) virtual string Current() const = 0
120
+ //
121
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
122
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
123
+
124
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
125
+ ASSERT(implementation != nullptr);
126
+
127
+ string result = implementation->Current();
128
+
129
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
130
+ writer.Text(result);
131
+ }
132
+ , nullptr
133
+ }; // RPCIteratorTypeInstance_bd6e04b8d151c1f7StubMethods
134
+
135
+ //
136
+ // RPC::IIteratorTypeInstance_60eba5a793c685ea interface stub definitions
137
+ //
138
+ // Methods:
139
+ // (0) virtual bool Next(uint32_t&) = 0
140
+ // (1) virtual bool Previous(uint32_t&) = 0
141
+ // (2) virtual void Reset(const uint32_t) = 0
142
+ // (3) virtual bool IsValid() const = 0
143
+ // (4) virtual uint32_t Count() const = 0
144
+ // (5) virtual uint32_t Current() const = 0
145
+ //
146
+
147
+ static ProxyStub::MethodHandler RPCIteratorTypeInstance_60eba5a793c685eaStubMethods[] = {
148
+ // (0) virtual bool Next(uint32_t&) = 0
149
+ //
150
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
151
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
152
+
153
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
154
+ ASSERT(implementation != nullptr);
155
+
156
+ uint32_t _info{};
157
+
158
+ bool result = implementation->Next(_info);
159
+
160
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
161
+ writer.Boolean(result);
162
+ writer.Number<uint32_t>(_info);
163
+ },
164
+
165
+ // (1) virtual bool Previous(uint32_t&) = 0
166
+ //
167
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
168
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
169
+
170
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
171
+ ASSERT(implementation != nullptr);
172
+
173
+ uint32_t _info{};
174
+
175
+ bool result = implementation->Previous(_info);
176
+
177
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
178
+ writer.Boolean(result);
179
+ writer.Number<uint32_t>(_info);
180
+ },
181
+
182
+ // (2) virtual void Reset(const uint32_t) = 0
183
+ //
184
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
185
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
186
+
187
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
188
+ ASSERT(implementation != nullptr);
189
+
190
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
191
+ const uint32_t _position = reader.Number<uint32_t>();
192
+
193
+ implementation->Reset(_position);
194
+ },
195
+
196
+ // (3) virtual bool IsValid() const = 0
197
+ //
198
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
199
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
200
+
201
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
202
+ ASSERT(implementation != nullptr);
203
+
204
+ bool result = implementation->IsValid();
205
+
206
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
207
+ writer.Boolean(result);
208
+ },
209
+
210
+ // (4) virtual uint32_t Count() const = 0
211
+ //
212
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
213
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
214
+
215
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
216
+ ASSERT(implementation != nullptr);
217
+
218
+ uint32_t result = implementation->Count();
219
+
220
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
221
+ writer.Number<uint32_t>(result);
222
+ },
223
+
224
+ // (5) virtual uint32_t Current() const = 0
225
+ //
226
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
227
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
228
+
229
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
230
+ ASSERT(implementation != nullptr);
231
+
232
+ uint32_t result = implementation->Current();
233
+
234
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
235
+ writer.Number<uint32_t>(result);
236
+ }
237
+ , nullptr
238
+ }; // RPCIteratorTypeInstance_60eba5a793c685eaStubMethods
239
+
240
+ //
241
+ // RPC::IIteratorTypeInstance_195e88cf7f955a2e interface stub definitions
242
+ //
243
+ // Methods:
244
+ // (0) virtual bool Next(RPC::Environment&) = 0
245
+ // (1) virtual bool Previous(RPC::Environment&) = 0
246
+ // (2) virtual void Reset(const uint32_t) = 0
247
+ // (3) virtual bool IsValid() const = 0
248
+ // (4) virtual uint32_t Count() const = 0
249
+ // (5) virtual RPC::Environment Current() const = 0
250
+ //
251
+
252
+ static ProxyStub::MethodHandler RPCIteratorTypeInstance_195e88cf7f955a2eStubMethods[] = {
253
+ // (0) virtual bool Next(RPC::Environment&) = 0
254
+ //
255
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
256
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
257
+
258
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
259
+ ASSERT(implementation != nullptr);
260
+
261
+ RPC::Environment _info{};
262
+
263
+ bool result = implementation->Next(_info);
264
+
265
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
266
+ writer.Boolean(result);
267
+ writer.Text(_info.Key);
268
+ writer.Text(_info.Value);
269
+ writer.Number<RPC::Environment::scope>(_info.Scope);
270
+ },
271
+
272
+ // (1) virtual bool Previous(RPC::Environment&) = 0
273
+ //
274
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
275
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
276
+
277
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
278
+ ASSERT(implementation != nullptr);
279
+
280
+ RPC::Environment _info{};
281
+
282
+ bool result = implementation->Previous(_info);
283
+
284
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
285
+ writer.Boolean(result);
286
+ writer.Text(_info.Key);
287
+ writer.Text(_info.Value);
288
+ writer.Number<RPC::Environment::scope>(_info.Scope);
289
+ },
290
+
291
+ // (2) virtual void Reset(const uint32_t) = 0
292
+ //
293
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
294
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
295
+
296
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
297
+ ASSERT(implementation != nullptr);
298
+
299
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
300
+ const uint32_t _position = reader.Number<uint32_t>();
301
+
302
+ implementation->Reset(_position);
303
+ },
304
+
305
+ // (3) virtual bool IsValid() const = 0
306
+ //
307
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
308
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
309
+
310
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
311
+ ASSERT(implementation != nullptr);
312
+
313
+ bool result = implementation->IsValid();
314
+
315
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
316
+ writer.Boolean(result);
317
+ },
318
+
319
+ // (4) virtual uint32_t Count() const = 0
320
+ //
321
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
322
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
323
+
324
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
325
+ ASSERT(implementation != nullptr);
326
+
327
+ uint32_t result = implementation->Count();
328
+
329
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
330
+ writer.Number<uint32_t>(result);
331
+ },
332
+
333
+ // (5) virtual RPC::Environment Current() const = 0
334
+ //
335
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
336
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
337
+
338
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
339
+ ASSERT(implementation != nullptr);
340
+
341
+ RPC::Environment result = implementation->Current();
342
+
343
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
344
+ writer.Text(result.Key);
345
+ writer.Text(result.Value);
346
+ writer.Number<RPC::Environment::scope>(result.Scope);
347
+ }
348
+ , nullptr
349
+ }; // RPCIteratorTypeInstance_195e88cf7f955a2eStubMethods
350
+
351
+ //
352
+ // Example::ISimpleAsync interface stub definitions
353
+ //
354
+ // Methods:
355
+ // (0) virtual Core::hresult Connect(const Core::OptionalType<std::vector<uint8_t>>&, const Core::OptionalType<uint16_t>&, Example::ISimpleAsync::ICallback* const) = 0
356
+ // (1) virtual Core::hresult Abort() = 0
357
+ // (2) virtual Core::hresult Disconnect() = 0
358
+ // (3) virtual Core::hresult Connected(const std::vector<uint8_t>&, bool&) const = 0
359
+ // (4) virtual Core::hresult Link(const uint8_t[6]) = 0
360
+ // (5) virtual Core::hresult Unlink(const uint8_t[6]) = 0
361
+ // (6) virtual Core::hresult LinkedDevice(uint8_t[6]) const = 0
362
+ // (7) virtual Core::hresult Register(Example::ISimpleAsync::INotification* const) = 0
363
+ // (8) virtual Core::hresult Unregister(const Example::ISimpleAsync::INotification* const) = 0
364
+ // (9) virtual Core::hresult Metadata(const uint8_t[6], const string&) = 0
365
+ // (10) virtual Core::hresult Metadata(const uint8_t[6], string&) const = 0
366
+ // (11) virtual Core::hresult Bind(const Core::MACAddress&) = 0
367
+ // (12) virtual Core::hresult Unbind(const Core::MACAddress&) = 0
368
+ // (13) virtual Core::hresult BoundDevice(Core::MACAddress&) const = 0
369
+ // (14) virtual Core::hresult Type(const Core::MACAddress&, const string&) = 0
370
+ // (15) virtual Core::hresult Type(const Core::MACAddress&, string&) const = 0
371
+ // (16) virtual Core::hresult Register(Example::ISimpleAsync::IBindNotification* const) = 0
372
+ // (17) virtual Core::hresult Unregister(const Example::ISimpleAsync::IBindNotification* const) = 0
373
+ // (18) virtual Core::hresult Tables(const bool, std::vector<string>&) = 0
374
+ // (19) virtual Core::hresult Tables2(const bool, std::vector<string>&, std::vector<uint8_t>&) = 0
375
+ // (20) virtual Core::hresult Tables3(const bool, Core::OptionalType<std::vector<string>>&) = 0
376
+ // (21) virtual Core::hresult Tables4(const bool, RPC::IStringIterator*&) = 0
377
+ // (22) virtual Core::hresult Tables5(const bool, RPC::IStringIterator*&, RPC::IValueIterator*&) = 0
378
+ // (23) virtual Core::hresult Tables6(const bool, Example::ISimpleAsync::Record&) = 0
379
+ // (24) virtual Core::hresult Tables7(const bool, Core::OptionalType<Example::ISimpleAsync::Record>&) = 0
380
+ // (25) virtual Core::hresult Tables8(const bool, Core::OptionalType<Example::ISimpleAsync::Record2>&) = 0
381
+ // (26) virtual Core::hresult Tables9(const bool, Example::ISimpleAsync::Record2&) = 0
382
+ // (27) virtual Core::hresult OptionalResult(const bool, Core::OptionalType<string>&) = 0
383
+ //
384
+
385
+ static ProxyStub::MethodHandler ExampleSimpleAsyncStubMethods[] = {
386
+ // (0) virtual Core::hresult Connect(const Core::OptionalType<std::vector<uint8_t>>&, const Core::OptionalType<uint16_t>&, Example::ISimpleAsync::ICallback* const) = 0
387
+ //
388
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
389
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
390
+ ASSERT(implementation != nullptr);
391
+
392
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
393
+ Core::OptionalType<std::vector<uint8_t>> _address{};
394
+ if (reader.Boolean() == true) {
395
+ std::vector<uint8_t> _addressObject__{};
396
+ uint8_t _addressObject__Size = reader.Number<uint8_t>();
397
+ ASSERT((_addressObject__Size >= 6) && (_addressObject__Size <= 6));
398
+ _address.Value().reserve(_addressObject__Size);
399
+ for (uint8_t i = 0; i < _addressObject__Size; i++) {
400
+ uint8_t _addressObject__Item = reader.Number<uint8_t>();
401
+ _address.Value().push_back(std::move(_addressObject__Item));
402
+ }
403
+ _address = std::move(_addressObject__);
404
+ }
405
+ Core::OptionalType<uint16_t> _timeout{};
406
+ if (reader.Boolean() == true) {
407
+ _timeout = reader.Number<uint16_t>();
408
+ }
409
+ Core::instance_id _cbInstanceId__ = reader.Number<Core::instance_id>();
410
+
411
+ Example::ISimpleAsync::ICallback* _cb{};
412
+ ProxyStub::UnknownProxy* _cbProxy__ = nullptr;
413
+ if (_cbInstanceId__ != 0) {
414
+ _cbProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _cbInstanceId__, false, _cb);
415
+ ASSERT((_cb != nullptr) && (_cbProxy__ != nullptr));
416
+ }
417
+
418
+ Core::hresult result = implementation->Connect(static_cast<const Core::OptionalType<std::vector<uint8_t>>&>(_address), static_cast<const Core::OptionalType<uint16_t>&>(_timeout), _cb);
419
+
420
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
421
+ writer.Number<Core::hresult>(result);
422
+
423
+ if (_cbProxy__ != nullptr) {
424
+ RPC::Administrator::Instance().Release(_cbProxy__, message->Response());
425
+ }
426
+ },
427
+
428
+ // (1) virtual Core::hresult Abort() = 0
429
+ //
430
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
431
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
432
+ ASSERT(implementation != nullptr);
433
+
434
+ Core::hresult result = implementation->Abort();
435
+
436
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
437
+ writer.Number<Core::hresult>(result);
438
+ },
439
+
440
+ // (2) virtual Core::hresult Disconnect() = 0
441
+ //
442
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
443
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
444
+ ASSERT(implementation != nullptr);
445
+
446
+ Core::hresult result = implementation->Disconnect();
447
+
448
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
449
+ writer.Number<Core::hresult>(result);
450
+ },
451
+
452
+ // (3) virtual Core::hresult Connected(const std::vector<uint8_t>&, bool&) const = 0
453
+ //
454
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
455
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
456
+ ASSERT(implementation != nullptr);
457
+
458
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
459
+ std::vector<uint8_t> _address{};
460
+ uint8_t _addressSize = reader.Number<uint8_t>();
461
+ ASSERT((_addressSize >= 6) && (_addressSize <= 6));
462
+ _address.reserve(_addressSize);
463
+ for (uint8_t i = 0; i < _addressSize; i++) {
464
+ uint8_t _addressItem = reader.Number<uint8_t>();
465
+ _address.push_back(std::move(_addressItem));
466
+ }
467
+
468
+ bool _result{};
469
+
470
+ Core::hresult result = implementation->Connected(static_cast<const std::vector<uint8_t>&>(_address), _result);
471
+
472
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
473
+ writer.Number<Core::hresult>(result);
474
+ writer.Boolean(_result);
475
+ },
476
+
477
+ // (4) virtual Core::hresult Link(const uint8_t[6]) = 0
478
+ //
479
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
480
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
481
+ ASSERT(implementation != nullptr);
482
+
483
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
484
+ const uint8_t* _address{};
485
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
486
+ ASSERT(addressFixedLen == 6);
487
+ reader.UnlockBuffer(addressFixedLen);
488
+
489
+ Core::hresult result = implementation->Link(_address);
490
+
491
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
492
+ writer.Number<Core::hresult>(result);
493
+ },
494
+
495
+ // (5) virtual Core::hresult Unlink(const uint8_t[6]) = 0
496
+ //
497
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
498
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
499
+ ASSERT(implementation != nullptr);
500
+
501
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
502
+ const uint8_t* _address{};
503
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
504
+ ASSERT(addressFixedLen == 6);
505
+ reader.UnlockBuffer(addressFixedLen);
506
+
507
+ Core::hresult result = implementation->Unlink(_address);
508
+
509
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
510
+ writer.Number<Core::hresult>(result);
511
+ },
512
+
513
+ // (6) virtual Core::hresult LinkedDevice(uint8_t[6]) const = 0
514
+ //
515
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
516
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
517
+ ASSERT(implementation != nullptr);
518
+
519
+ uint8_t* _address{};
520
+
521
+ _address = static_cast<uint8_t*>(ALLOCA(6 * sizeof(uint8_t)));
522
+ ASSERT(_address != nullptr);
523
+
524
+ Core::hresult result = implementation->LinkedDevice(_address);
525
+
526
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
527
+ writer.Number<Core::hresult>(result);
528
+ writer.Copy(6, _address);
529
+ },
530
+
531
+ // (7) virtual Core::hresult Register(Example::ISimpleAsync::INotification* const) = 0
532
+ //
533
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
534
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
535
+ ASSERT(implementation != nullptr);
536
+
537
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
538
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
539
+
540
+ Example::ISimpleAsync::INotification* _notification{};
541
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
542
+ if (_notificationInstanceId__ != 0) {
543
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
544
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
545
+ }
546
+
547
+ Core::hresult result = implementation->Register(_notification);
548
+
549
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
550
+ writer.Number<Core::hresult>(result);
551
+
552
+ if (_notificationProxy__ != nullptr) {
553
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
554
+ }
555
+ },
556
+
557
+ // (8) virtual Core::hresult Unregister(const Example::ISimpleAsync::INotification* const) = 0
558
+ //
559
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
560
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
561
+ ASSERT(implementation != nullptr);
562
+
563
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
564
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
565
+
566
+ const Example::ISimpleAsync::INotification* _notification{};
567
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
568
+ if (_notificationInstanceId__ != 0) {
569
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
570
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
571
+ }
572
+
573
+ Core::hresult result = implementation->Unregister(_notification);
574
+
575
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
576
+ writer.Number<Core::hresult>(result);
577
+
578
+ if (_notificationProxy__ != nullptr) {
579
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
580
+ }
581
+ },
582
+
583
+ // (9) virtual Core::hresult Metadata(const uint8_t[6], const string&) = 0
584
+ //
585
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
586
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
587
+ ASSERT(implementation != nullptr);
588
+
589
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
590
+ const uint8_t* _address{};
591
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
592
+ ASSERT(addressFixedLen == 6);
593
+ reader.UnlockBuffer(addressFixedLen);
594
+ const string _metadata = reader.Text();
595
+
596
+ Core::hresult result = implementation->Metadata(_address, static_cast<const string&>(_metadata));
597
+
598
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
599
+ writer.Number<Core::hresult>(result);
600
+ },
601
+
602
+ // (10) virtual Core::hresult Metadata(const uint8_t[6], string&) const = 0
603
+ //
604
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
605
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
606
+ ASSERT(implementation != nullptr);
607
+
608
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
609
+ const uint8_t* _address{};
610
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
611
+ ASSERT(addressFixedLen == 6);
612
+ reader.UnlockBuffer(addressFixedLen);
613
+
614
+ string _metadata{};
615
+
616
+ Core::hresult result = implementation->Metadata(_address, _metadata);
617
+
618
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
619
+ writer.Number<Core::hresult>(result);
620
+ writer.Text(_metadata);
621
+ },
622
+
623
+ // (11) virtual Core::hresult Bind(const Core::MACAddress&) = 0
624
+ //
625
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
626
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
627
+ ASSERT(implementation != nullptr);
628
+
629
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
630
+ const uint8_t* addressBuffer{};
631
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
632
+ ASSERT(addressLength == 6);
633
+ reader.UnlockBuffer(addressLength);
634
+ Core::MACAddress _address{addressBuffer};
635
+
636
+ Core::hresult result = implementation->Bind(static_cast<const Core::MACAddress&>(_address));
637
+
638
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
639
+ writer.Number<Core::hresult>(result);
640
+ },
641
+
642
+ // (12) virtual Core::hresult Unbind(const Core::MACAddress&) = 0
643
+ //
644
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
645
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
646
+ ASSERT(implementation != nullptr);
647
+
648
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
649
+ const uint8_t* addressBuffer{};
650
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
651
+ ASSERT(addressLength == 6);
652
+ reader.UnlockBuffer(addressLength);
653
+ Core::MACAddress _address{addressBuffer};
654
+
655
+ Core::hresult result = implementation->Unbind(static_cast<const Core::MACAddress&>(_address));
656
+
657
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
658
+ writer.Number<Core::hresult>(result);
659
+ },
660
+
661
+ // (13) virtual Core::hresult BoundDevice(Core::MACAddress&) const = 0
662
+ //
663
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
664
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
665
+ ASSERT(implementation != nullptr);
666
+
667
+ Core::MACAddress _address{};
668
+
669
+ Core::hresult result = implementation->BoundDevice(_address);
670
+
671
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
672
+ writer.Number<Core::hresult>(result);
673
+ writer.Copy(6, _address);
674
+ },
675
+
676
+ // (14) virtual Core::hresult Type(const Core::MACAddress&, const string&) = 0
677
+ //
678
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
679
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
680
+ ASSERT(implementation != nullptr);
681
+
682
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
683
+ const uint8_t* addressBuffer{};
684
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
685
+ ASSERT(addressLength == 6);
686
+ reader.UnlockBuffer(addressLength);
687
+ Core::MACAddress _address{addressBuffer};
688
+ const string _value = reader.Text();
689
+
690
+ Core::hresult result = implementation->Type(static_cast<const Core::MACAddress&>(_address), static_cast<const string&>(_value));
691
+
692
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
693
+ writer.Number<Core::hresult>(result);
694
+ },
695
+
696
+ // (15) virtual Core::hresult Type(const Core::MACAddress&, string&) const = 0
697
+ //
698
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
699
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
700
+ ASSERT(implementation != nullptr);
701
+
702
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
703
+ const uint8_t* addressBuffer{};
704
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
705
+ ASSERT(addressLength == 6);
706
+ reader.UnlockBuffer(addressLength);
707
+ Core::MACAddress _address{addressBuffer};
708
+
709
+ string _value{};
710
+
711
+ Core::hresult result = implementation->Type(static_cast<const Core::MACAddress&>(_address), _value);
712
+
713
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
714
+ writer.Number<Core::hresult>(result);
715
+ writer.Text(_value);
716
+ },
717
+
718
+ // (16) virtual Core::hresult Register(Example::ISimpleAsync::IBindNotification* const) = 0
719
+ //
720
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
721
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
722
+ ASSERT(implementation != nullptr);
723
+
724
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
725
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
726
+
727
+ Example::ISimpleAsync::IBindNotification* _notification{};
728
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
729
+ if (_notificationInstanceId__ != 0) {
730
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
731
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
732
+ }
733
+
734
+ Core::hresult result = implementation->Register(_notification);
735
+
736
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
737
+ writer.Number<Core::hresult>(result);
738
+
739
+ if (_notificationProxy__ != nullptr) {
740
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
741
+ }
742
+ },
743
+
744
+ // (17) virtual Core::hresult Unregister(const Example::ISimpleAsync::IBindNotification* const) = 0
745
+ //
746
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
747
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
748
+ ASSERT(implementation != nullptr);
749
+
750
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
751
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
752
+
753
+ const Example::ISimpleAsync::IBindNotification* _notification{};
754
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
755
+ if (_notificationInstanceId__ != 0) {
756
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
757
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
758
+ }
759
+
760
+ Core::hresult result = implementation->Unregister(_notification);
761
+
762
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
763
+ writer.Number<Core::hresult>(result);
764
+
765
+ if (_notificationProxy__ != nullptr) {
766
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
767
+ }
768
+ },
769
+
770
+ // (18) virtual Core::hresult Tables(const bool, std::vector<string>&) = 0
771
+ //
772
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
773
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
774
+ ASSERT(implementation != nullptr);
775
+
776
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
777
+ const bool _fill = reader.Boolean();
778
+
779
+ std::vector<string> _stringTables{};
780
+
781
+ Core::hresult result = implementation->Tables(_fill, _stringTables);
782
+
783
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
784
+ writer.Number<Core::hresult>(result);
785
+ writer.Number<uint8_t>(_stringTables.size());
786
+ for (uint8_t i = 0; i < _stringTables.size(); i++) {
787
+ writer.Text(_stringTables[i]);
788
+ }
789
+ },
790
+
791
+ // (19) virtual Core::hresult Tables2(const bool, std::vector<string>&, std::vector<uint8_t>&) = 0
792
+ //
793
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
794
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
795
+ ASSERT(implementation != nullptr);
796
+
797
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
798
+ const bool _fill = reader.Boolean();
799
+
800
+ std::vector<string> _stringTables{};
801
+ std::vector<uint8_t> _intTables{};
802
+
803
+ Core::hresult result = implementation->Tables2(_fill, _stringTables, _intTables);
804
+
805
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
806
+ writer.Number<Core::hresult>(result);
807
+ writer.Number<uint8_t>(_stringTables.size());
808
+ for (uint8_t i = 0; i < _stringTables.size(); i++) {
809
+ writer.Text(_stringTables[i]);
810
+ }
811
+ writer.Number<uint8_t>(_intTables.size());
812
+ for (uint8_t i = 0; i < _intTables.size(); i++) {
813
+ writer.Number<uint8_t>(_intTables[i]);
814
+ }
815
+ },
816
+
817
+ // (20) virtual Core::hresult Tables3(const bool, Core::OptionalType<std::vector<string>>&) = 0
818
+ //
819
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
820
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
821
+ ASSERT(implementation != nullptr);
822
+
823
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
824
+ const bool _fill = reader.Boolean();
825
+
826
+ Core::OptionalType<std::vector<string>> _stringTables{};
827
+
828
+ Core::hresult result = implementation->Tables3(_fill, _stringTables);
829
+
830
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
831
+ writer.Number<Core::hresult>(result);
832
+ writer.Boolean(_stringTables.IsSet());
833
+ if (_stringTables.IsSet() == true) {
834
+ writer.Number<uint8_t>(_stringTables.Value().size());
835
+ for (uint8_t i = 0; i < _stringTables.Value().size(); i++) {
836
+ writer.Text(_stringTables.Value()[i]);
837
+ }
838
+ }
839
+ },
840
+
841
+ // (21) virtual Core::hresult Tables4(const bool, RPC::IStringIterator*&) = 0
842
+ //
843
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
844
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
845
+ ASSERT(implementation != nullptr);
846
+
847
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
848
+ const bool _fill = reader.Boolean();
849
+
850
+ RPC::IStringIterator* _stringTables{};
851
+
852
+ Core::hresult result = implementation->Tables4(_fill, _stringTables);
853
+
854
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
855
+ writer.Number<Core::hresult>(result);
856
+ writer.Number<Core::instance_id>(RPC::instance_cast(_stringTables));
857
+
858
+ RPC::Administrator::Instance().RegisterInterface(channel, _stringTables);
859
+ },
860
+
861
+ // (22) virtual Core::hresult Tables5(const bool, RPC::IStringIterator*&, RPC::IValueIterator*&) = 0
862
+ //
863
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
864
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
865
+ ASSERT(implementation != nullptr);
866
+
867
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
868
+ const bool _fill = reader.Boolean();
869
+
870
+ RPC::IStringIterator* _stringTables{};
871
+ RPC::IValueIterator* _intTables{};
872
+
873
+ Core::hresult result = implementation->Tables5(_fill, _stringTables, _intTables);
874
+
875
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
876
+ writer.Number<Core::hresult>(result);
877
+ writer.Number<Core::instance_id>(RPC::instance_cast(_stringTables));
878
+ writer.Number<Core::instance_id>(RPC::instance_cast(_intTables));
879
+
880
+ RPC::Administrator::Instance().RegisterInterface(channel, _stringTables);
881
+ RPC::Administrator::Instance().RegisterInterface(channel, _intTables);
882
+ },
883
+
884
+ // (23) virtual Core::hresult Tables6(const bool, Example::ISimpleAsync::Record&) = 0
885
+ //
886
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
887
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
888
+ ASSERT(implementation != nullptr);
889
+
890
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
891
+ const bool _fill = reader.Boolean();
892
+
893
+ Example::ISimpleAsync::Record _pod{};
894
+
895
+ Core::hresult result = implementation->Tables6(_fill, _pod);
896
+
897
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
898
+ writer.Number<Core::hresult>(result);
899
+ writer.Text(_pod.param0);
900
+ writer.Number<uint8_t>(_pod.param1.size());
901
+ for (uint8_t i = 0; i < _pod.param1.size(); i++) {
902
+ writer.Text(_pod.param1[i]);
903
+ }
904
+ writer.Number<uint8_t>(_pod.param2.size());
905
+ for (uint8_t i = 0; i < _pod.param2.size(); i++) {
906
+ writer.Text(_pod.param2[i]);
907
+ }
908
+ writer.Boolean(_pod.param3.IsSet());
909
+ if (_pod.param3.IsSet() == true) {
910
+ writer.Number<uint8_t>(_pod.param3.Value().size());
911
+ for (uint8_t i = 0; i < _pod.param3.Value().size(); i++) {
912
+ writer.Text(_pod.param3.Value()[i]);
913
+ }
914
+ }
915
+ writer.Boolean(_pod.param4.IsSet());
916
+ if (_pod.param4.IsSet() == true) {
917
+ writer.Number<uint8_t>(_pod.param4.Value().size());
918
+ for (uint8_t i = 0; i < _pod.param4.Value().size(); i++) {
919
+ writer.Text(_pod.param4.Value()[i]);
920
+ }
921
+ }
922
+ writer.Text(_pod.param5.param0);
923
+ writer.Boolean(_pod.param5.param1);
924
+ writer.Boolean(_pod.param6.IsSet());
925
+ if (_pod.param6.IsSet() == true) {
926
+ writer.Text(_pod.param6.Value().param0);
927
+ writer.Boolean(_pod.param6.Value().param1);
928
+ }
929
+ },
930
+
931
+ // (24) virtual Core::hresult Tables7(const bool, Core::OptionalType<Example::ISimpleAsync::Record>&) = 0
932
+ //
933
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
934
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
935
+ ASSERT(implementation != nullptr);
936
+
937
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
938
+ const bool _fill = reader.Boolean();
939
+
940
+ Core::OptionalType<Example::ISimpleAsync::Record> _pod{};
941
+
942
+ Core::hresult result = implementation->Tables7(_fill, _pod);
943
+
944
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
945
+ writer.Number<Core::hresult>(result);
946
+ writer.Boolean(_pod.IsSet());
947
+ if (_pod.IsSet() == true) {
948
+ writer.Text(_pod.Value().param0);
949
+ writer.Number<uint8_t>(_pod.Value().param1.size());
950
+ for (uint8_t i = 0; i < _pod.Value().param1.size(); i++) {
951
+ writer.Text(_pod.Value().param1[i]);
952
+ }
953
+ writer.Number<uint8_t>(_pod.Value().param2.size());
954
+ for (uint8_t i = 0; i < _pod.Value().param2.size(); i++) {
955
+ writer.Text(_pod.Value().param2[i]);
956
+ }
957
+ writer.Boolean(_pod.Value().param3.IsSet());
958
+ if (_pod.Value().param3.IsSet() == true) {
959
+ writer.Number<uint8_t>(_pod.Value().param3.Value().size());
960
+ for (uint8_t i = 0; i < _pod.Value().param3.Value().size(); i++) {
961
+ writer.Text(_pod.Value().param3.Value()[i]);
962
+ }
963
+ }
964
+ writer.Boolean(_pod.Value().param4.IsSet());
965
+ if (_pod.Value().param4.IsSet() == true) {
966
+ writer.Number<uint8_t>(_pod.Value().param4.Value().size());
967
+ for (uint8_t i = 0; i < _pod.Value().param4.Value().size(); i++) {
968
+ writer.Text(_pod.Value().param4.Value()[i]);
969
+ }
970
+ }
971
+ writer.Text(_pod.Value().param5.param0);
972
+ writer.Boolean(_pod.Value().param5.param1);
973
+ writer.Boolean(_pod.Value().param6.IsSet());
974
+ if (_pod.Value().param6.IsSet() == true) {
975
+ writer.Text(_pod.Value().param6.Value().param0);
976
+ writer.Boolean(_pod.Value().param6.Value().param1);
977
+ }
978
+ }
979
+ },
980
+
981
+ // (25) virtual Core::hresult Tables8(const bool, Core::OptionalType<Example::ISimpleAsync::Record2>&) = 0
982
+ //
983
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
984
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
985
+ ASSERT(implementation != nullptr);
986
+
987
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
988
+ const bool _fill = reader.Boolean();
989
+
990
+ Core::OptionalType<Example::ISimpleAsync::Record2> _pod{};
991
+
992
+ Core::hresult result = implementation->Tables8(_fill, _pod);
993
+
994
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
995
+ writer.Number<Core::hresult>(result);
996
+ writer.Boolean(_pod.IsSet());
997
+ if (_pod.IsSet() == true) {
998
+ writer.Boolean(_pod.Value().param3.IsSet());
999
+ if (_pod.Value().param3.IsSet() == true) {
1000
+ writer.Number<uint8_t>(_pod.Value().param3.Value().size());
1001
+ for (uint8_t i = 0; i < _pod.Value().param3.Value().size(); i++) {
1002
+ writer.Text(_pod.Value().param3.Value()[i]);
1003
+ }
1004
+ }
1005
+ writer.Boolean(_pod.Value().param4.IsSet());
1006
+ if (_pod.Value().param4.IsSet() == true) {
1007
+ writer.Number<uint8_t>(_pod.Value().param4.Value().size());
1008
+ for (uint8_t i = 0; i < _pod.Value().param4.Value().size(); i++) {
1009
+ writer.Text(_pod.Value().param4.Value()[i]);
1010
+ }
1011
+ }
1012
+ }
1013
+ },
1014
+
1015
+ // (26) virtual Core::hresult Tables9(const bool, Example::ISimpleAsync::Record2&) = 0
1016
+ //
1017
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
1018
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1019
+ ASSERT(implementation != nullptr);
1020
+
1021
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1022
+ const bool _fill = reader.Boolean();
1023
+
1024
+ Example::ISimpleAsync::Record2 _pod{};
1025
+
1026
+ Core::hresult result = implementation->Tables9(_fill, _pod);
1027
+
1028
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1029
+ writer.Number<Core::hresult>(result);
1030
+ writer.Boolean(_pod.param3.IsSet());
1031
+ if (_pod.param3.IsSet() == true) {
1032
+ writer.Number<uint8_t>(_pod.param3.Value().size());
1033
+ for (uint8_t i = 0; i < _pod.param3.Value().size(); i++) {
1034
+ writer.Text(_pod.param3.Value()[i]);
1035
+ }
1036
+ }
1037
+ writer.Boolean(_pod.param4.IsSet());
1038
+ if (_pod.param4.IsSet() == true) {
1039
+ writer.Number<uint8_t>(_pod.param4.Value().size());
1040
+ for (uint8_t i = 0; i < _pod.param4.Value().size(); i++) {
1041
+ writer.Text(_pod.param4.Value()[i]);
1042
+ }
1043
+ }
1044
+ },
1045
+
1046
+ // (27) virtual Core::hresult OptionalResult(const bool, Core::OptionalType<string>&) = 0
1047
+ //
1048
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
1049
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1050
+ ASSERT(implementation != nullptr);
1051
+
1052
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1053
+ const bool _fill = reader.Boolean();
1054
+
1055
+ Core::OptionalType<string> _result{};
1056
+
1057
+ Core::hresult result = implementation->OptionalResult(_fill, _result);
1058
+
1059
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1060
+ writer.Number<Core::hresult>(result);
1061
+ writer.Boolean(_result.IsSet());
1062
+ if (_result.IsSet() == true) {
1063
+ writer.Text(_result.Value());
1064
+ }
1065
+ }
1066
+ , nullptr
1067
+ }; // ExampleSimpleAsyncStubMethods
1068
+
1069
+ //
1070
+ // Example::ISimpleAsync::ICallback interface stub definitions
1071
+ //
1072
+ // Methods:
1073
+ // (0) virtual void Complete(const Core::OptionalType<std::vector<uint8_t>>&, const Example::ISimpleAsync::state) = 0
1074
+ //
1075
+
1076
+ static ProxyStub::MethodHandler ExampleSimpleAsyncCallbackStubMethods[] = {
1077
+ // (0) virtual void Complete(const Core::OptionalType<std::vector<uint8_t>>&, const Example::ISimpleAsync::state) = 0
1078
+ //
1079
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
1080
+ Example::ISimpleAsync::ICallback* implementation = reinterpret_cast<Example::ISimpleAsync::ICallback*>(message->Parameters().Implementation());
1081
+ ASSERT(implementation != nullptr);
1082
+
1083
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1084
+ Core::OptionalType<std::vector<uint8_t>> _address{};
1085
+ if (reader.Boolean() == true) {
1086
+ std::vector<uint8_t> _addressObject__{};
1087
+ uint8_t _addressObject__Size = reader.Number<uint8_t>();
1088
+ ASSERT((_addressObject__Size >= 6) && (_addressObject__Size <= 6));
1089
+ _address.Value().reserve(_addressObject__Size);
1090
+ for (uint8_t i = 0; i < _addressObject__Size; i++) {
1091
+ uint8_t _addressObject__Item = reader.Number<uint8_t>();
1092
+ _address.Value().push_back(std::move(_addressObject__Item));
1093
+ }
1094
+ _address = std::move(_addressObject__);
1095
+ }
1096
+ const Example::ISimpleAsync::state _state = reader.Number<Example::ISimpleAsync::state>();
1097
+
1098
+ implementation->Complete(static_cast<const Core::OptionalType<std::vector<uint8_t>>&>(_address), _state);
1099
+ }
1100
+ , nullptr
1101
+ }; // ExampleSimpleAsyncCallbackStubMethods
1102
+
1103
+ //
1104
+ // Example::ISimpleAsync::INotification interface stub definitions
1105
+ //
1106
+ // Methods:
1107
+ // (0) virtual void StatusChanged(const uint8_t[6], const bool) = 0
1108
+ //
1109
+
1110
+ static ProxyStub::MethodHandler ExampleSimpleAsyncNotificationStubMethods[] = {
1111
+ // (0) virtual void StatusChanged(const uint8_t[6], const bool) = 0
1112
+ //
1113
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
1114
+ Example::ISimpleAsync::INotification* implementation = reinterpret_cast<Example::ISimpleAsync::INotification*>(message->Parameters().Implementation());
1115
+ ASSERT(implementation != nullptr);
1116
+
1117
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1118
+ const uint8_t* _address{};
1119
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
1120
+ ASSERT(addressFixedLen == 6);
1121
+ reader.UnlockBuffer(addressFixedLen);
1122
+ const bool _linked = reader.Boolean();
1123
+
1124
+ implementation->StatusChanged(_address, _linked);
1125
+ }
1126
+ , nullptr
1127
+ }; // ExampleSimpleAsyncNotificationStubMethods
1128
+
1129
+ //
1130
+ // Example::ISimpleAsync::IBindNotification interface stub definitions
1131
+ //
1132
+ // Methods:
1133
+ // (0) virtual void BindingChanged(const Core::MACAddress&, const bool) = 0
1134
+ //
1135
+
1136
+ static ProxyStub::MethodHandler ExampleSimpleAsyncBindNotificationStubMethods[] = {
1137
+ // (0) virtual void BindingChanged(const Core::MACAddress&, const bool) = 0
1138
+ //
1139
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
1140
+ Example::ISimpleAsync::IBindNotification* implementation = reinterpret_cast<Example::ISimpleAsync::IBindNotification*>(message->Parameters().Implementation());
1141
+ ASSERT(implementation != nullptr);
1142
+
1143
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1144
+ const uint8_t* addressBuffer{};
1145
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
1146
+ ASSERT(addressLength == 6);
1147
+ reader.UnlockBuffer(addressLength);
1148
+ Core::MACAddress _address{addressBuffer};
1149
+ const bool _bound = reader.Boolean();
1150
+
1151
+ implementation->BindingChanged(static_cast<const Core::MACAddress&>(_address), _bound);
1152
+ }
1153
+ , nullptr
1154
+ }; // ExampleSimpleAsyncBindNotificationStubMethods
1155
+
1156
+ // -----------------------------------------------------------------
1157
+ // PROXIES
1158
+ // -----------------------------------------------------------------
1159
+
1160
+ //
1161
+ // RPC::IIteratorTypeInstance_bd6e04b8d151c1f7 interface proxy definitions
1162
+ //
1163
+ // Methods:
1164
+ // (0) virtual bool Next(string&) = 0
1165
+ // (1) virtual bool Previous(string&) = 0
1166
+ // (2) virtual void Reset(const uint32_t) = 0
1167
+ // (3) virtual bool IsValid() const = 0
1168
+ // (4) virtual uint32_t Count() const = 0
1169
+ // (5) virtual string Current() const = 0
1170
+ //
1171
+
1172
+ class RPCIteratorTypeInstance_bd6e04b8d151c1f7Proxy final : public ProxyStub::UnknownProxyType<RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>> {
1173
+ public:
1174
+ RPCIteratorTypeInstance_bd6e04b8d151c1f7Proxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1175
+ : BaseClass(channel, implementation, otherSideInformed)
1176
+ {
1177
+ }
1178
+
1179
+ bool Next(string& _info) override
1180
+ {
1181
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1182
+
1183
+ bool result{};
1184
+
1185
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1186
+ if (hresult == Core::ERROR_NONE) {
1187
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1188
+ result = reader.Boolean();
1189
+ _info = reader.Text();
1190
+ } else {
1191
+ ASSERT((hresult & COM_ERROR) != 0);
1192
+ }
1193
+
1194
+ return (result);
1195
+ }
1196
+
1197
+ bool Previous(string& _info) override
1198
+ {
1199
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
1200
+
1201
+ bool result{};
1202
+
1203
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1204
+ if (hresult == Core::ERROR_NONE) {
1205
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1206
+ result = reader.Boolean();
1207
+ _info = reader.Text();
1208
+ } else {
1209
+ ASSERT((hresult & COM_ERROR) != 0);
1210
+ }
1211
+
1212
+ return (result);
1213
+ }
1214
+
1215
+ void Reset(const uint32_t _position) override
1216
+ {
1217
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
1218
+
1219
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1220
+ writer.Number<uint32_t>(_position);
1221
+
1222
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1223
+ }
1224
+
1225
+ bool IsValid() const override
1226
+ {
1227
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
1228
+
1229
+ bool result{};
1230
+
1231
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1232
+ if (hresult == Core::ERROR_NONE) {
1233
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1234
+ result = reader.Boolean();
1235
+ } else {
1236
+ ASSERT((hresult & COM_ERROR) != 0);
1237
+ }
1238
+
1239
+ return (result);
1240
+ }
1241
+
1242
+ uint32_t Count() const override
1243
+ {
1244
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
1245
+
1246
+ uint32_t result{};
1247
+
1248
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1249
+ if (hresult == Core::ERROR_NONE) {
1250
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1251
+ result = reader.Number<uint32_t>();
1252
+ } else {
1253
+ ASSERT((hresult & COM_ERROR) != 0);
1254
+ }
1255
+
1256
+ return (result);
1257
+ }
1258
+
1259
+ string Current() const override
1260
+ {
1261
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
1262
+
1263
+ string result{};
1264
+
1265
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1266
+ if (hresult == Core::ERROR_NONE) {
1267
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1268
+ result = reader.Text();
1269
+ } else {
1270
+ ASSERT((hresult & COM_ERROR) != 0);
1271
+ }
1272
+
1273
+ return (result);
1274
+ }
1275
+
1276
+ }; // class RPCIteratorTypeInstance_bd6e04b8d151c1f7Proxy
1277
+
1278
+ //
1279
+ // RPC::IIteratorTypeInstance_60eba5a793c685ea interface proxy definitions
1280
+ //
1281
+ // Methods:
1282
+ // (0) virtual bool Next(uint32_t&) = 0
1283
+ // (1) virtual bool Previous(uint32_t&) = 0
1284
+ // (2) virtual void Reset(const uint32_t) = 0
1285
+ // (3) virtual bool IsValid() const = 0
1286
+ // (4) virtual uint32_t Count() const = 0
1287
+ // (5) virtual uint32_t Current() const = 0
1288
+ //
1289
+
1290
+ class RPCIteratorTypeInstance_60eba5a793c685eaProxy final : public ProxyStub::UnknownProxyType<RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>> {
1291
+ public:
1292
+ RPCIteratorTypeInstance_60eba5a793c685eaProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1293
+ : BaseClass(channel, implementation, otherSideInformed)
1294
+ {
1295
+ }
1296
+
1297
+ bool Next(uint32_t& _info) override
1298
+ {
1299
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1300
+
1301
+ bool result{};
1302
+
1303
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1304
+ if (hresult == Core::ERROR_NONE) {
1305
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1306
+ result = reader.Boolean();
1307
+ _info = reader.Number<uint32_t>();
1308
+ } else {
1309
+ ASSERT((hresult & COM_ERROR) != 0);
1310
+ }
1311
+
1312
+ return (result);
1313
+ }
1314
+
1315
+ bool Previous(uint32_t& _info) override
1316
+ {
1317
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
1318
+
1319
+ bool result{};
1320
+
1321
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1322
+ if (hresult == Core::ERROR_NONE) {
1323
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1324
+ result = reader.Boolean();
1325
+ _info = reader.Number<uint32_t>();
1326
+ } else {
1327
+ ASSERT((hresult & COM_ERROR) != 0);
1328
+ }
1329
+
1330
+ return (result);
1331
+ }
1332
+
1333
+ void Reset(const uint32_t _position) override
1334
+ {
1335
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
1336
+
1337
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1338
+ writer.Number<uint32_t>(_position);
1339
+
1340
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1341
+ }
1342
+
1343
+ bool IsValid() const override
1344
+ {
1345
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
1346
+
1347
+ bool result{};
1348
+
1349
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1350
+ if (hresult == Core::ERROR_NONE) {
1351
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1352
+ result = reader.Boolean();
1353
+ } else {
1354
+ ASSERT((hresult & COM_ERROR) != 0);
1355
+ }
1356
+
1357
+ return (result);
1358
+ }
1359
+
1360
+ uint32_t Count() const override
1361
+ {
1362
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
1363
+
1364
+ uint32_t result{};
1365
+
1366
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1367
+ if (hresult == Core::ERROR_NONE) {
1368
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1369
+ result = reader.Number<uint32_t>();
1370
+ } else {
1371
+ ASSERT((hresult & COM_ERROR) != 0);
1372
+ }
1373
+
1374
+ return (result);
1375
+ }
1376
+
1377
+ uint32_t Current() const override
1378
+ {
1379
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
1380
+
1381
+ uint32_t result{};
1382
+
1383
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1384
+ if (hresult == Core::ERROR_NONE) {
1385
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1386
+ result = reader.Number<uint32_t>();
1387
+ } else {
1388
+ ASSERT((hresult & COM_ERROR) != 0);
1389
+ }
1390
+
1391
+ return (result);
1392
+ }
1393
+
1394
+ }; // class RPCIteratorTypeInstance_60eba5a793c685eaProxy
1395
+
1396
+ //
1397
+ // RPC::IIteratorTypeInstance_195e88cf7f955a2e interface proxy definitions
1398
+ //
1399
+ // Methods:
1400
+ // (0) virtual bool Next(RPC::Environment&) = 0
1401
+ // (1) virtual bool Previous(RPC::Environment&) = 0
1402
+ // (2) virtual void Reset(const uint32_t) = 0
1403
+ // (3) virtual bool IsValid() const = 0
1404
+ // (4) virtual uint32_t Count() const = 0
1405
+ // (5) virtual RPC::Environment Current() const = 0
1406
+ //
1407
+
1408
+ class RPCIteratorTypeInstance_195e88cf7f955a2eProxy final : public ProxyStub::UnknownProxyType<RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>> {
1409
+ public:
1410
+ RPCIteratorTypeInstance_195e88cf7f955a2eProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1411
+ : BaseClass(channel, implementation, otherSideInformed)
1412
+ {
1413
+ }
1414
+
1415
+ bool Next(RPC::Environment& _info) override
1416
+ {
1417
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1418
+
1419
+ bool result{};
1420
+
1421
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1422
+ if (hresult == Core::ERROR_NONE) {
1423
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1424
+ result = reader.Boolean();
1425
+ _info.Key = reader.Text();
1426
+ _info.Value = reader.Text();
1427
+ _info.Scope = reader.Number<RPC::Environment::scope>();
1428
+ } else {
1429
+ ASSERT((hresult & COM_ERROR) != 0);
1430
+ }
1431
+
1432
+ return (result);
1433
+ }
1434
+
1435
+ bool Previous(RPC::Environment& _info) override
1436
+ {
1437
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
1438
+
1439
+ bool result{};
1440
+
1441
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1442
+ if (hresult == Core::ERROR_NONE) {
1443
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1444
+ result = reader.Boolean();
1445
+ _info.Key = reader.Text();
1446
+ _info.Value = reader.Text();
1447
+ _info.Scope = reader.Number<RPC::Environment::scope>();
1448
+ } else {
1449
+ ASSERT((hresult & COM_ERROR) != 0);
1450
+ }
1451
+
1452
+ return (result);
1453
+ }
1454
+
1455
+ void Reset(const uint32_t _position) override
1456
+ {
1457
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
1458
+
1459
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1460
+ writer.Number<uint32_t>(_position);
1461
+
1462
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1463
+ }
1464
+
1465
+ bool IsValid() const override
1466
+ {
1467
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
1468
+
1469
+ bool result{};
1470
+
1471
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1472
+ if (hresult == Core::ERROR_NONE) {
1473
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1474
+ result = reader.Boolean();
1475
+ } else {
1476
+ ASSERT((hresult & COM_ERROR) != 0);
1477
+ }
1478
+
1479
+ return (result);
1480
+ }
1481
+
1482
+ uint32_t Count() const override
1483
+ {
1484
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
1485
+
1486
+ uint32_t result{};
1487
+
1488
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1489
+ if (hresult == Core::ERROR_NONE) {
1490
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1491
+ result = reader.Number<uint32_t>();
1492
+ } else {
1493
+ ASSERT((hresult & COM_ERROR) != 0);
1494
+ }
1495
+
1496
+ return (result);
1497
+ }
1498
+
1499
+ RPC::Environment Current() const override
1500
+ {
1501
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
1502
+
1503
+ RPC::Environment result{};
1504
+
1505
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1506
+ if (hresult == Core::ERROR_NONE) {
1507
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1508
+ result.Key = reader.Text();
1509
+ result.Value = reader.Text();
1510
+ result.Scope = reader.Number<RPC::Environment::scope>();
1511
+ } else {
1512
+ ASSERT((hresult & COM_ERROR) != 0);
1513
+ }
1514
+
1515
+ return (result);
1516
+ }
1517
+
1518
+ }; // class RPCIteratorTypeInstance_195e88cf7f955a2eProxy
1519
+
1520
+ //
1521
+ // Example::ISimpleAsync interface proxy definitions
1522
+ //
1523
+ // Methods:
1524
+ // (0) virtual Core::hresult Connect(const Core::OptionalType<std::vector<uint8_t>>&, const Core::OptionalType<uint16_t>&, Example::ISimpleAsync::ICallback* const) = 0
1525
+ // (1) virtual Core::hresult Abort() = 0
1526
+ // (2) virtual Core::hresult Disconnect() = 0
1527
+ // (3) virtual Core::hresult Connected(const std::vector<uint8_t>&, bool&) const = 0
1528
+ // (4) virtual Core::hresult Link(const uint8_t[6]) = 0
1529
+ // (5) virtual Core::hresult Unlink(const uint8_t[6]) = 0
1530
+ // (6) virtual Core::hresult LinkedDevice(uint8_t[6]) const = 0
1531
+ // (7) virtual Core::hresult Register(Example::ISimpleAsync::INotification* const) = 0
1532
+ // (8) virtual Core::hresult Unregister(const Example::ISimpleAsync::INotification* const) = 0
1533
+ // (9) virtual Core::hresult Metadata(const uint8_t[6], const string&) = 0
1534
+ // (10) virtual Core::hresult Metadata(const uint8_t[6], string&) const = 0
1535
+ // (11) virtual Core::hresult Bind(const Core::MACAddress&) = 0
1536
+ // (12) virtual Core::hresult Unbind(const Core::MACAddress&) = 0
1537
+ // (13) virtual Core::hresult BoundDevice(Core::MACAddress&) const = 0
1538
+ // (14) virtual Core::hresult Type(const Core::MACAddress&, const string&) = 0
1539
+ // (15) virtual Core::hresult Type(const Core::MACAddress&, string&) const = 0
1540
+ // (16) virtual Core::hresult Register(Example::ISimpleAsync::IBindNotification* const) = 0
1541
+ // (17) virtual Core::hresult Unregister(const Example::ISimpleAsync::IBindNotification* const) = 0
1542
+ // (18) virtual Core::hresult Tables(const bool, std::vector<string>&) = 0
1543
+ // (19) virtual Core::hresult Tables2(const bool, std::vector<string>&, std::vector<uint8_t>&) = 0
1544
+ // (20) virtual Core::hresult Tables3(const bool, Core::OptionalType<std::vector<string>>&) = 0
1545
+ // (21) virtual Core::hresult Tables4(const bool, RPC::IStringIterator*&) = 0
1546
+ // (22) virtual Core::hresult Tables5(const bool, RPC::IStringIterator*&, RPC::IValueIterator*&) = 0
1547
+ // (23) virtual Core::hresult Tables6(const bool, Example::ISimpleAsync::Record&) = 0
1548
+ // (24) virtual Core::hresult Tables7(const bool, Core::OptionalType<Example::ISimpleAsync::Record>&) = 0
1549
+ // (25) virtual Core::hresult Tables8(const bool, Core::OptionalType<Example::ISimpleAsync::Record2>&) = 0
1550
+ // (26) virtual Core::hresult Tables9(const bool, Example::ISimpleAsync::Record2&) = 0
1551
+ // (27) virtual Core::hresult OptionalResult(const bool, Core::OptionalType<string>&) = 0
1552
+ //
1553
+
1554
+ class ExampleSimpleAsyncProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleAsync> {
1555
+ public:
1556
+ ExampleSimpleAsyncProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1557
+ : BaseClass(channel, implementation, otherSideInformed)
1558
+ {
1559
+ }
1560
+
1561
+ Core::hresult Connect(const Core::OptionalType<std::vector<uint8_t>>& _address, const Core::OptionalType<uint16_t>& _timeout, Example::ISimpleAsync::ICallback* const _cb) override
1562
+ {
1563
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1564
+
1565
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1566
+ writer.Boolean(_address.IsSet());
1567
+ if (_address.IsSet() == true) {
1568
+ writer.Number<uint8_t>(_address.Value().size());
1569
+ for (uint8_t i = 0; i < _address.Value().size(); i++) {
1570
+ writer.Number<uint8_t>(_address.Value()[i]);
1571
+ }
1572
+ }
1573
+ writer.Boolean(_timeout.IsSet());
1574
+ if (_timeout.IsSet() == true) {
1575
+ writer.Number<uint16_t>(_timeout.Value());
1576
+ }
1577
+ writer.Number<Core::instance_id>(RPC::instance_cast(_cb));
1578
+
1579
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1580
+ if (hresult == Core::ERROR_NONE) {
1581
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1582
+ hresult = reader.Number<Core::hresult>();
1583
+
1584
+ _Complete(reader);
1585
+ } else {
1586
+ ASSERT((hresult & COM_ERROR) != 0);
1587
+ }
1588
+
1589
+ return (hresult);
1590
+ }
1591
+
1592
+ Core::hresult Abort() override
1593
+ {
1594
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
1595
+
1596
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1597
+ if (hresult == Core::ERROR_NONE) {
1598
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1599
+ hresult = reader.Number<Core::hresult>();
1600
+ } else {
1601
+ ASSERT((hresult & COM_ERROR) != 0);
1602
+ }
1603
+
1604
+ return (hresult);
1605
+ }
1606
+
1607
+ Core::hresult Disconnect() override
1608
+ {
1609
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
1610
+
1611
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1612
+ if (hresult == Core::ERROR_NONE) {
1613
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1614
+ hresult = reader.Number<Core::hresult>();
1615
+ } else {
1616
+ ASSERT((hresult & COM_ERROR) != 0);
1617
+ }
1618
+
1619
+ return (hresult);
1620
+ }
1621
+
1622
+ Core::hresult Connected(const std::vector<uint8_t>& _address, bool& _result) const override
1623
+ {
1624
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
1625
+
1626
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1627
+ writer.Number<uint8_t>(_address.size());
1628
+ for (uint8_t i = 0; i < _address.size(); i++) {
1629
+ writer.Number<uint8_t>(_address[i]);
1630
+ }
1631
+
1632
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1633
+ if (hresult == Core::ERROR_NONE) {
1634
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1635
+ hresult = reader.Number<Core::hresult>();
1636
+ _result = reader.Boolean();
1637
+ } else {
1638
+ ASSERT((hresult & COM_ERROR) != 0);
1639
+ }
1640
+
1641
+ return (hresult);
1642
+ }
1643
+
1644
+ Core::hresult Link(const uint8_t _address[6]) override
1645
+ {
1646
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
1647
+
1648
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1649
+ writer.Copy(6, _address);
1650
+
1651
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1652
+ if (hresult == Core::ERROR_NONE) {
1653
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1654
+ hresult = reader.Number<Core::hresult>();
1655
+ } else {
1656
+ ASSERT((hresult & COM_ERROR) != 0);
1657
+ }
1658
+
1659
+ return (hresult);
1660
+ }
1661
+
1662
+ Core::hresult Unlink(const uint8_t _address[6]) override
1663
+ {
1664
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
1665
+
1666
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1667
+ writer.Copy(6, _address);
1668
+
1669
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1670
+ if (hresult == Core::ERROR_NONE) {
1671
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1672
+ hresult = reader.Number<Core::hresult>();
1673
+ } else {
1674
+ ASSERT((hresult & COM_ERROR) != 0);
1675
+ }
1676
+
1677
+ return (hresult);
1678
+ }
1679
+
1680
+ Core::hresult LinkedDevice(uint8_t _address[6]) const override
1681
+ {
1682
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(6));
1683
+
1684
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1685
+ if (hresult == Core::ERROR_NONE) {
1686
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1687
+ hresult = reader.Number<Core::hresult>();
1688
+ reader.Copy(6, _address);
1689
+ } else {
1690
+ ASSERT((hresult & COM_ERROR) != 0);
1691
+ }
1692
+
1693
+ return (hresult);
1694
+ }
1695
+
1696
+ Core::hresult Register(Example::ISimpleAsync::INotification* const _notification) override
1697
+ {
1698
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(7));
1699
+
1700
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1701
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
1702
+
1703
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1704
+ if (hresult == Core::ERROR_NONE) {
1705
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1706
+ hresult = reader.Number<Core::hresult>();
1707
+
1708
+ _Complete(reader);
1709
+ } else {
1710
+ ASSERT((hresult & COM_ERROR) != 0);
1711
+ }
1712
+
1713
+ return (hresult);
1714
+ }
1715
+
1716
+ Core::hresult Unregister(const Example::ISimpleAsync::INotification* const _notification) override
1717
+ {
1718
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(8));
1719
+
1720
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1721
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
1722
+
1723
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1724
+ if (hresult == Core::ERROR_NONE) {
1725
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1726
+ hresult = reader.Number<Core::hresult>();
1727
+
1728
+ _Complete(reader);
1729
+ } else {
1730
+ ASSERT((hresult & COM_ERROR) != 0);
1731
+ }
1732
+
1733
+ return (hresult);
1734
+ }
1735
+
1736
+ Core::hresult Metadata(const uint8_t _address[6], const string& _metadata) override
1737
+ {
1738
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(9));
1739
+
1740
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1741
+ writer.Copy(6, _address);
1742
+ writer.Text(_metadata);
1743
+
1744
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1745
+ if (hresult == Core::ERROR_NONE) {
1746
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1747
+ hresult = reader.Number<Core::hresult>();
1748
+ } else {
1749
+ ASSERT((hresult & COM_ERROR) != 0);
1750
+ }
1751
+
1752
+ return (hresult);
1753
+ }
1754
+
1755
+ Core::hresult Metadata(const uint8_t _address[6], string& _metadata) const override
1756
+ {
1757
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(10));
1758
+
1759
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1760
+ writer.Copy(6, _address);
1761
+
1762
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1763
+ if (hresult == Core::ERROR_NONE) {
1764
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1765
+ hresult = reader.Number<Core::hresult>();
1766
+ _metadata = reader.Text();
1767
+ } else {
1768
+ ASSERT((hresult & COM_ERROR) != 0);
1769
+ }
1770
+
1771
+ return (hresult);
1772
+ }
1773
+
1774
+ Core::hresult Bind(const Core::MACAddress& _address) override
1775
+ {
1776
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(11));
1777
+
1778
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1779
+ writer.Copy(6, _address);
1780
+
1781
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1782
+ if (hresult == Core::ERROR_NONE) {
1783
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1784
+ hresult = reader.Number<Core::hresult>();
1785
+ } else {
1786
+ ASSERT((hresult & COM_ERROR) != 0);
1787
+ }
1788
+
1789
+ return (hresult);
1790
+ }
1791
+
1792
+ Core::hresult Unbind(const Core::MACAddress& _address) override
1793
+ {
1794
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(12));
1795
+
1796
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1797
+ writer.Copy(6, _address);
1798
+
1799
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1800
+ if (hresult == Core::ERROR_NONE) {
1801
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1802
+ hresult = reader.Number<Core::hresult>();
1803
+ } else {
1804
+ ASSERT((hresult & COM_ERROR) != 0);
1805
+ }
1806
+
1807
+ return (hresult);
1808
+ }
1809
+
1810
+ Core::hresult BoundDevice(Core::MACAddress& _address) const override
1811
+ {
1812
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(13));
1813
+
1814
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1815
+ if (hresult == Core::ERROR_NONE) {
1816
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1817
+ hresult = reader.Number<Core::hresult>();
1818
+ reader.Copy(6, _address);
1819
+ } else {
1820
+ ASSERT((hresult & COM_ERROR) != 0);
1821
+ }
1822
+
1823
+ return (hresult);
1824
+ }
1825
+
1826
+ Core::hresult Type(const Core::MACAddress& _address, const string& _value) override
1827
+ {
1828
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(14));
1829
+
1830
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1831
+ writer.Copy(6, _address);
1832
+ writer.Text(_value);
1833
+
1834
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1835
+ if (hresult == Core::ERROR_NONE) {
1836
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1837
+ hresult = reader.Number<Core::hresult>();
1838
+ } else {
1839
+ ASSERT((hresult & COM_ERROR) != 0);
1840
+ }
1841
+
1842
+ return (hresult);
1843
+ }
1844
+
1845
+ Core::hresult Type(const Core::MACAddress& _address, string& _value) const override
1846
+ {
1847
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(15));
1848
+
1849
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1850
+ writer.Copy(6, _address);
1851
+
1852
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1853
+ if (hresult == Core::ERROR_NONE) {
1854
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1855
+ hresult = reader.Number<Core::hresult>();
1856
+ _value = reader.Text();
1857
+ } else {
1858
+ ASSERT((hresult & COM_ERROR) != 0);
1859
+ }
1860
+
1861
+ return (hresult);
1862
+ }
1863
+
1864
+ Core::hresult Register(Example::ISimpleAsync::IBindNotification* const _notification) override
1865
+ {
1866
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(16));
1867
+
1868
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1869
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
1870
+
1871
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1872
+ if (hresult == Core::ERROR_NONE) {
1873
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1874
+ hresult = reader.Number<Core::hresult>();
1875
+
1876
+ _Complete(reader);
1877
+ } else {
1878
+ ASSERT((hresult & COM_ERROR) != 0);
1879
+ }
1880
+
1881
+ return (hresult);
1882
+ }
1883
+
1884
+ Core::hresult Unregister(const Example::ISimpleAsync::IBindNotification* const _notification) override
1885
+ {
1886
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(17));
1887
+
1888
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1889
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
1890
+
1891
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1892
+ if (hresult == Core::ERROR_NONE) {
1893
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1894
+ hresult = reader.Number<Core::hresult>();
1895
+
1896
+ _Complete(reader);
1897
+ } else {
1898
+ ASSERT((hresult & COM_ERROR) != 0);
1899
+ }
1900
+
1901
+ return (hresult);
1902
+ }
1903
+
1904
+ Core::hresult Tables(const bool _fill, std::vector<string>& _stringTables) override
1905
+ {
1906
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(18));
1907
+
1908
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1909
+ writer.Boolean(_fill);
1910
+
1911
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1912
+ if (hresult == Core::ERROR_NONE) {
1913
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1914
+ hresult = reader.Number<Core::hresult>();
1915
+ uint8_t _stringTablesSize{};
1916
+ _stringTablesSize = reader.Number<uint8_t>();
1917
+ _stringTables.reserve(_stringTablesSize);
1918
+ for (uint8_t i = 0; i < _stringTablesSize; i++) {
1919
+ string _stringTablesItem{};
1920
+ _stringTablesItem = reader.Text();
1921
+ _stringTables.push_back(std::move(_stringTablesItem));
1922
+ }
1923
+ } else {
1924
+ ASSERT((hresult & COM_ERROR) != 0);
1925
+ }
1926
+
1927
+ return (hresult);
1928
+ }
1929
+
1930
+ Core::hresult Tables2(const bool _fill, std::vector<string>& _stringTables, std::vector<uint8_t>& _intTables) override
1931
+ {
1932
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(19));
1933
+
1934
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1935
+ writer.Boolean(_fill);
1936
+
1937
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1938
+ if (hresult == Core::ERROR_NONE) {
1939
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1940
+ hresult = reader.Number<Core::hresult>();
1941
+ uint8_t _stringTablesSize{};
1942
+ _stringTablesSize = reader.Number<uint8_t>();
1943
+ _stringTables.reserve(_stringTablesSize);
1944
+ for (uint8_t i = 0; i < _stringTablesSize; i++) {
1945
+ string _stringTablesItem{};
1946
+ _stringTablesItem = reader.Text();
1947
+ _stringTables.push_back(std::move(_stringTablesItem));
1948
+ }
1949
+ uint8_t _intTablesSize{};
1950
+ _intTablesSize = reader.Number<uint8_t>();
1951
+ _intTables.reserve(_intTablesSize);
1952
+ for (uint8_t i = 0; i < _intTablesSize; i++) {
1953
+ uint8_t _intTablesItem{};
1954
+ _intTablesItem = reader.Number<uint8_t>();
1955
+ _intTables.push_back(std::move(_intTablesItem));
1956
+ }
1957
+ } else {
1958
+ ASSERT((hresult & COM_ERROR) != 0);
1959
+ }
1960
+
1961
+ return (hresult);
1962
+ }
1963
+
1964
+ Core::hresult Tables3(const bool _fill, Core::OptionalType<std::vector<string>>& _stringTables) override
1965
+ {
1966
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(20));
1967
+
1968
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1969
+ writer.Boolean(_fill);
1970
+
1971
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1972
+ if (hresult == Core::ERROR_NONE) {
1973
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1974
+ hresult = reader.Number<Core::hresult>();
1975
+ if (reader.Boolean() == true) {
1976
+ uint8_t _stringTablesSize{};
1977
+ _stringTablesSize = reader.Number<uint8_t>();
1978
+ _stringTables.Value().reserve(_stringTablesSize);
1979
+ for (uint8_t i = 0; i < _stringTablesSize; i++) {
1980
+ string _stringTablesItem{};
1981
+ _stringTablesItem = reader.Text();
1982
+ _stringTables.Value().push_back(std::move(_stringTablesItem));
1983
+ }
1984
+ }
1985
+ } else {
1986
+ ASSERT((hresult & COM_ERROR) != 0);
1987
+ }
1988
+
1989
+ return (hresult);
1990
+ }
1991
+
1992
+ Core::hresult Tables4(const bool _fill, RPC::IStringIterator*& _stringTables) override
1993
+ {
1994
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(21));
1995
+
1996
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1997
+ writer.Boolean(_fill);
1998
+
1999
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2000
+ if (hresult == Core::ERROR_NONE) {
2001
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2002
+ hresult = reader.Number<Core::hresult>();
2003
+ _stringTables = reinterpret_cast<RPC::IStringIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), RPC::IStringIterator::ID));
2004
+ } else {
2005
+ ASSERT((hresult & COM_ERROR) != 0);
2006
+ }
2007
+
2008
+ return (hresult);
2009
+ }
2010
+
2011
+ Core::hresult Tables5(const bool _fill, RPC::IStringIterator*& _stringTables, RPC::IValueIterator*& _intTables) override
2012
+ {
2013
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(22));
2014
+
2015
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2016
+ writer.Boolean(_fill);
2017
+
2018
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2019
+ if (hresult == Core::ERROR_NONE) {
2020
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2021
+ hresult = reader.Number<Core::hresult>();
2022
+ _stringTables = reinterpret_cast<RPC::IStringIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), RPC::IStringIterator::ID));
2023
+ _intTables = reinterpret_cast<RPC::IValueIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), RPC::IValueIterator::ID));
2024
+ } else {
2025
+ ASSERT((hresult & COM_ERROR) != 0);
2026
+ }
2027
+
2028
+ return (hresult);
2029
+ }
2030
+
2031
+ Core::hresult Tables6(const bool _fill, Example::ISimpleAsync::Record& _pod) override
2032
+ {
2033
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(23));
2034
+
2035
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2036
+ writer.Boolean(_fill);
2037
+
2038
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2039
+ if (hresult == Core::ERROR_NONE) {
2040
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2041
+ hresult = reader.Number<Core::hresult>();
2042
+ _pod.param0 = reader.Text();
2043
+ uint8_t _pod_param1Size{};
2044
+ _pod_param1Size = reader.Number<uint8_t>();
2045
+ _pod.param1.reserve(_pod_param1Size);
2046
+ for (uint8_t i = 0; i < _pod_param1Size; i++) {
2047
+ string _pod_param1Item{};
2048
+ _pod_param1Item = reader.Text();
2049
+ _pod.param1.push_back(std::move(_pod_param1Item));
2050
+ }
2051
+ uint8_t _pod_param2Size{};
2052
+ _pod_param2Size = reader.Number<uint8_t>();
2053
+ _pod.param2.reserve(_pod_param2Size);
2054
+ for (uint8_t i = 0; i < _pod_param2Size; i++) {
2055
+ string _pod_param2Item{};
2056
+ _pod_param2Item = reader.Text();
2057
+ _pod.param2.push_back(std::move(_pod_param2Item));
2058
+ }
2059
+ if (reader.Boolean() == true) {
2060
+ uint8_t _pod_param3Size{};
2061
+ _pod_param3Size = reader.Number<uint8_t>();
2062
+ _pod.param3.Value().reserve(_pod_param3Size);
2063
+ for (uint8_t i = 0; i < _pod_param3Size; i++) {
2064
+ string _pod_param3Item{};
2065
+ _pod_param3Item = reader.Text();
2066
+ _pod.param3.Value().push_back(std::move(_pod_param3Item));
2067
+ }
2068
+ }
2069
+ if (reader.Boolean() == true) {
2070
+ uint8_t _pod_param4Size{};
2071
+ _pod_param4Size = reader.Number<uint8_t>();
2072
+ _pod.param4.Value().reserve(_pod_param4Size);
2073
+ for (uint8_t i = 0; i < _pod_param4Size; i++) {
2074
+ string _pod_param4Item{};
2075
+ _pod_param4Item = reader.Text();
2076
+ _pod.param4.Value().push_back(std::move(_pod_param4Item));
2077
+ }
2078
+ }
2079
+ _pod.param5.param0 = reader.Text();
2080
+ _pod.param5.param1 = reader.Boolean();
2081
+ if (reader.Boolean() == true) {
2082
+ Example::ISimpleAsync::SmallRecord _pod_param6Object__{};
2083
+ _pod_param6Object__.param0 = reader.Text();
2084
+ _pod_param6Object__.param1 = reader.Boolean();
2085
+ _pod.param6 = std::move(_pod_param6Object__);
2086
+ }
2087
+ } else {
2088
+ ASSERT((hresult & COM_ERROR) != 0);
2089
+ }
2090
+
2091
+ return (hresult);
2092
+ }
2093
+
2094
+ Core::hresult Tables7(const bool _fill, Core::OptionalType<Example::ISimpleAsync::Record>& _pod) override
2095
+ {
2096
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(24));
2097
+
2098
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2099
+ writer.Boolean(_fill);
2100
+
2101
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2102
+ if (hresult == Core::ERROR_NONE) {
2103
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2104
+ hresult = reader.Number<Core::hresult>();
2105
+ if (reader.Boolean() == true) {
2106
+ Example::ISimpleAsync::Record _podObject__{};
2107
+ _podObject__.param0 = reader.Text();
2108
+ uint8_t _podObject___param1Size{};
2109
+ _podObject___param1Size = reader.Number<uint8_t>();
2110
+ _podObject__.param1.reserve(_podObject___param1Size);
2111
+ for (uint8_t i = 0; i < _podObject___param1Size; i++) {
2112
+ string _podObject___param1Item{};
2113
+ _podObject___param1Item = reader.Text();
2114
+ _podObject__.param1.push_back(std::move(_podObject___param1Item));
2115
+ }
2116
+ uint8_t _podObject___param2Size{};
2117
+ _podObject___param2Size = reader.Number<uint8_t>();
2118
+ _podObject__.param2.reserve(_podObject___param2Size);
2119
+ for (uint8_t i = 0; i < _podObject___param2Size; i++) {
2120
+ string _podObject___param2Item{};
2121
+ _podObject___param2Item = reader.Text();
2122
+ _podObject__.param2.push_back(std::move(_podObject___param2Item));
2123
+ }
2124
+ if (reader.Boolean() == true) {
2125
+ uint8_t _podObject___param3Size{};
2126
+ _podObject___param3Size = reader.Number<uint8_t>();
2127
+ _podObject__.param3.Value().reserve(_podObject___param3Size);
2128
+ for (uint8_t i = 0; i < _podObject___param3Size; i++) {
2129
+ string _podObject___param3Item{};
2130
+ _podObject___param3Item = reader.Text();
2131
+ _podObject__.param3.Value().push_back(std::move(_podObject___param3Item));
2132
+ }
2133
+ }
2134
+ if (reader.Boolean() == true) {
2135
+ uint8_t _podObject___param4Size{};
2136
+ _podObject___param4Size = reader.Number<uint8_t>();
2137
+ _podObject__.param4.Value().reserve(_podObject___param4Size);
2138
+ for (uint8_t i = 0; i < _podObject___param4Size; i++) {
2139
+ string _podObject___param4Item{};
2140
+ _podObject___param4Item = reader.Text();
2141
+ _podObject__.param4.Value().push_back(std::move(_podObject___param4Item));
2142
+ }
2143
+ }
2144
+ _podObject__.param5.param0 = reader.Text();
2145
+ _podObject__.param5.param1 = reader.Boolean();
2146
+ if (reader.Boolean() == true) {
2147
+ Example::ISimpleAsync::SmallRecord _podObject___param6Object__{};
2148
+ _podObject___param6Object__.param0 = reader.Text();
2149
+ _podObject___param6Object__.param1 = reader.Boolean();
2150
+ _podObject__.param6 = std::move(_podObject___param6Object__);
2151
+ }
2152
+ _pod = std::move(_podObject__);
2153
+ }
2154
+ } else {
2155
+ ASSERT((hresult & COM_ERROR) != 0);
2156
+ }
2157
+
2158
+ return (hresult);
2159
+ }
2160
+
2161
+ Core::hresult Tables8(const bool _fill, Core::OptionalType<Example::ISimpleAsync::Record2>& _pod) override
2162
+ {
2163
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(25));
2164
+
2165
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2166
+ writer.Boolean(_fill);
2167
+
2168
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2169
+ if (hresult == Core::ERROR_NONE) {
2170
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2171
+ hresult = reader.Number<Core::hresult>();
2172
+ if (reader.Boolean() == true) {
2173
+ Example::ISimpleAsync::Record2 _podObject__{};
2174
+ if (reader.Boolean() == true) {
2175
+ uint8_t _podObject___param3Size{};
2176
+ _podObject___param3Size = reader.Number<uint8_t>();
2177
+ _podObject__.param3.Value().reserve(_podObject___param3Size);
2178
+ for (uint8_t i = 0; i < _podObject___param3Size; i++) {
2179
+ string _podObject___param3Item{};
2180
+ _podObject___param3Item = reader.Text();
2181
+ _podObject__.param3.Value().push_back(std::move(_podObject___param3Item));
2182
+ }
2183
+ }
2184
+ if (reader.Boolean() == true) {
2185
+ uint8_t _podObject___param4Size{};
2186
+ _podObject___param4Size = reader.Number<uint8_t>();
2187
+ _podObject__.param4.Value().reserve(_podObject___param4Size);
2188
+ for (uint8_t i = 0; i < _podObject___param4Size; i++) {
2189
+ string _podObject___param4Item{};
2190
+ _podObject___param4Item = reader.Text();
2191
+ _podObject__.param4.Value().push_back(std::move(_podObject___param4Item));
2192
+ }
2193
+ }
2194
+ _pod = std::move(_podObject__);
2195
+ }
2196
+ } else {
2197
+ ASSERT((hresult & COM_ERROR) != 0);
2198
+ }
2199
+
2200
+ return (hresult);
2201
+ }
2202
+
2203
+ Core::hresult Tables9(const bool _fill, Example::ISimpleAsync::Record2& _pod) override
2204
+ {
2205
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(26));
2206
+
2207
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2208
+ writer.Boolean(_fill);
2209
+
2210
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2211
+ if (hresult == Core::ERROR_NONE) {
2212
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2213
+ hresult = reader.Number<Core::hresult>();
2214
+ if (reader.Boolean() == true) {
2215
+ uint8_t _pod_param3Size{};
2216
+ _pod_param3Size = reader.Number<uint8_t>();
2217
+ _pod.param3.Value().reserve(_pod_param3Size);
2218
+ for (uint8_t i = 0; i < _pod_param3Size; i++) {
2219
+ string _pod_param3Item{};
2220
+ _pod_param3Item = reader.Text();
2221
+ _pod.param3.Value().push_back(std::move(_pod_param3Item));
2222
+ }
2223
+ }
2224
+ if (reader.Boolean() == true) {
2225
+ uint8_t _pod_param4Size{};
2226
+ _pod_param4Size = reader.Number<uint8_t>();
2227
+ _pod.param4.Value().reserve(_pod_param4Size);
2228
+ for (uint8_t i = 0; i < _pod_param4Size; i++) {
2229
+ string _pod_param4Item{};
2230
+ _pod_param4Item = reader.Text();
2231
+ _pod.param4.Value().push_back(std::move(_pod_param4Item));
2232
+ }
2233
+ }
2234
+ } else {
2235
+ ASSERT((hresult & COM_ERROR) != 0);
2236
+ }
2237
+
2238
+ return (hresult);
2239
+ }
2240
+
2241
+ Core::hresult OptionalResult(const bool _fill, Core::OptionalType<string>& _result) override
2242
+ {
2243
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(27));
2244
+
2245
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2246
+ writer.Boolean(_fill);
2247
+
2248
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2249
+ if (hresult == Core::ERROR_NONE) {
2250
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2251
+ hresult = reader.Number<Core::hresult>();
2252
+ if (reader.Boolean() == true) {
2253
+ _result = reader.Text();
2254
+ }
2255
+ } else {
2256
+ ASSERT((hresult & COM_ERROR) != 0);
2257
+ }
2258
+
2259
+ return (hresult);
2260
+ }
2261
+
2262
+ private:
2263
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
2264
+ {
2265
+ uint32_t result = Core::ERROR_NONE;
2266
+
2267
+ while (reader.HasData() == true) {
2268
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
2269
+ ASSERT(implementation != 0);
2270
+
2271
+ const uint32_t id = reader.Number<uint32_t>();
2272
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
2273
+
2274
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
2275
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
2276
+ }
2277
+
2278
+ return (result);
2279
+ }
2280
+
2281
+ }; // class ExampleSimpleAsyncProxy
2282
+
2283
+ //
2284
+ // Example::ISimpleAsync::ICallback interface proxy definitions
2285
+ //
2286
+ // Methods:
2287
+ // (0) virtual void Complete(const Core::OptionalType<std::vector<uint8_t>>&, const Example::ISimpleAsync::state) = 0
2288
+ //
2289
+
2290
+ class ExampleSimpleAsyncCallbackProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleAsync::ICallback> {
2291
+ public:
2292
+ ExampleSimpleAsyncCallbackProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
2293
+ : BaseClass(channel, implementation, otherSideInformed)
2294
+ {
2295
+ }
2296
+
2297
+ void Complete(const Core::OptionalType<std::vector<uint8_t>>& _address, const Example::ISimpleAsync::state _state) override
2298
+ {
2299
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
2300
+
2301
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2302
+ writer.Boolean(_address.IsSet());
2303
+ if (_address.IsSet() == true) {
2304
+ writer.Number<uint8_t>(_address.Value().size());
2305
+ for (uint8_t i = 0; i < _address.Value().size(); i++) {
2306
+ writer.Number<uint8_t>(_address.Value()[i]);
2307
+ }
2308
+ }
2309
+ writer.Number<Example::ISimpleAsync::state>(_state);
2310
+
2311
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2312
+ }
2313
+
2314
+ }; // class ExampleSimpleAsyncCallbackProxy
2315
+
2316
+ //
2317
+ // Example::ISimpleAsync::INotification interface proxy definitions
2318
+ //
2319
+ // Methods:
2320
+ // (0) virtual void StatusChanged(const uint8_t[6], const bool) = 0
2321
+ //
2322
+
2323
+ class ExampleSimpleAsyncNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleAsync::INotification> {
2324
+ public:
2325
+ ExampleSimpleAsyncNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
2326
+ : BaseClass(channel, implementation, otherSideInformed)
2327
+ {
2328
+ }
2329
+
2330
+ void StatusChanged(const uint8_t _address[6], const bool _linked) override
2331
+ {
2332
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
2333
+
2334
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2335
+ writer.Copy(6, _address);
2336
+ writer.Boolean(_linked);
2337
+
2338
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2339
+ }
2340
+
2341
+ }; // class ExampleSimpleAsyncNotificationProxy
2342
+
2343
+ //
2344
+ // Example::ISimpleAsync::IBindNotification interface proxy definitions
2345
+ //
2346
+ // Methods:
2347
+ // (0) virtual void BindingChanged(const Core::MACAddress&, const bool) = 0
2348
+ //
2349
+
2350
+ class ExampleSimpleAsyncBindNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleAsync::IBindNotification> {
2351
+ public:
2352
+ ExampleSimpleAsyncBindNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
2353
+ : BaseClass(channel, implementation, otherSideInformed)
2354
+ {
2355
+ }
2356
+
2357
+ void BindingChanged(const Core::MACAddress& _address, const bool _bound) override
2358
+ {
2359
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
2360
+
2361
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2362
+ writer.Copy(6, _address);
2363
+ writer.Boolean(_bound);
2364
+
2365
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2366
+ }
2367
+
2368
+ }; // class ExampleSimpleAsyncBindNotificationProxy
2369
+
2370
+ POP_WARNING()
2371
+ POP_WARNING()
2372
+
2373
+ // -----------------------------------------------------------------
2374
+ // REGISTRATION
2375
+ // -----------------------------------------------------------------
2376
+ namespace {
2377
+
2378
+ typedef ProxyStub::UnknownStubType<RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>, RPCIteratorTypeInstance_bd6e04b8d151c1f7StubMethods> RPCIteratorTypeInstance_bd6e04b8d151c1f7Stub;
2379
+ typedef ProxyStub::UnknownStubType<RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>, RPCIteratorTypeInstance_60eba5a793c685eaStubMethods> RPCIteratorTypeInstance_60eba5a793c685eaStub;
2380
+ typedef ProxyStub::UnknownStubType<RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>, RPCIteratorTypeInstance_195e88cf7f955a2eStubMethods> RPCIteratorTypeInstance_195e88cf7f955a2eStub;
2381
+ typedef ProxyStub::UnknownStubType<Example::ISimpleAsync, ExampleSimpleAsyncStubMethods> ExampleSimpleAsyncStub;
2382
+ typedef ProxyStub::UnknownStubType<Example::ISimpleAsync::ICallback, ExampleSimpleAsyncCallbackStubMethods> ExampleSimpleAsyncCallbackStub;
2383
+ typedef ProxyStub::UnknownStubType<Example::ISimpleAsync::INotification, ExampleSimpleAsyncNotificationStubMethods> ExampleSimpleAsyncNotificationStub;
2384
+ typedef ProxyStub::UnknownStubType<Example::ISimpleAsync::IBindNotification, ExampleSimpleAsyncBindNotificationStubMethods> ExampleSimpleAsyncBindNotificationStub;
2385
+
2386
+ static class Instantiation {
2387
+ public:
2388
+ Instantiation()
2389
+ {
2390
+ RPC::Administrator::Instance().Announce<RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>, RPCIteratorTypeInstance_bd6e04b8d151c1f7Proxy, RPCIteratorTypeInstance_bd6e04b8d151c1f7Stub>();
2391
+ RPC::Administrator::Instance().Announce<RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>, RPCIteratorTypeInstance_60eba5a793c685eaProxy, RPCIteratorTypeInstance_60eba5a793c685eaStub>();
2392
+ RPC::Administrator::Instance().Announce<RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>, RPCIteratorTypeInstance_195e88cf7f955a2eProxy, RPCIteratorTypeInstance_195e88cf7f955a2eStub>();
2393
+ RPC::Administrator::Instance().Announce<Example::ISimpleAsync, ExampleSimpleAsyncProxy, ExampleSimpleAsyncStub>();
2394
+ RPC::Administrator::Instance().Announce<Example::ISimpleAsync::ICallback, ExampleSimpleAsyncCallbackProxy, ExampleSimpleAsyncCallbackStub>();
2395
+ RPC::Administrator::Instance().Announce<Example::ISimpleAsync::INotification, ExampleSimpleAsyncNotificationProxy, ExampleSimpleAsyncNotificationStub>();
2396
+ RPC::Administrator::Instance().Announce<Example::ISimpleAsync::IBindNotification, ExampleSimpleAsyncBindNotificationProxy, ExampleSimpleAsyncBindNotificationStub>();
2397
+ }
2398
+ ~Instantiation()
2399
+ {
2400
+ RPC::Administrator::Instance().Recall<RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>>();
2401
+ RPC::Administrator::Instance().Recall<RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>>();
2402
+ RPC::Administrator::Instance().Recall<RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>>();
2403
+ RPC::Administrator::Instance().Recall<Example::ISimpleAsync>();
2404
+ RPC::Administrator::Instance().Recall<Example::ISimpleAsync::ICallback>();
2405
+ RPC::Administrator::Instance().Recall<Example::ISimpleAsync::INotification>();
2406
+ RPC::Administrator::Instance().Recall<Example::ISimpleAsync::IBindNotification>();
2407
+ }
2408
+ } ProxyStubRegistration;
2409
+
2410
+ } // namespace
2411
+
2412
+ } // namespace ProxyStubs
2413
+
2414
+ }
generated/generated/Debug/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleCustomObjects.cpp ADDED
@@ -0,0 +1,704 @@
1
+ //
2
+ // generated automatically from "ISimpleCustomObjects.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class Example::ISimpleCustomObjects
6
+ // - class Example::ISimpleCustomObjects::IAccessory
7
+ // - class Example::ISimpleCustomObjects::IAccessory::INotification
8
+ // - class Example::ISimpleCustomObjects::INotification
9
+ //
10
+
11
+ #include "Module.h"
12
+ #include "ISimpleCustomObjects.h"
13
+
14
+ #include <com/com.h>
15
+
16
+ namespace Thunder {
17
+
18
+ namespace ProxyStubs {
19
+
20
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
21
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
22
+
23
+ // -----------------------------------------------------------------
24
+ // STUBS
25
+ // -----------------------------------------------------------------
26
+
27
+ //
28
+ // Example::ISimpleCustomObjects interface stub definitions
29
+ //
30
+ // Methods:
31
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::INotification* const) = 0
32
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::INotification* const) = 0
33
+ // (2) virtual Core::hresult Accessory(const string&, Example::ISimpleCustomObjects::IAccessory*&) const = 0
34
+ //
35
+
36
+ static ProxyStub::MethodHandler ExampleSimpleCustomObjectsStubMethods[] = {
37
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::INotification* const) = 0
38
+ //
39
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
40
+ Example::ISimpleCustomObjects* implementation = reinterpret_cast<Example::ISimpleCustomObjects*>(message->Parameters().Implementation());
41
+ ASSERT(implementation != nullptr);
42
+
43
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
44
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
45
+
46
+ Example::ISimpleCustomObjects::INotification* _notification{};
47
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
48
+ if (_notificationInstanceId__ != 0) {
49
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
50
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
51
+ }
52
+
53
+ Core::hresult result = implementation->Register(_notification);
54
+
55
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
56
+ writer.Number<Core::hresult>(result);
57
+
58
+ if (_notificationProxy__ != nullptr) {
59
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
60
+ }
61
+ },
62
+
63
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::INotification* const) = 0
64
+ //
65
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
66
+ Example::ISimpleCustomObjects* implementation = reinterpret_cast<Example::ISimpleCustomObjects*>(message->Parameters().Implementation());
67
+ ASSERT(implementation != nullptr);
68
+
69
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
70
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
71
+
72
+ const Example::ISimpleCustomObjects::INotification* _notification{};
73
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
74
+ if (_notificationInstanceId__ != 0) {
75
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
76
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
77
+ }
78
+
79
+ Core::hresult result = implementation->Unregister(_notification);
80
+
81
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
82
+ writer.Number<Core::hresult>(result);
83
+
84
+ if (_notificationProxy__ != nullptr) {
85
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
86
+ }
87
+ },
88
+
89
+ // (2) virtual Core::hresult Accessory(const string&, Example::ISimpleCustomObjects::IAccessory*&) const = 0
90
+ //
91
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
92
+ const Example::ISimpleCustomObjects* implementation = reinterpret_cast<const Example::ISimpleCustomObjects*>(message->Parameters().Implementation());
93
+ ASSERT(implementation != nullptr);
94
+
95
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
96
+ const string _name = reader.Text();
97
+
98
+ Example::ISimpleCustomObjects::IAccessory* _accessory{};
99
+
100
+ Core::hresult result = implementation->Accessory(static_cast<const string&>(_name), _accessory);
101
+
102
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
103
+ writer.Number<Core::hresult>(result);
104
+ writer.Number<Core::instance_id>(RPC::instance_cast(_accessory));
105
+
106
+ RPC::Administrator::Instance().RegisterInterface(channel, _accessory);
107
+ }
108
+ , nullptr
109
+ }; // ExampleSimpleCustomObjectsStubMethods
110
+
111
+ //
112
+ // Example::ISimpleCustomObjects::IAccessory interface stub definitions
113
+ //
114
+ // Methods:
115
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
116
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
117
+ // (2) virtual Core::hresult Name(string&) const = 0
118
+ // (3) virtual Core::hresult Name(const string&) = 0
119
+ // (4) virtual Core::hresult Pin(const uint8_t, const bool) = 0
120
+ // (5) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
121
+ //
122
+
123
+ static ProxyStub::MethodHandler ExampleSimpleCustomObjectsAccessoryStubMethods[] = {
124
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
125
+ //
126
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
127
+ Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
128
+ ASSERT(implementation != nullptr);
129
+
130
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
131
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
132
+
133
+ Example::ISimpleCustomObjects::IAccessory::INotification* _notification{};
134
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
135
+ if (_notificationInstanceId__ != 0) {
136
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
137
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
138
+ }
139
+
140
+ Core::hresult result = implementation->Register(_notification);
141
+
142
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
143
+ writer.Number<Core::hresult>(result);
144
+
145
+ if (_notificationProxy__ != nullptr) {
146
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
147
+ }
148
+ },
149
+
150
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
151
+ //
152
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
153
+ Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
154
+ ASSERT(implementation != nullptr);
155
+
156
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
157
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
158
+
159
+ const Example::ISimpleCustomObjects::IAccessory::INotification* _notification{};
160
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
161
+ if (_notificationInstanceId__ != 0) {
162
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
163
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
164
+ }
165
+
166
+ Core::hresult result = implementation->Unregister(_notification);
167
+
168
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
169
+ writer.Number<Core::hresult>(result);
170
+
171
+ if (_notificationProxy__ != nullptr) {
172
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
173
+ }
174
+ },
175
+
176
+ // (2) virtual Core::hresult Name(string&) const = 0
177
+ //
178
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
179
+ const Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<const Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
180
+ ASSERT(implementation != nullptr);
181
+
182
+ string _name{};
183
+
184
+ Core::hresult result = implementation->Name(_name);
185
+
186
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
187
+ writer.Number<Core::hresult>(result);
188
+ writer.Text(_name);
189
+ },
190
+
191
+ // (3) virtual Core::hresult Name(const string&) = 0
192
+ //
193
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
194
+ Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
195
+ ASSERT(implementation != nullptr);
196
+
197
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
198
+ const string _name = reader.Text();
199
+
200
+ Core::hresult result = implementation->Name(static_cast<const string&>(_name));
201
+
202
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
203
+ writer.Number<Core::hresult>(result);
204
+ },
205
+
206
+ // (4) virtual Core::hresult Pin(const uint8_t, const bool) = 0
207
+ //
208
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
209
+ Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
210
+ ASSERT(implementation != nullptr);
211
+
212
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
213
+ const uint8_t _pin = reader.Number<uint8_t>();
214
+ const bool _value = reader.Boolean();
215
+
216
+ Core::hresult result = implementation->Pin(_pin, _value);
217
+
218
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
219
+ writer.Number<Core::hresult>(result);
220
+ },
221
+
222
+ // (5) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
223
+ //
224
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
225
+ const Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<const Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
226
+ ASSERT(implementation != nullptr);
227
+
228
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
229
+ const uint8_t _pin = reader.Number<uint8_t>();
230
+
231
+ bool _value{};
232
+
233
+ Core::hresult result = implementation->Pin(_pin, _value);
234
+
235
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
236
+ writer.Number<Core::hresult>(result);
237
+ writer.Boolean(_value);
238
+ }
239
+ , nullptr
240
+ }; // ExampleSimpleCustomObjectsAccessoryStubMethods
241
+
242
+ //
243
+ // Example::ISimpleCustomObjects::IAccessory::INotification interface stub definitions
244
+ //
245
+ // Methods:
246
+ // (0) virtual void NameChanged(const string&) = 0
247
+ //
248
+
249
+ static ProxyStub::MethodHandler ExampleSimpleCustomObjectsAccessoryNotificationStubMethods[] = {
250
+ // (0) virtual void NameChanged(const string&) = 0
251
+ //
252
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
253
+ Example::ISimpleCustomObjects::IAccessory::INotification* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory::INotification*>(message->Parameters().Implementation());
254
+ ASSERT(implementation != nullptr);
255
+
256
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
257
+ const string _name = reader.Text();
258
+
259
+ implementation->NameChanged(static_cast<const string&>(_name));
260
+ }
261
+ , nullptr
262
+ }; // ExampleSimpleCustomObjectsAccessoryNotificationStubMethods
263
+
264
+ //
265
+ // Example::ISimpleCustomObjects::INotification interface stub definitions
266
+ //
267
+ // Methods:
268
+ // (0) virtual void Added(Example::ISimpleCustomObjects::IAccessory* const) = 0
269
+ // (1) virtual void Removed(Example::ISimpleCustomObjects::IAccessory* const) = 0
270
+ //
271
+
272
+ static ProxyStub::MethodHandler ExampleSimpleCustomObjectsNotificationStubMethods[] = {
273
+ // (0) virtual void Added(Example::ISimpleCustomObjects::IAccessory* const) = 0
274
+ //
275
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
276
+ Example::ISimpleCustomObjects::INotification* implementation = reinterpret_cast<Example::ISimpleCustomObjects::INotification*>(message->Parameters().Implementation());
277
+ ASSERT(implementation != nullptr);
278
+
279
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
280
+ Core::instance_id _accessoryInstanceId__ = reader.Number<Core::instance_id>();
281
+
282
+ Example::ISimpleCustomObjects::IAccessory* _accessory{};
283
+ ProxyStub::UnknownProxy* _accessoryProxy__ = nullptr;
284
+ if (_accessoryInstanceId__ != 0) {
285
+ _accessoryProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _accessoryInstanceId__, false, _accessory);
286
+ ASSERT((_accessory != nullptr) && (_accessoryProxy__ != nullptr));
287
+ }
288
+
289
+ implementation->Added(_accessory);
290
+
291
+ if (_accessoryProxy__ != nullptr) {
292
+ RPC::Administrator::Instance().Release(_accessoryProxy__, message->Response());
293
+ }
294
+ },
295
+
296
+ // (1) virtual void Removed(Example::ISimpleCustomObjects::IAccessory* const) = 0
297
+ //
298
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
299
+ Example::ISimpleCustomObjects::INotification* implementation = reinterpret_cast<Example::ISimpleCustomObjects::INotification*>(message->Parameters().Implementation());
300
+ ASSERT(implementation != nullptr);
301
+
302
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
303
+ Core::instance_id _accessoryInstanceId__ = reader.Number<Core::instance_id>();
304
+
305
+ Example::ISimpleCustomObjects::IAccessory* _accessory{};
306
+ ProxyStub::UnknownProxy* _accessoryProxy__ = nullptr;
307
+ if (_accessoryInstanceId__ != 0) {
308
+ _accessoryProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _accessoryInstanceId__, false, _accessory);
309
+ ASSERT((_accessory != nullptr) && (_accessoryProxy__ != nullptr));
310
+ }
311
+
312
+ implementation->Removed(_accessory);
313
+
314
+ if (_accessoryProxy__ != nullptr) {
315
+ RPC::Administrator::Instance().Release(_accessoryProxy__, message->Response());
316
+ }
317
+ }
318
+ , nullptr
319
+ }; // ExampleSimpleCustomObjectsNotificationStubMethods
320
+
321
+ // -----------------------------------------------------------------
322
+ // PROXIES
323
+ // -----------------------------------------------------------------
324
+
325
+ //
326
+ // Example::ISimpleCustomObjects interface proxy definitions
327
+ //
328
+ // Methods:
329
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::INotification* const) = 0
330
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::INotification* const) = 0
331
+ // (2) virtual Core::hresult Accessory(const string&, Example::ISimpleCustomObjects::IAccessory*&) const = 0
332
+ //
333
+
334
+ class ExampleSimpleCustomObjectsProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleCustomObjects> {
335
+ public:
336
+ ExampleSimpleCustomObjectsProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
337
+ : BaseClass(channel, implementation, otherSideInformed)
338
+ {
339
+ }
340
+
341
+ Core::hresult Register(Example::ISimpleCustomObjects::INotification* const _notification) override
342
+ {
343
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
344
+
345
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
346
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
347
+
348
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
349
+ if (hresult == Core::ERROR_NONE) {
350
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
351
+ hresult = reader.Number<Core::hresult>();
352
+
353
+ _Complete(reader);
354
+ } else {
355
+ ASSERT((hresult & COM_ERROR) != 0);
356
+ }
357
+
358
+ return (hresult);
359
+ }
360
+
361
+ Core::hresult Unregister(const Example::ISimpleCustomObjects::INotification* const _notification) override
362
+ {
363
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
364
+
365
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
366
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
367
+
368
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
369
+ if (hresult == Core::ERROR_NONE) {
370
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
371
+ hresult = reader.Number<Core::hresult>();
372
+
373
+ _Complete(reader);
374
+ } else {
375
+ ASSERT((hresult & COM_ERROR) != 0);
376
+ }
377
+
378
+ return (hresult);
379
+ }
380
+
381
+ Core::hresult Accessory(const string& _name, Example::ISimpleCustomObjects::IAccessory*& _accessory) const override
382
+ {
383
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
384
+
385
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
386
+ writer.Text(_name);
387
+
388
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
389
+ if (hresult == Core::ERROR_NONE) {
390
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
391
+ hresult = reader.Number<Core::hresult>();
392
+ _accessory = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), Example::ISimpleCustomObjects::IAccessory::ID));
393
+ } else {
394
+ ASSERT((hresult & COM_ERROR) != 0);
395
+ }
396
+
397
+ return (hresult);
398
+ }
399
+
400
+ private:
401
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
402
+ {
403
+ uint32_t result = Core::ERROR_NONE;
404
+
405
+ while (reader.HasData() == true) {
406
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
407
+ ASSERT(implementation != 0);
408
+
409
+ const uint32_t id = reader.Number<uint32_t>();
410
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
411
+
412
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
413
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
414
+ }
415
+
416
+ return (result);
417
+ }
418
+
419
+ }; // class ExampleSimpleCustomObjectsProxy
420
+
421
+ //
422
+ // Example::ISimpleCustomObjects::IAccessory interface proxy definitions
423
+ //
424
+ // Methods:
425
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
426
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
427
+ // (2) virtual Core::hresult Name(string&) const = 0
428
+ // (3) virtual Core::hresult Name(const string&) = 0
429
+ // (4) virtual Core::hresult Pin(const uint8_t, const bool) = 0
430
+ // (5) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
431
+ //
432
+
433
+ class ExampleSimpleCustomObjectsAccessoryProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleCustomObjects::IAccessory> {
434
+ public:
435
+ ExampleSimpleCustomObjectsAccessoryProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
436
+ : BaseClass(channel, implementation, otherSideInformed)
437
+ {
438
+ }
439
+
440
+ Core::hresult Register(Example::ISimpleCustomObjects::IAccessory::INotification* const _notification) override
441
+ {
442
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
443
+
444
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
445
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
446
+
447
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
448
+ if (hresult == Core::ERROR_NONE) {
449
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
450
+ hresult = reader.Number<Core::hresult>();
451
+
452
+ _Complete(reader);
453
+ } else {
454
+ ASSERT((hresult & COM_ERROR) != 0);
455
+ }
456
+
457
+ return (hresult);
458
+ }
459
+
460
+ Core::hresult Unregister(const Example::ISimpleCustomObjects::IAccessory::INotification* const _notification) override
461
+ {
462
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
463
+
464
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
465
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
466
+
467
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
468
+ if (hresult == Core::ERROR_NONE) {
469
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
470
+ hresult = reader.Number<Core::hresult>();
471
+
472
+ _Complete(reader);
473
+ } else {
474
+ ASSERT((hresult & COM_ERROR) != 0);
475
+ }
476
+
477
+ return (hresult);
478
+ }
479
+
480
+ Core::hresult Name(string& _name) const override
481
+ {
482
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
483
+
484
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
485
+ if (hresult == Core::ERROR_NONE) {
486
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
487
+ hresult = reader.Number<Core::hresult>();
488
+ _name = reader.Text();
489
+ } else {
490
+ ASSERT((hresult & COM_ERROR) != 0);
491
+ }
492
+
493
+ return (hresult);
494
+ }
495
+
496
+ Core::hresult Name(const string& _name) override
497
+ {
498
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
499
+
500
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
501
+ writer.Text(_name);
502
+
503
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
504
+ if (hresult == Core::ERROR_NONE) {
505
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
506
+ hresult = reader.Number<Core::hresult>();
507
+ } else {
508
+ ASSERT((hresult & COM_ERROR) != 0);
509
+ }
510
+
511
+ return (hresult);
512
+ }
513
+
514
+ Core::hresult Pin(const uint8_t _pin, const bool _value) override
515
+ {
516
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
517
+
518
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
519
+ writer.Number<uint8_t>(_pin);
520
+ writer.Boolean(_value);
521
+
522
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
523
+ if (hresult == Core::ERROR_NONE) {
524
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
525
+ hresult = reader.Number<Core::hresult>();
526
+ } else {
527
+ ASSERT((hresult & COM_ERROR) != 0);
528
+ }
529
+
530
+ return (hresult);
531
+ }
532
+
533
+ Core::hresult Pin(const uint8_t _pin, bool& _value) const override
534
+ {
535
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
536
+
537
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
538
+ writer.Number<uint8_t>(_pin);
539
+
540
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
541
+ if (hresult == Core::ERROR_NONE) {
542
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
543
+ hresult = reader.Number<Core::hresult>();
544
+ _value = reader.Boolean();
545
+ } else {
546
+ ASSERT((hresult & COM_ERROR) != 0);
547
+ }
548
+
549
+ return (hresult);
550
+ }
551
+
552
+ private:
553
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
554
+ {
555
+ uint32_t result = Core::ERROR_NONE;
556
+
557
+ while (reader.HasData() == true) {
558
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
559
+ ASSERT(implementation != 0);
560
+
561
+ const uint32_t id = reader.Number<uint32_t>();
562
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
563
+
564
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
565
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
566
+ }
567
+
568
+ return (result);
569
+ }
570
+
571
+ }; // class ExampleSimpleCustomObjectsAccessoryProxy
572
+
573
+ //
574
+ // Example::ISimpleCustomObjects::IAccessory::INotification interface proxy definitions
575
+ //
576
+ // Methods:
577
+ // (0) virtual void NameChanged(const string&) = 0
578
+ //
579
+
580
+ class ExampleSimpleCustomObjectsAccessoryNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleCustomObjects::IAccessory::INotification> {
581
+ public:
582
+ ExampleSimpleCustomObjectsAccessoryNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
583
+ : BaseClass(channel, implementation, otherSideInformed)
584
+ {
585
+ }
586
+
587
+ void NameChanged(const string& _name) override
588
+ {
589
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
590
+
591
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
592
+ writer.Text(_name);
593
+
594
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
595
+ }
596
+
597
+ }; // class ExampleSimpleCustomObjectsAccessoryNotificationProxy
598
+
599
+ //
600
+ // Example::ISimpleCustomObjects::INotification interface proxy definitions
601
+ //
602
+ // Methods:
603
+ // (0) virtual void Added(Example::ISimpleCustomObjects::IAccessory* const) = 0
604
+ // (1) virtual void Removed(Example::ISimpleCustomObjects::IAccessory* const) = 0
605
+ //
606
+
607
+ class ExampleSimpleCustomObjectsNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleCustomObjects::INotification> {
608
+ public:
609
+ ExampleSimpleCustomObjectsNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
610
+ : BaseClass(channel, implementation, otherSideInformed)
611
+ {
612
+ }
613
+
614
+ void Added(Example::ISimpleCustomObjects::IAccessory* const _accessory) override
615
+ {
616
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
617
+
618
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
619
+ writer.Number<Core::instance_id>(RPC::instance_cast(_accessory));
620
+
621
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
622
+ if (hresult == Core::ERROR_NONE) {
623
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
624
+
625
+ _Complete(reader);
626
+ } else {
627
+ ASSERT((hresult & COM_ERROR) != 0);
628
+ }
629
+ }
630
+
631
+ void Removed(Example::ISimpleCustomObjects::IAccessory* const _accessory) override
632
+ {
633
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
634
+
635
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
636
+ writer.Number<Core::instance_id>(RPC::instance_cast(_accessory));
637
+
638
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
639
+ if (hresult == Core::ERROR_NONE) {
640
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
641
+
642
+ _Complete(reader);
643
+ } else {
644
+ ASSERT((hresult & COM_ERROR) != 0);
645
+ }
646
+ }
647
+
648
+ private:
649
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
650
+ {
651
+ uint32_t result = Core::ERROR_NONE;
652
+
653
+ while (reader.HasData() == true) {
654
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
655
+ ASSERT(implementation != 0);
656
+
657
+ const uint32_t id = reader.Number<uint32_t>();
658
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
659
+
660
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
661
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
662
+ }
663
+
664
+ return (result);
665
+ }
666
+
667
+ }; // class ExampleSimpleCustomObjectsNotificationProxy
668
+
669
+ POP_WARNING()
670
+ POP_WARNING()
671
+
672
+ // -----------------------------------------------------------------
673
+ // REGISTRATION
674
+ // -----------------------------------------------------------------
675
+ namespace {
676
+
677
+ typedef ProxyStub::UnknownStubType<Example::ISimpleCustomObjects, ExampleSimpleCustomObjectsStubMethods> ExampleSimpleCustomObjectsStub;
678
+ typedef ProxyStub::UnknownStubType<Example::ISimpleCustomObjects::IAccessory, ExampleSimpleCustomObjectsAccessoryStubMethods> ExampleSimpleCustomObjectsAccessoryStub;
679
+ typedef ProxyStub::UnknownStubType<Example::ISimpleCustomObjects::IAccessory::INotification, ExampleSimpleCustomObjectsAccessoryNotificationStubMethods> ExampleSimpleCustomObjectsAccessoryNotificationStub;
680
+ typedef ProxyStub::UnknownStubType<Example::ISimpleCustomObjects::INotification, ExampleSimpleCustomObjectsNotificationStubMethods> ExampleSimpleCustomObjectsNotificationStub;
681
+
682
+ static class Instantiation {
683
+ public:
684
+ Instantiation()
685
+ {
686
+ RPC::Administrator::Instance().Announce<Example::ISimpleCustomObjects, ExampleSimpleCustomObjectsProxy, ExampleSimpleCustomObjectsStub>();
687
+ RPC::Administrator::Instance().Announce<Example::ISimpleCustomObjects::IAccessory, ExampleSimpleCustomObjectsAccessoryProxy, ExampleSimpleCustomObjectsAccessoryStub>();
688
+ RPC::Administrator::Instance().Announce<Example::ISimpleCustomObjects::IAccessory::INotification, ExampleSimpleCustomObjectsAccessoryNotificationProxy, ExampleSimpleCustomObjectsAccessoryNotificationStub>();
689
+ RPC::Administrator::Instance().Announce<Example::ISimpleCustomObjects::INotification, ExampleSimpleCustomObjectsNotificationProxy, ExampleSimpleCustomObjectsNotificationStub>();
690
+ }
691
+ ~Instantiation()
692
+ {
693
+ RPC::Administrator::Instance().Recall<Example::ISimpleCustomObjects>();
694
+ RPC::Administrator::Instance().Recall<Example::ISimpleCustomObjects::IAccessory>();
695
+ RPC::Administrator::Instance().Recall<Example::ISimpleCustomObjects::IAccessory::INotification>();
696
+ RPC::Administrator::Instance().Recall<Example::ISimpleCustomObjects::INotification>();
697
+ }
698
+ } ProxyStubRegistration;
699
+
700
+ } // namespace
701
+
702
+ } // namespace ProxyStubs
703
+
704
+ }
generated/generated/Debug/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleInstanceObjects.cpp ADDED
@@ -0,0 +1,649 @@
1
+ //
2
+ // generated automatically from "ISimpleInstanceObjects.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class Example::ISimpleInstanceObjects
6
+ // - class Example::ISimpleInstanceObjects::IDevice
7
+ // - class Example::ISimpleInstanceObjects::IDevice::INotification
8
+ //
9
+
10
+ #include "Module.h"
11
+ #include "ISimpleInstanceObjects.h"
12
+
13
+ #include <com/com.h>
14
+
15
+ namespace Thunder {
16
+
17
+ namespace ProxyStubs {
18
+
19
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
20
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
21
+
22
+ // -----------------------------------------------------------------
23
+ // STUBS
24
+ // -----------------------------------------------------------------
25
+
26
+ //
27
+ // Example::ISimpleInstanceObjects interface stub definitions
28
+ //
29
+ // Methods:
30
+ // (0) virtual Core::hresult Acquire(const string&, Example::ISimpleInstanceObjects::IDevice*&) = 0
31
+ // (1) virtual Core::hresult Relinquish(Example::ISimpleInstanceObjects::IDevice* const) = 0
32
+ //
33
+
34
+ static ProxyStub::MethodHandler ExampleSimpleInstanceObjectsStubMethods[] = {
35
+ // (0) virtual Core::hresult Acquire(const string&, Example::ISimpleInstanceObjects::IDevice*&) = 0
36
+ //
37
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
38
+ Example::ISimpleInstanceObjects* implementation = reinterpret_cast<Example::ISimpleInstanceObjects*>(message->Parameters().Implementation());
39
+ ASSERT(implementation != nullptr);
40
+
41
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
42
+ const string _name = reader.Text();
43
+
44
+ Example::ISimpleInstanceObjects::IDevice* _device{};
45
+
46
+ Core::hresult result = implementation->Acquire(static_cast<const string&>(_name), _device);
47
+
48
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
49
+ writer.Number<Core::hresult>(result);
50
+ writer.Number<Core::instance_id>(RPC::instance_cast(_device));
51
+
52
+ RPC::Administrator::Instance().RegisterInterface(channel, _device);
53
+ },
54
+
55
+ // (1) virtual Core::hresult Relinquish(Example::ISimpleInstanceObjects::IDevice* const) = 0
56
+ //
57
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
58
+ Example::ISimpleInstanceObjects* implementation = reinterpret_cast<Example::ISimpleInstanceObjects*>(message->Parameters().Implementation());
59
+ ASSERT(implementation != nullptr);
60
+
61
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
62
+ Core::instance_id _deviceInstanceId__ = reader.Number<Core::instance_id>();
63
+
64
+ Example::ISimpleInstanceObjects::IDevice* _device{};
65
+ ProxyStub::UnknownProxy* _deviceProxy__ = nullptr;
66
+ if (_deviceInstanceId__ != 0) {
67
+ _deviceProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _deviceInstanceId__, false, _device);
68
+ ASSERT((_device != nullptr) && (_deviceProxy__ != nullptr));
69
+ }
70
+
71
+ Core::hresult result = implementation->Relinquish(_device);
72
+
73
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
74
+ writer.Number<Core::hresult>(result);
75
+
76
+ if (_deviceProxy__ != nullptr) {
77
+ RPC::Administrator::Instance().Release(_deviceProxy__, message->Response());
78
+ }
79
+ }
80
+ , nullptr
81
+ }; // ExampleSimpleInstanceObjectsStubMethods
82
+
83
+ //
84
+ // Example::ISimpleInstanceObjects::IDevice interface stub definitions
85
+ //
86
+ // Methods:
87
+ // (0) virtual Core::hresult Register(Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
88
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
89
+ // (2) virtual Core::hresult Name(string&) const = 0
90
+ // (3) virtual Core::hresult Name(const string&) = 0
91
+ // (4) virtual Core::hresult Enable() = 0
92
+ // (5) virtual Core::hresult Disable() = 0
93
+ // (6) virtual Core::hresult Pin(const uint8_t, const bool) = 0
94
+ // (7) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
95
+ //
96
+
97
+ static ProxyStub::MethodHandler ExampleSimpleInstanceObjectsDeviceStubMethods[] = {
98
+ // (0) virtual Core::hresult Register(Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
99
+ //
100
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
101
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
102
+ ASSERT(implementation != nullptr);
103
+
104
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
105
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
106
+ Core::OptionalType<uint8_t> _pin{};
107
+ if (reader.Boolean() == true) {
108
+ _pin = reader.Number<uint8_t>();
109
+ }
110
+
111
+ Example::ISimpleInstanceObjects::IDevice::INotification* _notification{};
112
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
113
+ if (_notificationInstanceId__ != 0) {
114
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
115
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
116
+ }
117
+
118
+ Core::hresult result = implementation->Register(_notification, static_cast<const Core::OptionalType<uint8_t>&>(_pin));
119
+
120
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
121
+ writer.Number<Core::hresult>(result);
122
+
123
+ if (_notificationProxy__ != nullptr) {
124
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
125
+ }
126
+ },
127
+
128
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
129
+ //
130
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
131
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
132
+ ASSERT(implementation != nullptr);
133
+
134
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
135
+ Core::instance_id _notificaitonInstanceId__ = reader.Number<Core::instance_id>();
136
+ Core::OptionalType<uint8_t> _pin{};
137
+ if (reader.Boolean() == true) {
138
+ _pin = reader.Number<uint8_t>();
139
+ }
140
+
141
+ const Example::ISimpleInstanceObjects::IDevice::INotification* _notificaiton{};
142
+ ProxyStub::UnknownProxy* _notificaitonProxy__ = nullptr;
143
+ if (_notificaitonInstanceId__ != 0) {
144
+ _notificaitonProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificaitonInstanceId__, false, _notificaiton);
145
+ ASSERT((_notificaiton != nullptr) && (_notificaitonProxy__ != nullptr));
146
+ }
147
+
148
+ Core::hresult result = implementation->Unregister(_notificaiton, static_cast<const Core::OptionalType<uint8_t>&>(_pin));
149
+
150
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
151
+ writer.Number<Core::hresult>(result);
152
+
153
+ if (_notificaitonProxy__ != nullptr) {
154
+ RPC::Administrator::Instance().Release(_notificaitonProxy__, message->Response());
155
+ }
156
+ },
157
+
158
+ // (2) virtual Core::hresult Name(string&) const = 0
159
+ //
160
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
161
+ const Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<const Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
162
+ ASSERT(implementation != nullptr);
163
+
164
+ string _name{};
165
+
166
+ Core::hresult result = implementation->Name(_name);
167
+
168
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
169
+ writer.Number<Core::hresult>(result);
170
+ writer.Text(_name);
171
+ },
172
+
173
+ // (3) virtual Core::hresult Name(const string&) = 0
174
+ //
175
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
176
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
177
+ ASSERT(implementation != nullptr);
178
+
179
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
180
+ const string _name = reader.Text();
181
+
182
+ Core::hresult result = implementation->Name(static_cast<const string&>(_name));
183
+
184
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
185
+ writer.Number<Core::hresult>(result);
186
+ },
187
+
188
+ // (4) virtual Core::hresult Enable() = 0
189
+ //
190
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
191
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
192
+ ASSERT(implementation != nullptr);
193
+
194
+ Core::hresult result = implementation->Enable();
195
+
196
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
197
+ writer.Number<Core::hresult>(result);
198
+ },
199
+
200
+ // (5) virtual Core::hresult Disable() = 0
201
+ //
202
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
203
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
204
+ ASSERT(implementation != nullptr);
205
+
206
+ Core::hresult result = implementation->Disable();
207
+
208
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
209
+ writer.Number<Core::hresult>(result);
210
+ },
211
+
212
+ // (6) virtual Core::hresult Pin(const uint8_t, const bool) = 0
213
+ //
214
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
215
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
216
+ ASSERT(implementation != nullptr);
217
+
218
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
219
+ const uint8_t _pin = reader.Number<uint8_t>();
220
+ const bool _high = reader.Boolean();
221
+
222
+ Core::hresult result = implementation->Pin(_pin, _high);
223
+
224
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
225
+ writer.Number<Core::hresult>(result);
226
+ },
227
+
228
+ // (7) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
229
+ //
230
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
231
+ const Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<const Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
232
+ ASSERT(implementation != nullptr);
233
+
234
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
235
+ const uint8_t _pin = reader.Number<uint8_t>();
236
+
237
+ bool _high{};
238
+
239
+ Core::hresult result = implementation->Pin(_pin, _high);
240
+
241
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
242
+ writer.Number<Core::hresult>(result);
243
+ writer.Boolean(_high);
244
+ }
245
+ , nullptr
246
+ }; // ExampleSimpleInstanceObjectsDeviceStubMethods
247
+
248
+ //
249
+ // Example::ISimpleInstanceObjects::IDevice::INotification interface stub definitions
250
+ //
251
+ // Methods:
252
+ // (0) virtual void NameChanged(const string&) = 0
253
+ // (1) virtual void StateChanged(const Example::ISimpleInstanceObjects::state) = 0
254
+ // (2) virtual void PinChanged(const uint8_t, const bool) = 0
255
+ //
256
+
257
+ static ProxyStub::MethodHandler ExampleSimpleInstanceObjectsDeviceNotificationStubMethods[] = {
258
+ // (0) virtual void NameChanged(const string&) = 0
259
+ //
260
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
261
+ Example::ISimpleInstanceObjects::IDevice::INotification* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice::INotification*>(message->Parameters().Implementation());
262
+ ASSERT(implementation != nullptr);
263
+
264
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
265
+ const string _state = reader.Text();
266
+
267
+ implementation->NameChanged(static_cast<const string&>(_state));
268
+ },
269
+
270
+ // (1) virtual void StateChanged(const Example::ISimpleInstanceObjects::state) = 0
271
+ //
272
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
273
+ Example::ISimpleInstanceObjects::IDevice::INotification* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice::INotification*>(message->Parameters().Implementation());
274
+ ASSERT(implementation != nullptr);
275
+
276
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
277
+ const Example::ISimpleInstanceObjects::state _state = reader.Number<Example::ISimpleInstanceObjects::state>();
278
+
279
+ implementation->StateChanged(_state);
280
+ },
281
+
282
+ // (2) virtual void PinChanged(const uint8_t, const bool) = 0
283
+ //
284
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
285
+ Example::ISimpleInstanceObjects::IDevice::INotification* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice::INotification*>(message->Parameters().Implementation());
286
+ ASSERT(implementation != nullptr);
287
+
288
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
289
+ const uint8_t _pin = reader.Number<uint8_t>();
290
+ const bool _high = reader.Boolean();
291
+
292
+ implementation->PinChanged(_pin, _high);
293
+ }
294
+ , nullptr
295
+ }; // ExampleSimpleInstanceObjectsDeviceNotificationStubMethods
296
+
297
+ // -----------------------------------------------------------------
298
+ // PROXIES
299
+ // -----------------------------------------------------------------
300
+
301
+ //
302
+ // Example::ISimpleInstanceObjects interface proxy definitions
303
+ //
304
+ // Methods:
305
+ // (0) virtual Core::hresult Acquire(const string&, Example::ISimpleInstanceObjects::IDevice*&) = 0
306
+ // (1) virtual Core::hresult Relinquish(Example::ISimpleInstanceObjects::IDevice* const) = 0
307
+ //
308
+
309
+ class ExampleSimpleInstanceObjectsProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleInstanceObjects> {
310
+ public:
311
+ ExampleSimpleInstanceObjectsProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
312
+ : BaseClass(channel, implementation, otherSideInformed)
313
+ {
314
+ }
315
+
316
+ Core::hresult Acquire(const string& _name, Example::ISimpleInstanceObjects::IDevice*& _device) override
317
+ {
318
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
319
+
320
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
321
+ writer.Text(_name);
322
+
323
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
324
+ if (hresult == Core::ERROR_NONE) {
325
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
326
+ hresult = reader.Number<Core::hresult>();
327
+ _device = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), Example::ISimpleInstanceObjects::IDevice::ID));
328
+ } else {
329
+ ASSERT((hresult & COM_ERROR) != 0);
330
+ }
331
+
332
+ return (hresult);
333
+ }
334
+
335
+ Core::hresult Relinquish(Example::ISimpleInstanceObjects::IDevice* const _device) override
336
+ {
337
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
338
+
339
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
340
+ writer.Number<Core::instance_id>(RPC::instance_cast(_device));
341
+
342
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
343
+ if (hresult == Core::ERROR_NONE) {
344
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
345
+ hresult = reader.Number<Core::hresult>();
346
+
347
+ _Complete(reader);
348
+ } else {
349
+ ASSERT((hresult & COM_ERROR) != 0);
350
+ }
351
+
352
+ return (hresult);
353
+ }
354
+
355
+ private:
356
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
357
+ {
358
+ uint32_t result = Core::ERROR_NONE;
359
+
360
+ while (reader.HasData() == true) {
361
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
362
+ ASSERT(implementation != 0);
363
+
364
+ const uint32_t id = reader.Number<uint32_t>();
365
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
366
+
367
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
368
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
369
+ }
370
+
371
+ return (result);
372
+ }
373
+
374
+ }; // class ExampleSimpleInstanceObjectsProxy
375
+
376
+ //
377
+ // Example::ISimpleInstanceObjects::IDevice interface proxy definitions
378
+ //
379
+ // Methods:
380
+ // (0) virtual Core::hresult Register(Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
381
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
382
+ // (2) virtual Core::hresult Name(string&) const = 0
383
+ // (3) virtual Core::hresult Name(const string&) = 0
384
+ // (4) virtual Core::hresult Enable() = 0
385
+ // (5) virtual Core::hresult Disable() = 0
386
+ // (6) virtual Core::hresult Pin(const uint8_t, const bool) = 0
387
+ // (7) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
388
+ //
389
+
390
+ class ExampleSimpleInstanceObjectsDeviceProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleInstanceObjects::IDevice> {
391
+ public:
392
+ ExampleSimpleInstanceObjectsDeviceProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
393
+ : BaseClass(channel, implementation, otherSideInformed)
394
+ {
395
+ }
396
+
397
+ Core::hresult Register(Example::ISimpleInstanceObjects::IDevice::INotification* const _notification, const Core::OptionalType<uint8_t>& _pin) override
398
+ {
399
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
400
+
401
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
402
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
403
+ writer.Boolean(_pin.IsSet());
404
+ if (_pin.IsSet() == true) {
405
+ writer.Number<uint8_t>(_pin.Value());
406
+ }
407
+
408
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
409
+ if (hresult == Core::ERROR_NONE) {
410
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
411
+ hresult = reader.Number<Core::hresult>();
412
+
413
+ _Complete(reader);
414
+ } else {
415
+ ASSERT((hresult & COM_ERROR) != 0);
416
+ }
417
+
418
+ return (hresult);
419
+ }
420
+
421
+ Core::hresult Unregister(const Example::ISimpleInstanceObjects::IDevice::INotification* const _notificaiton, const Core::OptionalType<uint8_t>& _pin) override
422
+ {
423
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
424
+
425
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
426
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notificaiton));
427
+ writer.Boolean(_pin.IsSet());
428
+ if (_pin.IsSet() == true) {
429
+ writer.Number<uint8_t>(_pin.Value());
430
+ }
431
+
432
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
433
+ if (hresult == Core::ERROR_NONE) {
434
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
435
+ hresult = reader.Number<Core::hresult>();
436
+
437
+ _Complete(reader);
438
+ } else {
439
+ ASSERT((hresult & COM_ERROR) != 0);
440
+ }
441
+
442
+ return (hresult);
443
+ }
444
+
445
+ Core::hresult Name(string& _name) const override
446
+ {
447
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
448
+
449
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
450
+ if (hresult == Core::ERROR_NONE) {
451
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
452
+ hresult = reader.Number<Core::hresult>();
453
+ _name = reader.Text();
454
+ } else {
455
+ ASSERT((hresult & COM_ERROR) != 0);
456
+ }
457
+
458
+ return (hresult);
459
+ }
460
+
461
+ Core::hresult Name(const string& _name) override
462
+ {
463
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
464
+
465
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
466
+ writer.Text(_name);
467
+
468
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
469
+ if (hresult == Core::ERROR_NONE) {
470
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
471
+ hresult = reader.Number<Core::hresult>();
472
+ } else {
473
+ ASSERT((hresult & COM_ERROR) != 0);
474
+ }
475
+
476
+ return (hresult);
477
+ }
478
+
479
+ Core::hresult Enable() override
480
+ {
481
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
482
+
483
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
484
+ if (hresult == Core::ERROR_NONE) {
485
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
486
+ hresult = reader.Number<Core::hresult>();
487
+ } else {
488
+ ASSERT((hresult & COM_ERROR) != 0);
489
+ }
490
+
491
+ return (hresult);
492
+ }
493
+
494
+ Core::hresult Disable() override
495
+ {
496
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
497
+
498
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
499
+ if (hresult == Core::ERROR_NONE) {
500
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
501
+ hresult = reader.Number<Core::hresult>();
502
+ } else {
503
+ ASSERT((hresult & COM_ERROR) != 0);
504
+ }
505
+
506
+ return (hresult);
507
+ }
508
+
509
+ Core::hresult Pin(const uint8_t _pin, const bool _high) override
510
+ {
511
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(6));
512
+
513
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
514
+ writer.Number<uint8_t>(_pin);
515
+ writer.Boolean(_high);
516
+
517
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
518
+ if (hresult == Core::ERROR_NONE) {
519
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
520
+ hresult = reader.Number<Core::hresult>();
521
+ } else {
522
+ ASSERT((hresult & COM_ERROR) != 0);
523
+ }
524
+
525
+ return (hresult);
526
+ }
527
+
528
+ Core::hresult Pin(const uint8_t _pin, bool& _high) const override
529
+ {
530
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(7));
531
+
532
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
533
+ writer.Number<uint8_t>(_pin);
534
+
535
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
536
+ if (hresult == Core::ERROR_NONE) {
537
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
538
+ hresult = reader.Number<Core::hresult>();
539
+ _high = reader.Boolean();
540
+ } else {
541
+ ASSERT((hresult & COM_ERROR) != 0);
542
+ }
543
+
544
+ return (hresult);
545
+ }
546
+
547
+ private:
548
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
549
+ {
550
+ uint32_t result = Core::ERROR_NONE;
551
+
552
+ while (reader.HasData() == true) {
553
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
554
+ ASSERT(implementation != 0);
555
+
556
+ const uint32_t id = reader.Number<uint32_t>();
557
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
558
+
559
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
560
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
561
+ }
562
+
563
+ return (result);
564
+ }
565
+
566
+ }; // class ExampleSimpleInstanceObjectsDeviceProxy
567
+
568
+ //
569
+ // Example::ISimpleInstanceObjects::IDevice::INotification interface proxy definitions
570
+ //
571
+ // Methods:
572
+ // (0) virtual void NameChanged(const string&) = 0
573
+ // (1) virtual void StateChanged(const Example::ISimpleInstanceObjects::state) = 0
574
+ // (2) virtual void PinChanged(const uint8_t, const bool) = 0
575
+ //
576
+
577
+ class ExampleSimpleInstanceObjectsDeviceNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleInstanceObjects::IDevice::INotification> {
578
+ public:
579
+ ExampleSimpleInstanceObjectsDeviceNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
580
+ : BaseClass(channel, implementation, otherSideInformed)
581
+ {
582
+ }
583
+
584
+ void NameChanged(const string& _state) override
585
+ {
586
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
587
+
588
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
589
+ writer.Text(_state);
590
+
591
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
592
+ }
593
+
594
+ void StateChanged(const Example::ISimpleInstanceObjects::state _state) override
595
+ {
596
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
597
+
598
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
599
+ writer.Number<Example::ISimpleInstanceObjects::state>(_state);
600
+
601
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
602
+ }
603
+
604
+ void PinChanged(const uint8_t _pin, const bool _high) override
605
+ {
606
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
607
+
608
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
609
+ writer.Number<uint8_t>(_pin);
610
+ writer.Boolean(_high);
611
+
612
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
613
+ }
614
+
615
+ }; // class ExampleSimpleInstanceObjectsDeviceNotificationProxy
616
+
617
+ POP_WARNING()
618
+ POP_WARNING()
619
+
620
+ // -----------------------------------------------------------------
621
+ // REGISTRATION
622
+ // -----------------------------------------------------------------
623
+ namespace {
624
+
625
+ typedef ProxyStub::UnknownStubType<Example::ISimpleInstanceObjects, ExampleSimpleInstanceObjectsStubMethods> ExampleSimpleInstanceObjectsStub;
626
+ typedef ProxyStub::UnknownStubType<Example::ISimpleInstanceObjects::IDevice, ExampleSimpleInstanceObjectsDeviceStubMethods> ExampleSimpleInstanceObjectsDeviceStub;
627
+ typedef ProxyStub::UnknownStubType<Example::ISimpleInstanceObjects::IDevice::INotification, ExampleSimpleInstanceObjectsDeviceNotificationStubMethods> ExampleSimpleInstanceObjectsDeviceNotificationStub;
628
+
629
+ static class Instantiation {
630
+ public:
631
+ Instantiation()
632
+ {
633
+ RPC::Administrator::Instance().Announce<Example::ISimpleInstanceObjects, ExampleSimpleInstanceObjectsProxy, ExampleSimpleInstanceObjectsStub>();
634
+ RPC::Administrator::Instance().Announce<Example::ISimpleInstanceObjects::IDevice, ExampleSimpleInstanceObjectsDeviceProxy, ExampleSimpleInstanceObjectsDeviceStub>();
635
+ RPC::Administrator::Instance().Announce<Example::ISimpleInstanceObjects::IDevice::INotification, ExampleSimpleInstanceObjectsDeviceNotificationProxy, ExampleSimpleInstanceObjectsDeviceNotificationStub>();
636
+ }
637
+ ~Instantiation()
638
+ {
639
+ RPC::Administrator::Instance().Recall<Example::ISimpleInstanceObjects>();
640
+ RPC::Administrator::Instance().Recall<Example::ISimpleInstanceObjects::IDevice>();
641
+ RPC::Administrator::Instance().Recall<Example::ISimpleInstanceObjects::IDevice::INotification>();
642
+ }
643
+ } ProxyStubRegistration;
644
+
645
+ } // namespace
646
+
647
+ } // namespace ProxyStubs
648
+
649
+ }
{baseline/home/runner/work/ThunderTools/ThunderTools/ghpages_baseline/ProxyStubGenerator/master/latest_raw → generated/generated}/Debug/ThunderInterfaces/interfaces/generated/ProxyStubs_OCDM.cpp RENAMED
@@ -579,11 +579,11 @@ namespace ProxyStubs {
579
579
 
580
580
  Exchange::OCDM_RESULT result = implementation->StoreLicenseData(_licenseData, _licenseDataSize, _secureStopId);
581
581
 
582
582
  RPC::Data::Frame::Writer writer(message->Response().Writer());
583
583
  writer.Number<Exchange::OCDM_RESULT>(result);
584
- writer.Buffer<uint8_t>(16, _secureStopId);
584
+ writer.Copy(16, _secureStopId);
585
585
  },
586
586
 
587
587
  // (6) virtual Exchange::OCDM_RESULT SelectKeyId(const uint8_t, const uint8_t*) = 0
588
588
  //
589
589
  [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
@@ -1638,11 +1638,11 @@ namespace ProxyStubs {
1638
1638
 
1639
1639
  const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1640
1640
  if (hresult == Core::ERROR_NONE) {
1641
1641
  RPC::Data::Frame::Reader reader(message->Response().Reader());
1642
1642
  result = reader.Number<Exchange::OCDM_RESULT>();
1643
- reader.Buffer<uint8_t>(16, _secureStopId);
1643
+ reader.Copy(16, _secureStopId);
1644
1644
  } else {
1645
1645
  ASSERT((hresult & COM_ERROR) != 0);
1646
1646
  }
1647
1647
 
1648
1648
  return (result);
generated/generated/Debug/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestAutomation.cpp ADDED
@@ -0,0 +1,858 @@
1
+ //
2
+ // generated automatically from "ITestAutomation.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class QualityAssurance::IMemory
6
+ // - class QualityAssurance::IComRpc
7
+ // - class QualityAssurance::IComRpc::IComRpcInternal
8
+ // - class QualityAssurance::ITestTextOptions
9
+ // - class QualityAssurance::ITestTextOptions::INotification
10
+ // - class QualityAssurance::ITestTextOptions::ITestLegacy
11
+ // - class QualityAssurance::ITestTextOptions::ITestLegacy::INotification
12
+ // - class QualityAssurance::ITestTextOptions::ITestKeep
13
+ // - class QualityAssurance::ITestTextOptions::ITestKeep::INotification
14
+ // - class QualityAssurance::ITestTextOptions::ITestCustom
15
+ // - class QualityAssurance::ITestTextOptions::ITestCustom::INotification
16
+ // - class QualityAssurance::ITestUtils
17
+ //
18
+
19
+ #include "Module.h"
20
+ #include "ITestAutomation.h"
21
+
22
+ #include <com/com.h>
23
+
24
+ namespace Thunder {
25
+
26
+ namespace ProxyStubs {
27
+
28
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
29
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
30
+
31
+ // -----------------------------------------------------------------
32
+ // STUBS
33
+ // -----------------------------------------------------------------
34
+
35
+ //
36
+ // QualityAssurance::IMemory interface stub definitions
37
+ //
38
+ // Methods:
39
+ // (0) virtual Core::hresult AllocateMemory(const uint32_t) = 0
40
+ // (1) virtual Core::hresult FreeAllocatedMemory() = 0
41
+ //
42
+
43
+ static ProxyStub::MethodHandler QualityAssuranceMemoryStubMethods[] = {
44
+ // (0) virtual Core::hresult AllocateMemory(const uint32_t) = 0
45
+ //
46
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
47
+ QualityAssurance::IMemory* implementation = reinterpret_cast<QualityAssurance::IMemory*>(message->Parameters().Implementation());
48
+ ASSERT(implementation != nullptr);
49
+
50
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
51
+ const uint32_t _size = reader.Number<uint32_t>();
52
+
53
+ Core::hresult result = implementation->AllocateMemory(_size);
54
+
55
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
56
+ writer.Number<Core::hresult>(result);
57
+ },
58
+
59
+ // (1) virtual Core::hresult FreeAllocatedMemory() = 0
60
+ //
61
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
62
+ QualityAssurance::IMemory* implementation = reinterpret_cast<QualityAssurance::IMemory*>(message->Parameters().Implementation());
63
+ ASSERT(implementation != nullptr);
64
+
65
+ Core::hresult result = implementation->FreeAllocatedMemory();
66
+
67
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
68
+ writer.Number<Core::hresult>(result);
69
+ }
70
+ , nullptr
71
+ }; // QualityAssuranceMemoryStubMethods
72
+
73
+ //
74
+ // QualityAssurance::IComRpc interface stub definitions
75
+ //
76
+ // Methods:
77
+ // (0) virtual Core::hresult TestBigString(const uint32_t) = 0
78
+ //
79
+
80
+ static ProxyStub::MethodHandler QualityAssuranceComRpcStubMethods[] = {
81
+ // (0) virtual Core::hresult TestBigString(const uint32_t) = 0
82
+ //
83
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
84
+ QualityAssurance::IComRpc* implementation = reinterpret_cast<QualityAssurance::IComRpc*>(message->Parameters().Implementation());
85
+ ASSERT(implementation != nullptr);
86
+
87
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
88
+ const uint32_t _length = reader.Number<uint32_t>();
89
+
90
+ Core::hresult result = implementation->TestBigString(_length);
91
+
92
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
93
+ writer.Number<Core::hresult>(result);
94
+ }
95
+ , nullptr
96
+ }; // QualityAssuranceComRpcStubMethods
97
+
98
+ //
99
+ // QualityAssurance::IComRpc::IComRpcInternal interface stub definitions
100
+ //
101
+ // Methods:
102
+ // (0) virtual Core::hresult BigStringTest(const string&) = 0
103
+ //
104
+
105
+ static ProxyStub::MethodHandler QualityAssuranceComRpcComRpcInternalStubMethods[] = {
106
+ // (0) virtual Core::hresult BigStringTest(const string&) = 0
107
+ //
108
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
109
+ QualityAssurance::IComRpc::IComRpcInternal* implementation = reinterpret_cast<QualityAssurance::IComRpc::IComRpcInternal*>(message->Parameters().Implementation());
110
+ ASSERT(implementation != nullptr);
111
+
112
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
113
+ ASSERT((reader.PeekNumber<Core::UInt24>() >= 0) && (reader.PeekNumber<Core::UInt24>() <= 4194303));
114
+ const string _testString = reader.Text<Core::UInt24>();
115
+
116
+ Core::hresult result = implementation->BigStringTest(static_cast<const string&>(_testString));
117
+
118
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
119
+ writer.Number<Core::hresult>(result);
120
+ }
121
+ , nullptr
122
+ }; // QualityAssuranceComRpcComRpcInternalStubMethods
123
+
124
+ //
125
+ // QualityAssurance::ITestTextOptions interface stub definitions
126
+ //
127
+ // Methods:
128
+ // (0) virtual Core::hresult TestStandard(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
129
+ //
130
+
131
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsStubMethods[] = {
132
+ // (0) virtual Core::hresult TestStandard(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
133
+ //
134
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
135
+ QualityAssurance::ITestTextOptions* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions*>(message->Parameters().Implementation());
136
+ ASSERT(implementation != nullptr);
137
+
138
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
139
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
140
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
141
+ QualityAssurance::ITestTextOptions::TestDetails _thirdTestParam{};
142
+ _thirdTestParam.testDetailsFirst = reader.Text();
143
+ _thirdTestParam.testDetailsSecond = reader.Text();
144
+ const QualityAssurance::ITestTextOptions::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::EnumTextOptions>();
145
+
146
+ Core::hresult result = implementation->TestStandard(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::TestDetails&>(_thirdTestParam), _fourthTestParam);
147
+
148
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
149
+ writer.Number<Core::hresult>(result);
150
+ }
151
+ , nullptr
152
+ }; // QualityAssuranceTestTextOptionsStubMethods
153
+
154
+ //
155
+ // QualityAssurance::ITestTextOptions::INotification interface stub definitions
156
+ //
157
+ // Methods:
158
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
159
+ //
160
+
161
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsNotificationStubMethods[] = {
162
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
163
+ //
164
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
165
+ QualityAssurance::ITestTextOptions::INotification* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::INotification*>(message->Parameters().Implementation());
166
+ ASSERT(implementation != nullptr);
167
+
168
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
169
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
170
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
171
+ QualityAssurance::ITestTextOptions::TestDetails _thirdTestParam{};
172
+ _thirdTestParam.testDetailsFirst = reader.Text();
173
+ _thirdTestParam.testDetailsSecond = reader.Text();
174
+ const QualityAssurance::ITestTextOptions::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::EnumTextOptions>();
175
+
176
+ implementation->TestEvent(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::TestDetails&>(_thirdTestParam), _fourthTestParam);
177
+ }
178
+ , nullptr
179
+ }; // QualityAssuranceTestTextOptionsNotificationStubMethods
180
+
181
+ //
182
+ // QualityAssurance::ITestTextOptions::ITestLegacy interface stub definitions
183
+ //
184
+ // Methods:
185
+ // (0) virtual Core::hresult TestLegacy(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
186
+ //
187
+
188
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestLegacyStubMethods[] = {
189
+ // (0) virtual Core::hresult TestLegacy(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
190
+ //
191
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
192
+ QualityAssurance::ITestTextOptions::ITestLegacy* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestLegacy*>(message->Parameters().Implementation());
193
+ ASSERT(implementation != nullptr);
194
+
195
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
196
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
197
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
198
+ QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails _thirdTestParam{};
199
+ _thirdTestParam.testDetailsFirst = reader.Text();
200
+ _thirdTestParam.testDetailsSecond = reader.Text();
201
+ const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>();
202
+
203
+ Core::hresult result = implementation->TestLegacy(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&>(_thirdTestParam), _fourthTestParam);
204
+
205
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
206
+ writer.Number<Core::hresult>(result);
207
+ }
208
+ , nullptr
209
+ }; // QualityAssuranceTestTextOptionsTestLegacyStubMethods
210
+
211
+ //
212
+ // QualityAssurance::ITestTextOptions::ITestLegacy::INotification interface stub definitions
213
+ //
214
+ // Methods:
215
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
216
+ //
217
+
218
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestLegacyNotificationStubMethods[] = {
219
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
220
+ //
221
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
222
+ QualityAssurance::ITestTextOptions::ITestLegacy::INotification* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestLegacy::INotification*>(message->Parameters().Implementation());
223
+ ASSERT(implementation != nullptr);
224
+
225
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
226
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
227
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
228
+ QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails _thirdTestParam{};
229
+ _thirdTestParam.testDetailsFirst = reader.Text();
230
+ _thirdTestParam.testDetailsSecond = reader.Text();
231
+ const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>();
232
+
233
+ implementation->TestEvent(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&>(_thirdTestParam), _fourthTestParam);
234
+ }
235
+ , nullptr
236
+ }; // QualityAssuranceTestTextOptionsTestLegacyNotificationStubMethods
237
+
238
+ //
239
+ // QualityAssurance::ITestTextOptions::ITestKeep interface stub definitions
240
+ //
241
+ // Methods:
242
+ // (0) virtual Core::hresult TestKeeP(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
243
+ //
244
+
245
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestKeepStubMethods[] = {
246
+ // (0) virtual Core::hresult TestKeeP(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
247
+ //
248
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
249
+ QualityAssurance::ITestTextOptions::ITestKeep* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestKeep*>(message->Parameters().Implementation());
250
+ ASSERT(implementation != nullptr);
251
+
252
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
253
+ const uint32_t _firstTestParaM = reader.Number<uint32_t>();
254
+ const uint32_t _secondTestParaM = reader.Number<uint32_t>();
255
+ QualityAssurance::ITestTextOptions::ITestKeep::TestDetails _thirdTestParaM{};
256
+ _thirdTestParaM.testDetailsFirst = reader.Text();
257
+ _thirdTestParaM.testDetailsSecond = reader.Text();
258
+ const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions _fourthTestParaM = reader.Number<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>();
259
+
260
+ Core::hresult result = implementation->TestKeeP(_firstTestParaM, _secondTestParaM, static_cast<const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&>(_thirdTestParaM), _fourthTestParaM);
261
+
262
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
263
+ writer.Number<Core::hresult>(result);
264
+ }
265
+ , nullptr
266
+ }; // QualityAssuranceTestTextOptionsTestKeepStubMethods
267
+
268
+ //
269
+ // QualityAssurance::ITestTextOptions::ITestKeep::INotification interface stub definitions
270
+ //
271
+ // Methods:
272
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
273
+ //
274
+
275
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestKeepNotificationStubMethods[] = {
276
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
277
+ //
278
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
279
+ QualityAssurance::ITestTextOptions::ITestKeep::INotification* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestKeep::INotification*>(message->Parameters().Implementation());
280
+ ASSERT(implementation != nullptr);
281
+
282
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
283
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
284
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
285
+ QualityAssurance::ITestTextOptions::ITestKeep::TestDetails _thirdTestParam{};
286
+ _thirdTestParam.testDetailsFirst = reader.Text();
287
+ _thirdTestParam.testDetailsSecond = reader.Text();
288
+ const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>();
289
+
290
+ implementation->TestEvent(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&>(_thirdTestParam), _fourthTestParam);
291
+ }
292
+ , nullptr
293
+ }; // QualityAssuranceTestTextOptionsTestKeepNotificationStubMethods
294
+
295
+ //
296
+ // QualityAssurance::ITestTextOptions::ITestCustom interface stub definitions
297
+ //
298
+ // Methods:
299
+ // (0) virtual Core::hresult TestCustom(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
300
+ //
301
+
302
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestCustomStubMethods[] = {
303
+ // (0) virtual Core::hresult TestCustom(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
304
+ //
305
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
306
+ QualityAssurance::ITestTextOptions::ITestCustom* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestCustom*>(message->Parameters().Implementation());
307
+ ASSERT(implementation != nullptr);
308
+
309
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
310
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
311
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
312
+ QualityAssurance::ITestTextOptions::ITestCustom::TestDetails _thirdTestParam{};
313
+ _thirdTestParam.testDetailsFirst = reader.Text();
314
+ _thirdTestParam.testDetailsSecond = reader.Text();
315
+ const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>();
316
+
317
+ Core::hresult result = implementation->TestCustom(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&>(_thirdTestParam), _fourthTestParam);
318
+
319
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
320
+ writer.Number<Core::hresult>(result);
321
+ }
322
+ , nullptr
323
+ }; // QualityAssuranceTestTextOptionsTestCustomStubMethods
324
+
325
+ //
326
+ // QualityAssurance::ITestTextOptions::ITestCustom::INotification interface stub definitions
327
+ //
328
+ // Methods:
329
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
330
+ //
331
+
332
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestCustomNotificationStubMethods[] = {
333
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
334
+ //
335
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
336
+ QualityAssurance::ITestTextOptions::ITestCustom::INotification* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestCustom::INotification*>(message->Parameters().Implementation());
337
+ ASSERT(implementation != nullptr);
338
+
339
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
340
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
341
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
342
+ QualityAssurance::ITestTextOptions::ITestCustom::TestDetails _thirdTestParam{};
343
+ _thirdTestParam.testDetailsFirst = reader.Text();
344
+ _thirdTestParam.testDetailsSecond = reader.Text();
345
+ const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>();
346
+
347
+ implementation->TestEvent(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&>(_thirdTestParam), _fourthTestParam);
348
+ }
349
+ , nullptr
350
+ }; // QualityAssuranceTestTextOptionsTestCustomNotificationStubMethods
351
+
352
+ //
353
+ // QualityAssurance::ITestUtils interface stub definitions
354
+ //
355
+ // Methods:
356
+ // (0) virtual Core::hresult Crash() const = 0
357
+ //
358
+
359
+ static ProxyStub::MethodHandler QualityAssuranceTestUtilsStubMethods[] = {
360
+ // (0) virtual Core::hresult Crash() const = 0
361
+ //
362
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
363
+ const QualityAssurance::ITestUtils* implementation = reinterpret_cast<const QualityAssurance::ITestUtils*>(message->Parameters().Implementation());
364
+ ASSERT(implementation != nullptr);
365
+
366
+ Core::hresult result = implementation->Crash();
367
+
368
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
369
+ writer.Number<Core::hresult>(result);
370
+ }
371
+ , nullptr
372
+ }; // QualityAssuranceTestUtilsStubMethods
373
+
374
+ // -----------------------------------------------------------------
375
+ // PROXIES
376
+ // -----------------------------------------------------------------
377
+
378
+ //
379
+ // QualityAssurance::IMemory interface proxy definitions
380
+ //
381
+ // Methods:
382
+ // (0) virtual Core::hresult AllocateMemory(const uint32_t) = 0
383
+ // (1) virtual Core::hresult FreeAllocatedMemory() = 0
384
+ //
385
+
386
+ class QualityAssuranceMemoryProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::IMemory> {
387
+ public:
388
+ QualityAssuranceMemoryProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
389
+ : BaseClass(channel, implementation, otherSideInformed)
390
+ {
391
+ }
392
+
393
+ Core::hresult AllocateMemory(const uint32_t _size) override
394
+ {
395
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
396
+
397
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
398
+ writer.Number<uint32_t>(_size);
399
+
400
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
401
+ if (hresult == Core::ERROR_NONE) {
402
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
403
+ hresult = reader.Number<Core::hresult>();
404
+ } else {
405
+ ASSERT((hresult & COM_ERROR) != 0);
406
+ }
407
+
408
+ return (hresult);
409
+ }
410
+
411
+ Core::hresult FreeAllocatedMemory() override
412
+ {
413
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
414
+
415
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
416
+ if (hresult == Core::ERROR_NONE) {
417
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
418
+ hresult = reader.Number<Core::hresult>();
419
+ } else {
420
+ ASSERT((hresult & COM_ERROR) != 0);
421
+ }
422
+
423
+ return (hresult);
424
+ }
425
+
426
+ }; // class QualityAssuranceMemoryProxy
427
+
428
+ //
429
+ // QualityAssurance::IComRpc interface proxy definitions
430
+ //
431
+ // Methods:
432
+ // (0) virtual Core::hresult TestBigString(const uint32_t) = 0
433
+ //
434
+
435
+ class QualityAssuranceComRpcProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::IComRpc> {
436
+ public:
437
+ QualityAssuranceComRpcProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
438
+ : BaseClass(channel, implementation, otherSideInformed)
439
+ {
440
+ }
441
+
442
+ Core::hresult TestBigString(const uint32_t _length) override
443
+ {
444
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
445
+
446
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
447
+ writer.Number<uint32_t>(_length);
448
+
449
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
450
+ if (hresult == Core::ERROR_NONE) {
451
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
452
+ hresult = reader.Number<Core::hresult>();
453
+ } else {
454
+ ASSERT((hresult & COM_ERROR) != 0);
455
+ }
456
+
457
+ return (hresult);
458
+ }
459
+
460
+ }; // class QualityAssuranceComRpcProxy
461
+
462
+ //
463
+ // QualityAssurance::IComRpc::IComRpcInternal interface proxy definitions
464
+ //
465
+ // Methods:
466
+ // (0) virtual Core::hresult BigStringTest(const string&) = 0
467
+ //
468
+
469
+ class QualityAssuranceComRpcComRpcInternalProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::IComRpc::IComRpcInternal> {
470
+ public:
471
+ QualityAssuranceComRpcComRpcInternalProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
472
+ : BaseClass(channel, implementation, otherSideInformed)
473
+ {
474
+ }
475
+
476
+ Core::hresult BigStringTest(const string& _testString) override
477
+ {
478
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
479
+
480
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
481
+ writer.Text<Core::UInt24>(_testString);
482
+
483
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
484
+ if (hresult == Core::ERROR_NONE) {
485
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
486
+ hresult = reader.Number<Core::hresult>();
487
+ } else {
488
+ ASSERT((hresult & COM_ERROR) != 0);
489
+ }
490
+
491
+ return (hresult);
492
+ }
493
+
494
+ }; // class QualityAssuranceComRpcComRpcInternalProxy
495
+
496
+ //
497
+ // QualityAssurance::ITestTextOptions interface proxy definitions
498
+ //
499
+ // Methods:
500
+ // (0) virtual Core::hresult TestStandard(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
501
+ //
502
+
503
+ class QualityAssuranceTestTextOptionsProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions> {
504
+ public:
505
+ QualityAssuranceTestTextOptionsProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
506
+ : BaseClass(channel, implementation, otherSideInformed)
507
+ {
508
+ }
509
+
510
+ Core::hresult TestStandard(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::EnumTextOptions _fourthTestParam) override
511
+ {
512
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
513
+
514
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
515
+ writer.Number<uint32_t>(_firstTestParam);
516
+ writer.Number<uint32_t>(_secondTestParam);
517
+ writer.Text(_thirdTestParam.testDetailsFirst);
518
+ writer.Text(_thirdTestParam.testDetailsSecond);
519
+ writer.Number<QualityAssurance::ITestTextOptions::EnumTextOptions>(_fourthTestParam);
520
+
521
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
522
+ if (hresult == Core::ERROR_NONE) {
523
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
524
+ hresult = reader.Number<Core::hresult>();
525
+ } else {
526
+ ASSERT((hresult & COM_ERROR) != 0);
527
+ }
528
+
529
+ return (hresult);
530
+ }
531
+
532
+ }; // class QualityAssuranceTestTextOptionsProxy
533
+
534
+ //
535
+ // QualityAssurance::ITestTextOptions::INotification interface proxy definitions
536
+ //
537
+ // Methods:
538
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
539
+ //
540
+
541
+ class QualityAssuranceTestTextOptionsNotificationProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::INotification> {
542
+ public:
543
+ QualityAssuranceTestTextOptionsNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
544
+ : BaseClass(channel, implementation, otherSideInformed)
545
+ {
546
+ }
547
+
548
+ void TestEvent(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::EnumTextOptions _fourthTestParam) override
549
+ {
550
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
551
+
552
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
553
+ writer.Number<uint32_t>(_firstTestParam);
554
+ writer.Number<uint32_t>(_secondTestParam);
555
+ writer.Text(_thirdTestParam.testDetailsFirst);
556
+ writer.Text(_thirdTestParam.testDetailsSecond);
557
+ writer.Number<QualityAssurance::ITestTextOptions::EnumTextOptions>(_fourthTestParam);
558
+
559
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
560
+ }
561
+
562
+ }; // class QualityAssuranceTestTextOptionsNotificationProxy
563
+
564
+ //
565
+ // QualityAssurance::ITestTextOptions::ITestLegacy interface proxy definitions
566
+ //
567
+ // Methods:
568
+ // (0) virtual Core::hresult TestLegacy(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
569
+ //
570
+
571
+ class QualityAssuranceTestTextOptionsTestLegacyProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestLegacy> {
572
+ public:
573
+ QualityAssuranceTestTextOptionsTestLegacyProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
574
+ : BaseClass(channel, implementation, otherSideInformed)
575
+ {
576
+ }
577
+
578
+ Core::hresult TestLegacy(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions _fourthTestParam) override
579
+ {
580
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
581
+
582
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
583
+ writer.Number<uint32_t>(_firstTestParam);
584
+ writer.Number<uint32_t>(_secondTestParam);
585
+ writer.Text(_thirdTestParam.testDetailsFirst);
586
+ writer.Text(_thirdTestParam.testDetailsSecond);
587
+ writer.Number<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>(_fourthTestParam);
588
+
589
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
590
+ if (hresult == Core::ERROR_NONE) {
591
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
592
+ hresult = reader.Number<Core::hresult>();
593
+ } else {
594
+ ASSERT((hresult & COM_ERROR) != 0);
595
+ }
596
+
597
+ return (hresult);
598
+ }
599
+
600
+ }; // class QualityAssuranceTestTextOptionsTestLegacyProxy
601
+
602
+ //
603
+ // QualityAssurance::ITestTextOptions::ITestLegacy::INotification interface proxy definitions
604
+ //
605
+ // Methods:
606
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
607
+ //
608
+
609
+ class QualityAssuranceTestTextOptionsTestLegacyNotificationProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestLegacy::INotification> {
610
+ public:
611
+ QualityAssuranceTestTextOptionsTestLegacyNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
612
+ : BaseClass(channel, implementation, otherSideInformed)
613
+ {
614
+ }
615
+
616
+ void TestEvent(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions _fourthTestParam) override
617
+ {
618
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
619
+
620
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
621
+ writer.Number<uint32_t>(_firstTestParam);
622
+ writer.Number<uint32_t>(_secondTestParam);
623
+ writer.Text(_thirdTestParam.testDetailsFirst);
624
+ writer.Text(_thirdTestParam.testDetailsSecond);
625
+ writer.Number<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>(_fourthTestParam);
626
+
627
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
628
+ }
629
+
630
+ }; // class QualityAssuranceTestTextOptionsTestLegacyNotificationProxy
631
+
632
+ //
633
+ // QualityAssurance::ITestTextOptions::ITestKeep interface proxy definitions
634
+ //
635
+ // Methods:
636
+ // (0) virtual Core::hresult TestKeeP(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
637
+ //
638
+
639
+ class QualityAssuranceTestTextOptionsTestKeepProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestKeep> {
640
+ public:
641
+ QualityAssuranceTestTextOptionsTestKeepProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
642
+ : BaseClass(channel, implementation, otherSideInformed)
643
+ {
644
+ }
645
+
646
+ Core::hresult TestKeeP(const uint32_t _firstTestParaM, const uint32_t _secondTestParaM, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails& _thirdTestParaM, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions _fourthTestParaM) override
647
+ {
648
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
649
+
650
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
651
+ writer.Number<uint32_t>(_firstTestParaM);
652
+ writer.Number<uint32_t>(_secondTestParaM);
653
+ writer.Text(_thirdTestParaM.testDetailsFirst);
654
+ writer.Text(_thirdTestParaM.testDetailsSecond);
655
+ writer.Number<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>(_fourthTestParaM);
656
+
657
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
658
+ if (hresult == Core::ERROR_NONE) {
659
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
660
+ hresult = reader.Number<Core::hresult>();
661
+ } else {
662
+ ASSERT((hresult & COM_ERROR) != 0);
663
+ }
664
+
665
+ return (hresult);
666
+ }
667
+
668
+ }; // class QualityAssuranceTestTextOptionsTestKeepProxy
669
+
670
+ //
671
+ // QualityAssurance::ITestTextOptions::ITestKeep::INotification interface proxy definitions
672
+ //
673
+ // Methods:
674
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
675
+ //
676
+
677
+ class QualityAssuranceTestTextOptionsTestKeepNotificationProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestKeep::INotification> {
678
+ public:
679
+ QualityAssuranceTestTextOptionsTestKeepNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
680
+ : BaseClass(channel, implementation, otherSideInformed)
681
+ {
682
+ }
683
+
684
+ void TestEvent(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions _fourthTestParam) override
685
+ {
686
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
687
+
688
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
689
+ writer.Number<uint32_t>(_firstTestParam);
690
+ writer.Number<uint32_t>(_secondTestParam);
691
+ writer.Text(_thirdTestParam.testDetailsFirst);
692
+ writer.Text(_thirdTestParam.testDetailsSecond);
693
+ writer.Number<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>(_fourthTestParam);
694
+
695
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
696
+ }
697
+
698
+ }; // class QualityAssuranceTestTextOptionsTestKeepNotificationProxy
699
+
700
+ //
701
+ // QualityAssurance::ITestTextOptions::ITestCustom interface proxy definitions
702
+ //
703
+ // Methods:
704
+ // (0) virtual Core::hresult TestCustom(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
705
+ //
706
+
707
+ class QualityAssuranceTestTextOptionsTestCustomProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestCustom> {
708
+ public:
709
+ QualityAssuranceTestTextOptionsTestCustomProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
710
+ : BaseClass(channel, implementation, otherSideInformed)
711
+ {
712
+ }
713
+
714
+ Core::hresult TestCustom(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions _fourthTestParam) override
715
+ {
716
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
717
+
718
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
719
+ writer.Number<uint32_t>(_firstTestParam);
720
+ writer.Number<uint32_t>(_secondTestParam);
721
+ writer.Text(_thirdTestParam.testDetailsFirst);
722
+ writer.Text(_thirdTestParam.testDetailsSecond);
723
+ writer.Number<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>(_fourthTestParam);
724
+
725
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
726
+ if (hresult == Core::ERROR_NONE) {
727
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
728
+ hresult = reader.Number<Core::hresult>();
729
+ } else {
730
+ ASSERT((hresult & COM_ERROR) != 0);
731
+ }
732
+
733
+ return (hresult);
734
+ }
735
+
736
+ }; // class QualityAssuranceTestTextOptionsTestCustomProxy
737
+
738
+ //
739
+ // QualityAssurance::ITestTextOptions::ITestCustom::INotification interface proxy definitions
740
+ //
741
+ // Methods:
742
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
743
+ //
744
+
745
+ class QualityAssuranceTestTextOptionsTestCustomNotificationProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestCustom::INotification> {
746
+ public:
747
+ QualityAssuranceTestTextOptionsTestCustomNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
748
+ : BaseClass(channel, implementation, otherSideInformed)
749
+ {
750
+ }
751
+
752
+ void TestEvent(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions _fourthTestParam) override
753
+ {
754
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
755
+
756
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
757
+ writer.Number<uint32_t>(_firstTestParam);
758
+ writer.Number<uint32_t>(_secondTestParam);
759
+ writer.Text(_thirdTestParam.testDetailsFirst);
760
+ writer.Text(_thirdTestParam.testDetailsSecond);
761
+ writer.Number<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>(_fourthTestParam);
762
+
763
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
764
+ }
765
+
766
+ }; // class QualityAssuranceTestTextOptionsTestCustomNotificationProxy
767
+
768
+ //
769
+ // QualityAssurance::ITestUtils interface proxy definitions
770
+ //
771
+ // Methods:
772
+ // (0) virtual Core::hresult Crash() const = 0
773
+ //
774
+
775
+ class QualityAssuranceTestUtilsProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestUtils> {
776
+ public:
777
+ QualityAssuranceTestUtilsProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
778
+ : BaseClass(channel, implementation, otherSideInformed)
779
+ {
780
+ }
781
+
782
+ Core::hresult Crash() const override
783
+ {
784
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
785
+
786
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
787
+ if (hresult == Core::ERROR_NONE) {
788
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
789
+ hresult = reader.Number<Core::hresult>();
790
+ } else {
791
+ ASSERT((hresult & COM_ERROR) != 0);
792
+ }
793
+
794
+ return (hresult);
795
+ }
796
+
797
+ }; // class QualityAssuranceTestUtilsProxy
798
+
799
+ POP_WARNING()
800
+ POP_WARNING()
801
+
802
+ // -----------------------------------------------------------------
803
+ // REGISTRATION
804
+ // -----------------------------------------------------------------
805
+ namespace {
806
+
807
+ typedef ProxyStub::UnknownStubType<QualityAssurance::IMemory, QualityAssuranceMemoryStubMethods> QualityAssuranceMemoryStub;
808
+ typedef ProxyStub::UnknownStubType<QualityAssurance::IComRpc, QualityAssuranceComRpcStubMethods> QualityAssuranceComRpcStub;
809
+ typedef ProxyStub::UnknownStubType<QualityAssurance::IComRpc::IComRpcInternal, QualityAssuranceComRpcComRpcInternalStubMethods> QualityAssuranceComRpcComRpcInternalStub;
810
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions, QualityAssuranceTestTextOptionsStubMethods> QualityAssuranceTestTextOptionsStub;
811
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::INotification, QualityAssuranceTestTextOptionsNotificationStubMethods> QualityAssuranceTestTextOptionsNotificationStub;
812
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestLegacy, QualityAssuranceTestTextOptionsTestLegacyStubMethods> QualityAssuranceTestTextOptionsTestLegacyStub;
813
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestLegacy::INotification, QualityAssuranceTestTextOptionsTestLegacyNotificationStubMethods> QualityAssuranceTestTextOptionsTestLegacyNotificationStub;
814
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestKeep, QualityAssuranceTestTextOptionsTestKeepStubMethods> QualityAssuranceTestTextOptionsTestKeepStub;
815
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestKeep::INotification, QualityAssuranceTestTextOptionsTestKeepNotificationStubMethods> QualityAssuranceTestTextOptionsTestKeepNotificationStub;
816
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestCustom, QualityAssuranceTestTextOptionsTestCustomStubMethods> QualityAssuranceTestTextOptionsTestCustomStub;
817
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestCustom::INotification, QualityAssuranceTestTextOptionsTestCustomNotificationStubMethods> QualityAssuranceTestTextOptionsTestCustomNotificationStub;
818
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestUtils, QualityAssuranceTestUtilsStubMethods> QualityAssuranceTestUtilsStub;
819
+
820
+ static class Instantiation {
821
+ public:
822
+ Instantiation()
823
+ {
824
+ RPC::Administrator::Instance().Announce<QualityAssurance::IMemory, QualityAssuranceMemoryProxy, QualityAssuranceMemoryStub>();
825
+ RPC::Administrator::Instance().Announce<QualityAssurance::IComRpc, QualityAssuranceComRpcProxy, QualityAssuranceComRpcStub>();
826
+ RPC::Administrator::Instance().Announce<QualityAssurance::IComRpc::IComRpcInternal, QualityAssuranceComRpcComRpcInternalProxy, QualityAssuranceComRpcComRpcInternalStub>();
827
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions, QualityAssuranceTestTextOptionsProxy, QualityAssuranceTestTextOptionsStub>();
828
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::INotification, QualityAssuranceTestTextOptionsNotificationProxy, QualityAssuranceTestTextOptionsNotificationStub>();
829
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestLegacy, QualityAssuranceTestTextOptionsTestLegacyProxy, QualityAssuranceTestTextOptionsTestLegacyStub>();
830
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestLegacy::INotification, QualityAssuranceTestTextOptionsTestLegacyNotificationProxy, QualityAssuranceTestTextOptionsTestLegacyNotificationStub>();
831
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestKeep, QualityAssuranceTestTextOptionsTestKeepProxy, QualityAssuranceTestTextOptionsTestKeepStub>();
832
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestKeep::INotification, QualityAssuranceTestTextOptionsTestKeepNotificationProxy, QualityAssuranceTestTextOptionsTestKeepNotificationStub>();
833
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestCustom, QualityAssuranceTestTextOptionsTestCustomProxy, QualityAssuranceTestTextOptionsTestCustomStub>();
834
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestCustom::INotification, QualityAssuranceTestTextOptionsTestCustomNotificationProxy, QualityAssuranceTestTextOptionsTestCustomNotificationStub>();
835
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestUtils, QualityAssuranceTestUtilsProxy, QualityAssuranceTestUtilsStub>();
836
+ }
837
+ ~Instantiation()
838
+ {
839
+ RPC::Administrator::Instance().Recall<QualityAssurance::IMemory>();
840
+ RPC::Administrator::Instance().Recall<QualityAssurance::IComRpc>();
841
+ RPC::Administrator::Instance().Recall<QualityAssurance::IComRpc::IComRpcInternal>();
842
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions>();
843
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::INotification>();
844
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestLegacy>();
845
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestLegacy::INotification>();
846
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestKeep>();
847
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestKeep::INotification>();
848
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestCustom>();
849
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestCustom::INotification>();
850
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestUtils>();
851
+ }
852
+ } ProxyStubRegistration;
853
+
854
+ } // namespace
855
+
856
+ } // namespace ProxyStubs
857
+
858
+ }
generated/generated/Debug/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestController.cpp ADDED
@@ -0,0 +1,865 @@
1
+ //
2
+ // generated automatically from "ITestController.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class QualityAssurance::ITestController
6
+ // - class QualityAssurance::ITestController::ITest
7
+ // - class QualityAssurance::ITestController::ITest::IIterator
8
+ // - class QualityAssurance::ITestController::ICategory
9
+ // - class QualityAssurance::ITestController::ICategory::IIterator
10
+ //
11
+
12
+ #include "Module.h"
13
+ #include "ITestController.h"
14
+
15
+ #include <com/com.h>
16
+
17
+ namespace Thunder {
18
+
19
+ namespace ProxyStubs {
20
+
21
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
22
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
23
+
24
+ // -----------------------------------------------------------------
25
+ // STUBS
26
+ // -----------------------------------------------------------------
27
+
28
+ //
29
+ // QualityAssurance::ITestController interface stub definitions
30
+ //
31
+ // Methods:
32
+ // (0) virtual void Setup() = 0
33
+ // (1) virtual void TearDown() = 0
34
+ // (2) virtual QualityAssurance::ITestController::ICategory::IIterator* Categories() const = 0
35
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category(const string&) const = 0
36
+ //
37
+
38
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerStubMethods[] = {
39
+ // (0) virtual void Setup() = 0
40
+ //
41
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
42
+ QualityAssurance::ITestController* implementation = reinterpret_cast<QualityAssurance::ITestController*>(message->Parameters().Implementation());
43
+ ASSERT(implementation != nullptr);
44
+
45
+ implementation->Setup();
46
+ },
47
+
48
+ // (1) virtual void TearDown() = 0
49
+ //
50
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
51
+ QualityAssurance::ITestController* implementation = reinterpret_cast<QualityAssurance::ITestController*>(message->Parameters().Implementation());
52
+ ASSERT(implementation != nullptr);
53
+
54
+ implementation->TearDown();
55
+ },
56
+
57
+ // (2) virtual QualityAssurance::ITestController::ICategory::IIterator* Categories() const = 0
58
+ //
59
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
60
+ const QualityAssurance::ITestController* implementation = reinterpret_cast<const QualityAssurance::ITestController*>(message->Parameters().Implementation());
61
+ ASSERT(implementation != nullptr);
62
+
63
+ QualityAssurance::ITestController::ICategory::IIterator* result = implementation->Categories();
64
+
65
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
66
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
67
+
68
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
69
+ },
70
+
71
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category(const string&) const = 0
72
+ //
73
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
74
+ const QualityAssurance::ITestController* implementation = reinterpret_cast<const QualityAssurance::ITestController*>(message->Parameters().Implementation());
75
+ ASSERT(implementation != nullptr);
76
+
77
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
78
+ const string _category = reader.Text();
79
+
80
+ QualityAssurance::ITestController::ICategory* result = implementation->Category(static_cast<const string&>(_category));
81
+
82
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
83
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
84
+
85
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
86
+ }
87
+ , nullptr
88
+ }; // QualityAssuranceTestControllerStubMethods
89
+
90
+ //
91
+ // QualityAssurance::ITestController::ITest interface stub definitions
92
+ //
93
+ // Methods:
94
+ // (0) virtual string Execute(const string&) = 0
95
+ // (1) virtual string Description() const = 0
96
+ // (2) virtual string Name() const = 0
97
+ //
98
+
99
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerTestStubMethods[] = {
100
+ // (0) virtual string Execute(const string&) = 0
101
+ //
102
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
103
+ QualityAssurance::ITestController::ITest* implementation = reinterpret_cast<QualityAssurance::ITestController::ITest*>(message->Parameters().Implementation());
104
+ ASSERT(implementation != nullptr);
105
+
106
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
107
+ const string _params = reader.Text();
108
+
109
+ string result = implementation->Execute(static_cast<const string&>(_params));
110
+
111
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
112
+ writer.Text(result);
113
+ },
114
+
115
+ // (1) virtual string Description() const = 0
116
+ //
117
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
118
+ const QualityAssurance::ITestController::ITest* implementation = reinterpret_cast<const QualityAssurance::ITestController::ITest*>(message->Parameters().Implementation());
119
+ ASSERT(implementation != nullptr);
120
+
121
+ string result = implementation->Description();
122
+
123
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
124
+ writer.Text(result);
125
+ },
126
+
127
+ // (2) virtual string Name() const = 0
128
+ //
129
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
130
+ const QualityAssurance::ITestController::ITest* implementation = reinterpret_cast<const QualityAssurance::ITestController::ITest*>(message->Parameters().Implementation());
131
+ ASSERT(implementation != nullptr);
132
+
133
+ string result = implementation->Name();
134
+
135
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
136
+ writer.Text(result);
137
+ }
138
+ , nullptr
139
+ }; // QualityAssuranceTestControllerTestStubMethods
140
+
141
+ //
142
+ // QualityAssurance::ITestController::ITest::IIterator interface stub definitions
143
+ //
144
+ // Methods:
145
+ // (0) virtual void Reset() = 0
146
+ // (1) virtual bool IsValid() const = 0
147
+ // (2) virtual bool Next() = 0
148
+ // (3) virtual QualityAssurance::ITestController::ITest* Test() const = 0
149
+ //
150
+
151
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerTestIteratorStubMethods[] = {
152
+ // (0) virtual void Reset() = 0
153
+ //
154
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
155
+ QualityAssurance::ITestController::ITest::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestController::ITest::IIterator*>(message->Parameters().Implementation());
156
+ ASSERT(implementation != nullptr);
157
+
158
+ implementation->Reset();
159
+ },
160
+
161
+ // (1) virtual bool IsValid() const = 0
162
+ //
163
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
164
+ const QualityAssurance::ITestController::ITest::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestController::ITest::IIterator*>(message->Parameters().Implementation());
165
+ ASSERT(implementation != nullptr);
166
+
167
+ bool result = implementation->IsValid();
168
+
169
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
170
+ writer.Boolean(result);
171
+ },
172
+
173
+ // (2) virtual bool Next() = 0
174
+ //
175
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
176
+ QualityAssurance::ITestController::ITest::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestController::ITest::IIterator*>(message->Parameters().Implementation());
177
+ ASSERT(implementation != nullptr);
178
+
179
+ bool result = implementation->Next();
180
+
181
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
182
+ writer.Boolean(result);
183
+ },
184
+
185
+ // (3) virtual QualityAssurance::ITestController::ITest* Test() const = 0
186
+ //
187
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
188
+ const QualityAssurance::ITestController::ITest::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestController::ITest::IIterator*>(message->Parameters().Implementation());
189
+ ASSERT(implementation != nullptr);
190
+
191
+ QualityAssurance::ITestController::ITest* result = implementation->Test();
192
+
193
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
194
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
195
+
196
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
197
+ }
198
+ , nullptr
199
+ }; // QualityAssuranceTestControllerTestIteratorStubMethods
200
+
201
+ //
202
+ // QualityAssurance::ITestController::ICategory interface stub definitions
203
+ //
204
+ // Methods:
205
+ // (0) virtual string Name() const = 0
206
+ // (1) virtual void Setup() = 0
207
+ // (2) virtual void TearDown() = 0
208
+ // (3) virtual void Register(QualityAssurance::ITestController::ITest*) = 0
209
+ // (4) virtual void Unregister(QualityAssurance::ITestController::ITest*) = 0
210
+ // (5) virtual QualityAssurance::ITestController::ITest::IIterator* Tests() const = 0
211
+ // (6) virtual QualityAssurance::ITestController::ITest* Test(const string&) const = 0
212
+ //
213
+
214
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerCategoryStubMethods[] = {
215
+ // (0) virtual string Name() const = 0
216
+ //
217
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
218
+ const QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
219
+ ASSERT(implementation != nullptr);
220
+
221
+ string result = implementation->Name();
222
+
223
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
224
+ writer.Text(result);
225
+ },
226
+
227
+ // (1) virtual void Setup() = 0
228
+ //
229
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
230
+ QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
231
+ ASSERT(implementation != nullptr);
232
+
233
+ implementation->Setup();
234
+ },
235
+
236
+ // (2) virtual void TearDown() = 0
237
+ //
238
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
239
+ QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
240
+ ASSERT(implementation != nullptr);
241
+
242
+ implementation->TearDown();
243
+ },
244
+
245
+ // (3) virtual void Register(QualityAssurance::ITestController::ITest*) = 0
246
+ //
247
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
248
+ QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
249
+ ASSERT(implementation != nullptr);
250
+
251
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
252
+ Core::instance_id _testInstanceId__ = reader.Number<Core::instance_id>();
253
+
254
+ QualityAssurance::ITestController::ITest* _test{};
255
+ ProxyStub::UnknownProxy* _testProxy__ = nullptr;
256
+ if (_testInstanceId__ != 0) {
257
+ _testProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _testInstanceId__, false, _test);
258
+ ASSERT((_test != nullptr) && (_testProxy__ != nullptr));
259
+ }
260
+
261
+ implementation->Register(_test);
262
+
263
+ if (_testProxy__ != nullptr) {
264
+ RPC::Administrator::Instance().Release(_testProxy__, message->Response());
265
+ }
266
+ },
267
+
268
+ // (4) virtual void Unregister(QualityAssurance::ITestController::ITest*) = 0
269
+ //
270
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
271
+ QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
272
+ ASSERT(implementation != nullptr);
273
+
274
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
275
+ Core::instance_id _testInstanceId__ = reader.Number<Core::instance_id>();
276
+
277
+ QualityAssurance::ITestController::ITest* _test{};
278
+ ProxyStub::UnknownProxy* _testProxy__ = nullptr;
279
+ if (_testInstanceId__ != 0) {
280
+ _testProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _testInstanceId__, false, _test);
281
+ ASSERT((_test != nullptr) && (_testProxy__ != nullptr));
282
+ }
283
+
284
+ implementation->Unregister(_test);
285
+
286
+ if (_testProxy__ != nullptr) {
287
+ RPC::Administrator::Instance().Release(_testProxy__, message->Response());
288
+ }
289
+ },
290
+
291
+ // (5) virtual QualityAssurance::ITestController::ITest::IIterator* Tests() const = 0
292
+ //
293
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
294
+ const QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
295
+ ASSERT(implementation != nullptr);
296
+
297
+ QualityAssurance::ITestController::ITest::IIterator* result = implementation->Tests();
298
+
299
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
300
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
301
+
302
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
303
+ },
304
+
305
+ // (6) virtual QualityAssurance::ITestController::ITest* Test(const string&) const = 0
306
+ //
307
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
308
+ const QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
309
+ ASSERT(implementation != nullptr);
310
+
311
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
312
+ const string _name = reader.Text();
313
+
314
+ QualityAssurance::ITestController::ITest* result = implementation->Test(static_cast<const string&>(_name));
315
+
316
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
317
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
318
+
319
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
320
+ }
321
+ , nullptr
322
+ }; // QualityAssuranceTestControllerCategoryStubMethods
323
+
324
+ //
325
+ // QualityAssurance::ITestController::ICategory::IIterator interface stub definitions
326
+ //
327
+ // Methods:
328
+ // (0) virtual void Reset() = 0
329
+ // (1) virtual bool IsValid() const = 0
330
+ // (2) virtual bool Next() = 0
331
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category() const = 0
332
+ //
333
+
334
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerCategoryIteratorStubMethods[] = {
335
+ // (0) virtual void Reset() = 0
336
+ //
337
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
338
+ QualityAssurance::ITestController::ICategory::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory::IIterator*>(message->Parameters().Implementation());
339
+ ASSERT(implementation != nullptr);
340
+
341
+ implementation->Reset();
342
+ },
343
+
344
+ // (1) virtual bool IsValid() const = 0
345
+ //
346
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
347
+ const QualityAssurance::ITestController::ICategory::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory::IIterator*>(message->Parameters().Implementation());
348
+ ASSERT(implementation != nullptr);
349
+
350
+ bool result = implementation->IsValid();
351
+
352
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
353
+ writer.Boolean(result);
354
+ },
355
+
356
+ // (2) virtual bool Next() = 0
357
+ //
358
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
359
+ QualityAssurance::ITestController::ICategory::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory::IIterator*>(message->Parameters().Implementation());
360
+ ASSERT(implementation != nullptr);
361
+
362
+ bool result = implementation->Next();
363
+
364
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
365
+ writer.Boolean(result);
366
+ },
367
+
368
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category() const = 0
369
+ //
370
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
371
+ const QualityAssurance::ITestController::ICategory::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory::IIterator*>(message->Parameters().Implementation());
372
+ ASSERT(implementation != nullptr);
373
+
374
+ QualityAssurance::ITestController::ICategory* result = implementation->Category();
375
+
376
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
377
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
378
+
379
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
380
+ }
381
+ , nullptr
382
+ }; // QualityAssuranceTestControllerCategoryIteratorStubMethods
383
+
384
+ // -----------------------------------------------------------------
385
+ // PROXIES
386
+ // -----------------------------------------------------------------
387
+
388
+ //
389
+ // QualityAssurance::ITestController interface proxy definitions
390
+ //
391
+ // Methods:
392
+ // (0) virtual void Setup() = 0
393
+ // (1) virtual void TearDown() = 0
394
+ // (2) virtual QualityAssurance::ITestController::ICategory::IIterator* Categories() const = 0
395
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category(const string&) const = 0
396
+ //
397
+
398
+ class QualityAssuranceTestControllerProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController> {
399
+ public:
400
+ QualityAssuranceTestControllerProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
401
+ : BaseClass(channel, implementation, otherSideInformed)
402
+ {
403
+ }
404
+
405
+ void Setup() override
406
+ {
407
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
408
+
409
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
410
+ }
411
+
412
+ void TearDown() override
413
+ {
414
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
415
+
416
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
417
+ }
418
+
419
+ QualityAssurance::ITestController::ICategory::IIterator* Categories() const override
420
+ {
421
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
422
+
423
+ QualityAssurance::ITestController::ICategory::IIterator* result{};
424
+
425
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
426
+ if (hresult == Core::ERROR_NONE) {
427
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
428
+ result = reinterpret_cast<QualityAssurance::ITestController::ICategory::IIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ICategory::IIterator::ID));
429
+ } else {
430
+ ASSERT((hresult & COM_ERROR) != 0);
431
+ }
432
+
433
+ return (result);
434
+ }
435
+
436
+ QualityAssurance::ITestController::ICategory* Category(const string& _category) const override
437
+ {
438
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
439
+
440
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
441
+ writer.Text(_category);
442
+
443
+ QualityAssurance::ITestController::ICategory* result{};
444
+
445
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
446
+ if (hresult == Core::ERROR_NONE) {
447
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
448
+ result = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ICategory::ID));
449
+ } else {
450
+ ASSERT((hresult & COM_ERROR) != 0);
451
+ }
452
+
453
+ return (result);
454
+ }
455
+
456
+ }; // class QualityAssuranceTestControllerProxy
457
+
458
+ //
459
+ // QualityAssurance::ITestController::ITest interface proxy definitions
460
+ //
461
+ // Methods:
462
+ // (0) virtual string Execute(const string&) = 0
463
+ // (1) virtual string Description() const = 0
464
+ // (2) virtual string Name() const = 0
465
+ //
466
+
467
+ class QualityAssuranceTestControllerTestProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController::ITest> {
468
+ public:
469
+ QualityAssuranceTestControllerTestProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
470
+ : BaseClass(channel, implementation, otherSideInformed)
471
+ {
472
+ }
473
+
474
+ string Execute(const string& _params) override
475
+ {
476
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
477
+
478
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
479
+ writer.Text(_params);
480
+
481
+ string result{};
482
+
483
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
484
+ if (hresult == Core::ERROR_NONE) {
485
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
486
+ result = reader.Text();
487
+ } else {
488
+ ASSERT((hresult & COM_ERROR) != 0);
489
+ }
490
+
491
+ return (result);
492
+ }
493
+
494
+ string Description() const override
495
+ {
496
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
497
+
498
+ string result{};
499
+
500
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
501
+ if (hresult == Core::ERROR_NONE) {
502
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
503
+ result = reader.Text();
504
+ } else {
505
+ ASSERT((hresult & COM_ERROR) != 0);
506
+ }
507
+
508
+ return (result);
509
+ }
510
+
511
+ string Name() const override
512
+ {
513
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
514
+
515
+ string result{};
516
+
517
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
518
+ if (hresult == Core::ERROR_NONE) {
519
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
520
+ result = reader.Text();
521
+ } else {
522
+ ASSERT((hresult & COM_ERROR) != 0);
523
+ }
524
+
525
+ return (result);
526
+ }
527
+
528
+ }; // class QualityAssuranceTestControllerTestProxy
529
+
530
+ //
531
+ // QualityAssurance::ITestController::ITest::IIterator interface proxy definitions
532
+ //
533
+ // Methods:
534
+ // (0) virtual void Reset() = 0
535
+ // (1) virtual bool IsValid() const = 0
536
+ // (2) virtual bool Next() = 0
537
+ // (3) virtual QualityAssurance::ITestController::ITest* Test() const = 0
538
+ //
539
+
540
+ class QualityAssuranceTestControllerTestIteratorProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController::ITest::IIterator> {
541
+ public:
542
+ QualityAssuranceTestControllerTestIteratorProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
543
+ : BaseClass(channel, implementation, otherSideInformed)
544
+ {
545
+ }
546
+
547
+ void Reset() override
548
+ {
549
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
550
+
551
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
552
+ }
553
+
554
+ bool IsValid() const override
555
+ {
556
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
557
+
558
+ bool result{};
559
+
560
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
561
+ if (hresult == Core::ERROR_NONE) {
562
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
563
+ result = reader.Boolean();
564
+ } else {
565
+ ASSERT((hresult & COM_ERROR) != 0);
566
+ }
567
+
568
+ return (result);
569
+ }
570
+
571
+ bool Next() override
572
+ {
573
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
574
+
575
+ bool result{};
576
+
577
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
578
+ if (hresult == Core::ERROR_NONE) {
579
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
580
+ result = reader.Boolean();
581
+ } else {
582
+ ASSERT((hresult & COM_ERROR) != 0);
583
+ }
584
+
585
+ return (result);
586
+ }
587
+
588
+ QualityAssurance::ITestController::ITest* Test() const override
589
+ {
590
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
591
+
592
+ QualityAssurance::ITestController::ITest* result{};
593
+
594
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
595
+ if (hresult == Core::ERROR_NONE) {
596
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
597
+ result = reinterpret_cast<QualityAssurance::ITestController::ITest*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ITest::ID));
598
+ } else {
599
+ ASSERT((hresult & COM_ERROR) != 0);
600
+ }
601
+
602
+ return (result);
603
+ }
604
+
605
+ }; // class QualityAssuranceTestControllerTestIteratorProxy
606
+
607
+ //
608
+ // QualityAssurance::ITestController::ICategory interface proxy definitions
609
+ //
610
+ // Methods:
611
+ // (0) virtual string Name() const = 0
612
+ // (1) virtual void Setup() = 0
613
+ // (2) virtual void TearDown() = 0
614
+ // (3) virtual void Register(QualityAssurance::ITestController::ITest*) = 0
615
+ // (4) virtual void Unregister(QualityAssurance::ITestController::ITest*) = 0
616
+ // (5) virtual QualityAssurance::ITestController::ITest::IIterator* Tests() const = 0
617
+ // (6) virtual QualityAssurance::ITestController::ITest* Test(const string&) const = 0
618
+ //
619
+
620
+ class QualityAssuranceTestControllerCategoryProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController::ICategory> {
621
+ public:
622
+ QualityAssuranceTestControllerCategoryProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
623
+ : BaseClass(channel, implementation, otherSideInformed)
624
+ {
625
+ }
626
+
627
+ string Name() const override
628
+ {
629
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
630
+
631
+ string result{};
632
+
633
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
634
+ if (hresult == Core::ERROR_NONE) {
635
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
636
+ result = reader.Text();
637
+ } else {
638
+ ASSERT((hresult & COM_ERROR) != 0);
639
+ }
640
+
641
+ return (result);
642
+ }
643
+
644
+ void Setup() override
645
+ {
646
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
647
+
648
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
649
+ }
650
+
651
+ void TearDown() override
652
+ {
653
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
654
+
655
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
656
+ }
657
+
658
+ void Register(QualityAssurance::ITestController::ITest* _test) override
659
+ {
660
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
661
+
662
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
663
+ writer.Number<Core::instance_id>(RPC::instance_cast(_test));
664
+
665
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
666
+ if (hresult == Core::ERROR_NONE) {
667
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
668
+
669
+ _Complete(reader);
670
+ } else {
671
+ ASSERT((hresult & COM_ERROR) != 0);
672
+ }
673
+ }
674
+
675
+ void Unregister(QualityAssurance::ITestController::ITest* _test) override
676
+ {
677
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
678
+
679
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
680
+ writer.Number<Core::instance_id>(RPC::instance_cast(_test));
681
+
682
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
683
+ if (hresult == Core::ERROR_NONE) {
684
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
685
+
686
+ _Complete(reader);
687
+ } else {
688
+ ASSERT((hresult & COM_ERROR) != 0);
689
+ }
690
+ }
691
+
692
+ QualityAssurance::ITestController::ITest::IIterator* Tests() const override
693
+ {
694
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
695
+
696
+ QualityAssurance::ITestController::ITest::IIterator* result{};
697
+
698
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
699
+ if (hresult == Core::ERROR_NONE) {
700
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
701
+ result = reinterpret_cast<QualityAssurance::ITestController::ITest::IIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ITest::IIterator::ID));
702
+ } else {
703
+ ASSERT((hresult & COM_ERROR) != 0);
704
+ }
705
+
706
+ return (result);
707
+ }
708
+
709
+ QualityAssurance::ITestController::ITest* Test(const string& _name) const override
710
+ {
711
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(6));
712
+
713
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
714
+ writer.Text(_name);
715
+
716
+ QualityAssurance::ITestController::ITest* result{};
717
+
718
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
719
+ if (hresult == Core::ERROR_NONE) {
720
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
721
+ result = reinterpret_cast<QualityAssurance::ITestController::ITest*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ITest::ID));
722
+ } else {
723
+ ASSERT((hresult & COM_ERROR) != 0);
724
+ }
725
+
726
+ return (result);
727
+ }
728
+
729
+ private:
730
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
731
+ {
732
+ uint32_t result = Core::ERROR_NONE;
733
+
734
+ while (reader.HasData() == true) {
735
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
736
+ ASSERT(implementation != 0);
737
+
738
+ const uint32_t id = reader.Number<uint32_t>();
739
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
740
+
741
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
742
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
743
+ }
744
+
745
+ return (result);
746
+ }
747
+
748
+ }; // class QualityAssuranceTestControllerCategoryProxy
749
+
750
+ //
751
+ // QualityAssurance::ITestController::ICategory::IIterator interface proxy definitions
752
+ //
753
+ // Methods:
754
+ // (0) virtual void Reset() = 0
755
+ // (1) virtual bool IsValid() const = 0
756
+ // (2) virtual bool Next() = 0
757
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category() const = 0
758
+ //
759
+
760
+ class QualityAssuranceTestControllerCategoryIteratorProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController::ICategory::IIterator> {
761
+ public:
762
+ QualityAssuranceTestControllerCategoryIteratorProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
763
+ : BaseClass(channel, implementation, otherSideInformed)
764
+ {
765
+ }
766
+
767
+ void Reset() override
768
+ {
769
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
770
+
771
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
772
+ }
773
+
774
+ bool IsValid() const override
775
+ {
776
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
777
+
778
+ bool result{};
779
+
780
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
781
+ if (hresult == Core::ERROR_NONE) {
782
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
783
+ result = reader.Boolean();
784
+ } else {
785
+ ASSERT((hresult & COM_ERROR) != 0);
786
+ }
787
+
788
+ return (result);
789
+ }
790
+
791
+ bool Next() override
792
+ {
793
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
794
+
795
+ bool result{};
796
+
797
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
798
+ if (hresult == Core::ERROR_NONE) {
799
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
800
+ result = reader.Boolean();
801
+ } else {
802
+ ASSERT((hresult & COM_ERROR) != 0);
803
+ }
804
+
805
+ return (result);
806
+ }
807
+
808
+ QualityAssurance::ITestController::ICategory* Category() const override
809
+ {
810
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
811
+
812
+ QualityAssurance::ITestController::ICategory* result{};
813
+
814
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
815
+ if (hresult == Core::ERROR_NONE) {
816
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
817
+ result = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ICategory::ID));
818
+ } else {
819
+ ASSERT((hresult & COM_ERROR) != 0);
820
+ }
821
+
822
+ return (result);
823
+ }
824
+
825
+ }; // class QualityAssuranceTestControllerCategoryIteratorProxy
826
+
827
+ POP_WARNING()
828
+ POP_WARNING()
829
+
830
+ // -----------------------------------------------------------------
831
+ // REGISTRATION
832
+ // -----------------------------------------------------------------
833
+ namespace {
834
+
835
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController, QualityAssuranceTestControllerStubMethods> QualityAssuranceTestControllerStub;
836
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController::ITest, QualityAssuranceTestControllerTestStubMethods> QualityAssuranceTestControllerTestStub;
837
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController::ITest::IIterator, QualityAssuranceTestControllerTestIteratorStubMethods> QualityAssuranceTestControllerTestIteratorStub;
838
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController::ICategory, QualityAssuranceTestControllerCategoryStubMethods> QualityAssuranceTestControllerCategoryStub;
839
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController::ICategory::IIterator, QualityAssuranceTestControllerCategoryIteratorStubMethods> QualityAssuranceTestControllerCategoryIteratorStub;
840
+
841
+ static class Instantiation {
842
+ public:
843
+ Instantiation()
844
+ {
845
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController, QualityAssuranceTestControllerProxy, QualityAssuranceTestControllerStub>();
846
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController::ITest, QualityAssuranceTestControllerTestProxy, QualityAssuranceTestControllerTestStub>();
847
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController::ITest::IIterator, QualityAssuranceTestControllerTestIteratorProxy, QualityAssuranceTestControllerTestIteratorStub>();
848
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController::ICategory, QualityAssuranceTestControllerCategoryProxy, QualityAssuranceTestControllerCategoryStub>();
849
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController::ICategory::IIterator, QualityAssuranceTestControllerCategoryIteratorProxy, QualityAssuranceTestControllerCategoryIteratorStub>();
850
+ }
851
+ ~Instantiation()
852
+ {
853
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController>();
854
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController::ITest>();
855
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController::ITest::IIterator>();
856
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController::ICategory>();
857
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController::ICategory::IIterator>();
858
+ }
859
+ } ProxyStubRegistration;
860
+
861
+ } // namespace
862
+
863
+ } // namespace ProxyStubs
864
+
865
+ }
generated/generated/Debug/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestUtility.cpp ADDED
@@ -0,0 +1,486 @@
1
+ //
2
+ // generated automatically from "ITestUtility.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class QualityAssurance::ITestUtility
6
+ // - class QualityAssurance::ITestUtility::ICommand
7
+ // - class QualityAssurance::ITestUtility::ICommand::IIterator
8
+ //
9
+
10
+ #include "Module.h"
11
+ #include "ITestUtility.h"
12
+
13
+ #include <com/com.h>
14
+
15
+ namespace Thunder {
16
+
17
+ namespace ProxyStubs {
18
+
19
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
20
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
21
+
22
+ // -----------------------------------------------------------------
23
+ // STUBS
24
+ // -----------------------------------------------------------------
25
+
26
+ //
27
+ // QualityAssurance::ITestUtility interface stub definitions
28
+ //
29
+ // Methods:
30
+ // (0) virtual QualityAssurance::ITestUtility::ICommand::IIterator* Commands() const = 0
31
+ // (1) virtual QualityAssurance::ITestUtility::ICommand* Command(const string&) const = 0
32
+ // (2) virtual uint32_t ShutdownTimeout(const uint32_t) = 0
33
+ //
34
+
35
+ static ProxyStub::MethodHandler QualityAssuranceTestUtilityStubMethods[] = {
36
+ // (0) virtual QualityAssurance::ITestUtility::ICommand::IIterator* Commands() const = 0
37
+ //
38
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
39
+ const QualityAssurance::ITestUtility* implementation = reinterpret_cast<const QualityAssurance::ITestUtility*>(message->Parameters().Implementation());
40
+ ASSERT(implementation != nullptr);
41
+
42
+ QualityAssurance::ITestUtility::ICommand::IIterator* result = implementation->Commands();
43
+
44
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
45
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
46
+
47
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
48
+ },
49
+
50
+ // (1) virtual QualityAssurance::ITestUtility::ICommand* Command(const string&) const = 0
51
+ //
52
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
53
+ const QualityAssurance::ITestUtility* implementation = reinterpret_cast<const QualityAssurance::ITestUtility*>(message->Parameters().Implementation());
54
+ ASSERT(implementation != nullptr);
55
+
56
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
57
+ const string _name = reader.Text();
58
+
59
+ QualityAssurance::ITestUtility::ICommand* result = implementation->Command(static_cast<const string&>(_name));
60
+
61
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
62
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
63
+
64
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
65
+ },
66
+
67
+ // (2) virtual uint32_t ShutdownTimeout(const uint32_t) = 0
68
+ //
69
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
70
+ QualityAssurance::ITestUtility* implementation = reinterpret_cast<QualityAssurance::ITestUtility*>(message->Parameters().Implementation());
71
+ ASSERT(implementation != nullptr);
72
+
73
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
74
+ const uint32_t _timeout = reader.Number<uint32_t>();
75
+
76
+ uint32_t result = implementation->ShutdownTimeout(_timeout);
77
+
78
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
79
+ writer.Number<uint32_t>(result);
80
+ }
81
+ , nullptr
82
+ }; // QualityAssuranceTestUtilityStubMethods
83
+
84
+ //
85
+ // QualityAssurance::ITestUtility::ICommand interface stub definitions
86
+ //
87
+ // Methods:
88
+ // (0) virtual string Execute(const string&) = 0
89
+ // (1) virtual string Description() const = 0
90
+ // (2) virtual string Signature() const = 0
91
+ // (3) virtual string Name() const = 0
92
+ //
93
+
94
+ static ProxyStub::MethodHandler QualityAssuranceTestUtilityCommandStubMethods[] = {
95
+ // (0) virtual string Execute(const string&) = 0
96
+ //
97
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
98
+ QualityAssurance::ITestUtility::ICommand* implementation = reinterpret_cast<QualityAssurance::ITestUtility::ICommand*>(message->Parameters().Implementation());
99
+ ASSERT(implementation != nullptr);
100
+
101
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
102
+ const string _params = reader.Text();
103
+
104
+ string result = implementation->Execute(static_cast<const string&>(_params));
105
+
106
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
107
+ writer.Text(result);
108
+ },
109
+
110
+ // (1) virtual string Description() const = 0
111
+ //
112
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
113
+ const QualityAssurance::ITestUtility::ICommand* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand*>(message->Parameters().Implementation());
114
+ ASSERT(implementation != nullptr);
115
+
116
+ string result = implementation->Description();
117
+
118
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
119
+ writer.Text(result);
120
+ },
121
+
122
+ // (2) virtual string Signature() const = 0
123
+ //
124
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
125
+ const QualityAssurance::ITestUtility::ICommand* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand*>(message->Parameters().Implementation());
126
+ ASSERT(implementation != nullptr);
127
+
128
+ string result = implementation->Signature();
129
+
130
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
131
+ writer.Text(result);
132
+ },
133
+
134
+ // (3) virtual string Name() const = 0
135
+ //
136
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
137
+ const QualityAssurance::ITestUtility::ICommand* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand*>(message->Parameters().Implementation());
138
+ ASSERT(implementation != nullptr);
139
+
140
+ string result = implementation->Name();
141
+
142
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
143
+ writer.Text(result);
144
+ }
145
+ , nullptr
146
+ }; // QualityAssuranceTestUtilityCommandStubMethods
147
+
148
+ //
149
+ // QualityAssurance::ITestUtility::ICommand::IIterator interface stub definitions
150
+ //
151
+ // Methods:
152
+ // (0) virtual void Reset() = 0
153
+ // (1) virtual bool IsValid() const = 0
154
+ // (2) virtual bool Next() = 0
155
+ // (3) virtual QualityAssurance::ITestUtility::ICommand* Command() const = 0
156
+ //
157
+
158
+ static ProxyStub::MethodHandler QualityAssuranceTestUtilityCommandIteratorStubMethods[] = {
159
+ // (0) virtual void Reset() = 0
160
+ //
161
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
162
+ QualityAssurance::ITestUtility::ICommand::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestUtility::ICommand::IIterator*>(message->Parameters().Implementation());
163
+ ASSERT(implementation != nullptr);
164
+
165
+ implementation->Reset();
166
+ },
167
+
168
+ // (1) virtual bool IsValid() const = 0
169
+ //
170
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
171
+ const QualityAssurance::ITestUtility::ICommand::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand::IIterator*>(message->Parameters().Implementation());
172
+ ASSERT(implementation != nullptr);
173
+
174
+ bool result = implementation->IsValid();
175
+
176
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
177
+ writer.Boolean(result);
178
+ },
179
+
180
+ // (2) virtual bool Next() = 0
181
+ //
182
+ [](Core::ProxyType<Core::IPCChannel>& /* channel */, Core::ProxyType<RPC::InvokeMessage>& message) {
183
+ QualityAssurance::ITestUtility::ICommand::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestUtility::ICommand::IIterator*>(message->Parameters().Implementation());
184
+ ASSERT(implementation != nullptr);
185
+
186
+ bool result = implementation->Next();
187
+
188
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
189
+ writer.Boolean(result);
190
+ },
191
+
192
+ // (3) virtual QualityAssurance::ITestUtility::ICommand* Command() const = 0
193
+ //
194
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
195
+ const QualityAssurance::ITestUtility::ICommand::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand::IIterator*>(message->Parameters().Implementation());
196
+ ASSERT(implementation != nullptr);
197
+
198
+ QualityAssurance::ITestUtility::ICommand* result = implementation->Command();
199
+
200
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
201
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
202
+
203
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
204
+ }
205
+ , nullptr
206
+ }; // QualityAssuranceTestUtilityCommandIteratorStubMethods
207
+
208
+ // -----------------------------------------------------------------
209
+ // PROXIES
210
+ // -----------------------------------------------------------------
211
+
212
+ //
213
+ // QualityAssurance::ITestUtility interface proxy definitions
214
+ //
215
+ // Methods:
216
+ // (0) virtual QualityAssurance::ITestUtility::ICommand::IIterator* Commands() const = 0
217
+ // (1) virtual QualityAssurance::ITestUtility::ICommand* Command(const string&) const = 0
218
+ // (2) virtual uint32_t ShutdownTimeout(const uint32_t) = 0
219
+ //
220
+
221
+ class QualityAssuranceTestUtilityProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestUtility> {
222
+ public:
223
+ QualityAssuranceTestUtilityProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
224
+ : BaseClass(channel, implementation, otherSideInformed)
225
+ {
226
+ }
227
+
228
+ QualityAssurance::ITestUtility::ICommand::IIterator* Commands() const override
229
+ {
230
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
231
+
232
+ QualityAssurance::ITestUtility::ICommand::IIterator* result{};
233
+
234
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
235
+ if (hresult == Core::ERROR_NONE) {
236
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
237
+ result = reinterpret_cast<QualityAssurance::ITestUtility::ICommand::IIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestUtility::ICommand::IIterator::ID));
238
+ } else {
239
+ ASSERT((hresult & COM_ERROR) != 0);
240
+ }
241
+
242
+ return (result);
243
+ }
244
+
245
+ QualityAssurance::ITestUtility::ICommand* Command(const string& _name) const override
246
+ {
247
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
248
+
249
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
250
+ writer.Text(_name);
251
+
252
+ QualityAssurance::ITestUtility::ICommand* result{};
253
+
254
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
255
+ if (hresult == Core::ERROR_NONE) {
256
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
257
+ result = reinterpret_cast<QualityAssurance::ITestUtility::ICommand*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestUtility::ICommand::ID));
258
+ } else {
259
+ ASSERT((hresult & COM_ERROR) != 0);
260
+ }
261
+
262
+ return (result);
263
+ }
264
+
265
+ uint32_t ShutdownTimeout(const uint32_t _timeout) override
266
+ {
267
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
268
+
269
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
270
+ writer.Number<uint32_t>(_timeout);
271
+
272
+ uint32_t result{};
273
+
274
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
275
+ if (hresult == Core::ERROR_NONE) {
276
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
277
+ result = reader.Number<uint32_t>();
278
+ } else {
279
+ ASSERT((hresult & COM_ERROR) != 0);
280
+ }
281
+
282
+ return (result);
283
+ }
284
+
285
+ }; // class QualityAssuranceTestUtilityProxy
286
+
287
+ //
288
+ // QualityAssurance::ITestUtility::ICommand interface proxy definitions
289
+ //
290
+ // Methods:
291
+ // (0) virtual string Execute(const string&) = 0
292
+ // (1) virtual string Description() const = 0
293
+ // (2) virtual string Signature() const = 0
294
+ // (3) virtual string Name() const = 0
295
+ //
296
+
297
+ class QualityAssuranceTestUtilityCommandProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestUtility::ICommand> {
298
+ public:
299
+ QualityAssuranceTestUtilityCommandProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
300
+ : BaseClass(channel, implementation, otherSideInformed)
301
+ {
302
+ }
303
+
304
+ string Execute(const string& _params) override
305
+ {
306
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
307
+
308
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
309
+ writer.Text(_params);
310
+
311
+ string result{};
312
+
313
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
314
+ if (hresult == Core::ERROR_NONE) {
315
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
316
+ result = reader.Text();
317
+ } else {
318
+ ASSERT((hresult & COM_ERROR) != 0);
319
+ }
320
+
321
+ return (result);
322
+ }
323
+
324
+ string Description() const override
325
+ {
326
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
327
+
328
+ string result{};
329
+
330
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
331
+ if (hresult == Core::ERROR_NONE) {
332
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
333
+ result = reader.Text();
334
+ } else {
335
+ ASSERT((hresult & COM_ERROR) != 0);
336
+ }
337
+
338
+ return (result);
339
+ }
340
+
341
+ string Signature() const override
342
+ {
343
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
344
+
345
+ string result{};
346
+
347
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
348
+ if (hresult == Core::ERROR_NONE) {
349
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
350
+ result = reader.Text();
351
+ } else {
352
+ ASSERT((hresult & COM_ERROR) != 0);
353
+ }
354
+
355
+ return (result);
356
+ }
357
+
358
+ string Name() const override
359
+ {
360
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
361
+
362
+ string result{};
363
+
364
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
365
+ if (hresult == Core::ERROR_NONE) {
366
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
367
+ result = reader.Text();
368
+ } else {
369
+ ASSERT((hresult & COM_ERROR) != 0);
370
+ }
371
+
372
+ return (result);
373
+ }
374
+
375
+ }; // class QualityAssuranceTestUtilityCommandProxy
376
+
377
+ //
378
+ // QualityAssurance::ITestUtility::ICommand::IIterator interface proxy definitions
379
+ //
380
+ // Methods:
381
+ // (0) virtual void Reset() = 0
382
+ // (1) virtual bool IsValid() const = 0
383
+ // (2) virtual bool Next() = 0
384
+ // (3) virtual QualityAssurance::ITestUtility::ICommand* Command() const = 0
385
+ //
386
+
387
+ class QualityAssuranceTestUtilityCommandIteratorProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestUtility::ICommand::IIterator> {
388
+ public:
389
+ QualityAssuranceTestUtilityCommandIteratorProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
390
+ : BaseClass(channel, implementation, otherSideInformed)
391
+ {
392
+ }
393
+
394
+ void Reset() override
395
+ {
396
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
397
+
398
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
399
+ }
400
+
401
+ bool IsValid() const override
402
+ {
403
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
404
+
405
+ bool result{};
406
+
407
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
408
+ if (hresult == Core::ERROR_NONE) {
409
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
410
+ result = reader.Boolean();
411
+ } else {
412
+ ASSERT((hresult & COM_ERROR) != 0);
413
+ }
414
+
415
+ return (result);
416
+ }
417
+
418
+ bool Next() override
419
+ {
420
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
421
+
422
+ bool result{};
423
+
424
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
425
+ if (hresult == Core::ERROR_NONE) {
426
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
427
+ result = reader.Boolean();
428
+ } else {
429
+ ASSERT((hresult & COM_ERROR) != 0);
430
+ }
431
+
432
+ return (result);
433
+ }
434
+
435
+ QualityAssurance::ITestUtility::ICommand* Command() const override
436
+ {
437
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
438
+
439
+ QualityAssurance::ITestUtility::ICommand* result{};
440
+
441
+ const Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
442
+ if (hresult == Core::ERROR_NONE) {
443
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
444
+ result = reinterpret_cast<QualityAssurance::ITestUtility::ICommand*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestUtility::ICommand::ID));
445
+ } else {
446
+ ASSERT((hresult & COM_ERROR) != 0);
447
+ }
448
+
449
+ return (result);
450
+ }
451
+
452
+ }; // class QualityAssuranceTestUtilityCommandIteratorProxy
453
+
454
+ POP_WARNING()
455
+ POP_WARNING()
456
+
457
+ // -----------------------------------------------------------------
458
+ // REGISTRATION
459
+ // -----------------------------------------------------------------
460
+ namespace {
461
+
462
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestUtility, QualityAssuranceTestUtilityStubMethods> QualityAssuranceTestUtilityStub;
463
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestUtility::ICommand, QualityAssuranceTestUtilityCommandStubMethods> QualityAssuranceTestUtilityCommandStub;
464
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestUtility::ICommand::IIterator, QualityAssuranceTestUtilityCommandIteratorStubMethods> QualityAssuranceTestUtilityCommandIteratorStub;
465
+
466
+ static class Instantiation {
467
+ public:
468
+ Instantiation()
469
+ {
470
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestUtility, QualityAssuranceTestUtilityProxy, QualityAssuranceTestUtilityStub>();
471
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestUtility::ICommand, QualityAssuranceTestUtilityCommandProxy, QualityAssuranceTestUtilityCommandStub>();
472
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestUtility::ICommand::IIterator, QualityAssuranceTestUtilityCommandIteratorProxy, QualityAssuranceTestUtilityCommandIteratorStub>();
473
+ }
474
+ ~Instantiation()
475
+ {
476
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestUtility>();
477
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestUtility::ICommand>();
478
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestUtility::ICommand::IIterator>();
479
+ }
480
+ } ProxyStubRegistration;
481
+
482
+ } // namespace
483
+
484
+ } // namespace ProxyStubs
485
+
486
+ }
generated/generated/Release/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_CustomErrorCode.cpp ADDED
@@ -0,0 +1,205 @@
1
+ //
2
+ // generated automatically from "ICustomErrorCode.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class Example::ICustomErrorCode
6
+ //
7
+ // secure code enabled:
8
+ // - instance verification enabled
9
+ // - range verification enabled
10
+ // - frame coherency verification enabled
11
+ //
12
+
13
+ #include "Module.h"
14
+ #include "ICustomErrorCode.h"
15
+
16
+ #include <com/com.h>
17
+
18
+ namespace Thunder {
19
+
20
+ namespace ProxyStubs {
21
+
22
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
23
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
24
+
25
+ // -----------------------------------------------------------------
26
+ // STUBS
27
+ // -----------------------------------------------------------------
28
+
29
+ //
30
+ // Example::ICustomErrorCode interface stub definitions
31
+ //
32
+ // Methods:
33
+ // (0) virtual Core::hresult TriggerCustomError(const int32_t) const = 0
34
+ // (1) virtual Core::hresult TriggerNonCustomError(const uint32_t) const = 0
35
+ //
36
+
37
+ static ProxyStub::MethodHandler ExampleCustomErrorCodeStubMethods[] = {
38
+ // (0) virtual Core::hresult TriggerCustomError(const int32_t) const = 0
39
+ //
40
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
41
+ Core::hresult hresult = Core::ERROR_NONE;
42
+
43
+ hresult = [&]() -> Core::hresult {
44
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
45
+
46
+ const Example::ICustomErrorCode* implementation = reinterpret_cast<const Example::ICustomErrorCode*>(message->Parameters().Implementation());
47
+ ASSERT(implementation != nullptr);
48
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ICustomErrorCode::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
49
+
50
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
51
+ if (reader.Length() < (Core::RealSize<int32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
52
+ const int32_t _errorcode = reader.Number<int32_t>();
53
+
54
+ Core::hresult result = implementation->TriggerCustomError(_errorcode);
55
+
56
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
57
+ writer.Number<Core::hresult>(result);
58
+
59
+ return (Core::ERROR_NONE);
60
+ } ();
61
+
62
+ if (hresult != Core::ERROR_NONE) {
63
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
64
+ writer.Number<uint32_t>(hresult);
65
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ICustomErrorCode::ID, 0, hresult);
66
+ }
67
+ },
68
+
69
+ // (1) virtual Core::hresult TriggerNonCustomError(const uint32_t) const = 0
70
+ //
71
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
72
+ Core::hresult hresult = Core::ERROR_NONE;
73
+
74
+ hresult = [&]() -> Core::hresult {
75
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
76
+
77
+ const Example::ICustomErrorCode* implementation = reinterpret_cast<const Example::ICustomErrorCode*>(message->Parameters().Implementation());
78
+ ASSERT(implementation != nullptr);
79
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ICustomErrorCode::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
80
+
81
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
82
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
83
+ const uint32_t _errorcode = reader.Number<uint32_t>();
84
+
85
+ Core::hresult result = implementation->TriggerNonCustomError(_errorcode);
86
+
87
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
88
+ writer.Number<Core::hresult>(result);
89
+
90
+ return (Core::ERROR_NONE);
91
+ } ();
92
+
93
+ if (hresult != Core::ERROR_NONE) {
94
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
95
+ writer.Number<uint32_t>(hresult);
96
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ICustomErrorCode::ID, 1, hresult);
97
+ }
98
+ }
99
+ , nullptr
100
+ }; // ExampleCustomErrorCodeStubMethods
101
+
102
+ // -----------------------------------------------------------------
103
+ // PROXIES
104
+ // -----------------------------------------------------------------
105
+
106
+ //
107
+ // Example::ICustomErrorCode interface proxy definitions
108
+ //
109
+ // Methods:
110
+ // (0) virtual Core::hresult TriggerCustomError(const int32_t) const = 0
111
+ // (1) virtual Core::hresult TriggerNonCustomError(const uint32_t) const = 0
112
+ //
113
+
114
+ class ExampleCustomErrorCodeProxy final : public ProxyStub::UnknownProxyType<Example::ICustomErrorCode> {
115
+ public:
116
+ ExampleCustomErrorCodeProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
117
+ : BaseClass(channel, implementation, otherSideInformed)
118
+ {
119
+ }
120
+
121
+ Core::hresult TriggerCustomError(const int32_t _errorcode) const override
122
+ {
123
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
124
+
125
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
126
+ writer.Number<int32_t>(_errorcode);
127
+
128
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
129
+ if (hresult == Core::ERROR_NONE) {
130
+ hresult = [&]() -> Core::hresult {
131
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
132
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
133
+ hresult = reader.Number<Core::hresult>();
134
+
135
+ return (hresult);
136
+ } ();
137
+ } else {
138
+ ASSERT((hresult & COM_ERROR) != 0);
139
+ }
140
+
141
+ if ((hresult & COM_ERROR) != 0) {
142
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ICustomErrorCode::ID, 0, hresult);
143
+ }
144
+
145
+ return (hresult);
146
+ }
147
+
148
+ Core::hresult TriggerNonCustomError(const uint32_t _errorcode) const override
149
+ {
150
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
151
+
152
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
153
+ writer.Number<uint32_t>(_errorcode);
154
+
155
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
156
+ if (hresult == Core::ERROR_NONE) {
157
+ hresult = [&]() -> Core::hresult {
158
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
159
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
160
+ hresult = reader.Number<Core::hresult>();
161
+
162
+ return (hresult);
163
+ } ();
164
+ } else {
165
+ ASSERT((hresult & COM_ERROR) != 0);
166
+ }
167
+
168
+ if ((hresult & COM_ERROR) != 0) {
169
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ICustomErrorCode::ID, 1, hresult);
170
+ }
171
+
172
+ return (hresult);
173
+ }
174
+
175
+ }; // class ExampleCustomErrorCodeProxy
176
+
177
+ POP_WARNING()
178
+ POP_WARNING()
179
+
180
+ // -----------------------------------------------------------------
181
+ // REGISTRATION
182
+ // -----------------------------------------------------------------
183
+ namespace {
184
+
185
+ typedef ProxyStub::UnknownStubType<Example::ICustomErrorCode, ExampleCustomErrorCodeStubMethods> ExampleCustomErrorCodeStub;
186
+
187
+ static class Instantiation {
188
+ public:
189
+ Instantiation()
190
+ {
191
+ const RPC::SecureProxyStubType security = static_cast<RPC::SecureProxyStubType>(static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_SECURE) | static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_COHERENT));
192
+
193
+ RPC::Administrator::Instance().Announce<Example::ICustomErrorCode, ExampleCustomErrorCodeProxy, ExampleCustomErrorCodeStub>(security);
194
+ }
195
+ ~Instantiation()
196
+ {
197
+ RPC::Administrator::Instance().Recall<Example::ICustomErrorCode>();
198
+ }
199
+ } ProxyStubRegistration;
200
+
201
+ } // namespace
202
+
203
+ } // namespace ProxyStubs
204
+
205
+ }
generated/generated/Release/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleAsync.cpp ADDED
@@ -0,0 +1,3882 @@
1
+ //
2
+ // generated automatically from "ISimpleAsync.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class RPC::IIteratorType<typename ELEMENT, const uint32_t INTERFACE_ID> [with ELEMENT = string, INTERFACE_ID = RPC::ID_STRINGITERATOR] [[iterator]]
6
+ // - class RPC::IIteratorType<typename ELEMENT, const uint32_t INTERFACE_ID> [with ELEMENT = uint32_t, INTERFACE_ID = RPC::ID_VALUEITERATOR] [[iterator]]
7
+ // - class RPC::IIteratorType<typename ELEMENT, const uint32_t INTERFACE_ID> [with ELEMENT = RPC::Environment, INTERFACE_ID = RPC::ID_ENVIRONMENTITERATOR] [[iterator]]
8
+ // - class Example::ISimpleAsync
9
+ // - class Example::ISimpleAsync::ICallback
10
+ // - class Example::ISimpleAsync::INotification
11
+ // - class Example::ISimpleAsync::IBindNotification
12
+ //
13
+ // secure code enabled:
14
+ // - instance verification enabled
15
+ // - range verification enabled
16
+ // - frame coherency verification enabled
17
+ //
18
+
19
+ #include "Module.h"
20
+ #include "ISimpleAsync.h"
21
+
22
+ #include <com/com.h>
23
+
24
+ namespace Thunder {
25
+
26
+ namespace ProxyStubs {
27
+
28
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
29
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
30
+
31
+ // -----------------------------------------------------------------
32
+ // STUBS
33
+ // -----------------------------------------------------------------
34
+
35
+ //
36
+ // RPC::IIteratorTypeInstance_bd6e04b8d151c1f7 interface stub definitions
37
+ //
38
+ // Methods:
39
+ // (0) virtual bool Next(string&) = 0
40
+ // (1) virtual bool Previous(string&) = 0
41
+ // (2) virtual void Reset(const uint32_t) = 0
42
+ // (3) virtual bool IsValid() const = 0
43
+ // (4) virtual uint32_t Count() const = 0
44
+ // (5) virtual string Current() const = 0
45
+ //
46
+
47
+ static ProxyStub::MethodHandler RPCIteratorTypeInstance_bd6e04b8d151c1f7StubMethods[] = {
48
+ // (0) virtual bool Next(string&) = 0
49
+ //
50
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
51
+ Core::hresult hresult = Core::ERROR_NONE;
52
+
53
+ hresult = [&]() -> Core::hresult {
54
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
55
+
56
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
57
+
58
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
59
+ ASSERT(implementation != nullptr);
60
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
61
+
62
+ string _info{};
63
+
64
+ bool result = implementation->Next(_info);
65
+
66
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
67
+ writer.Boolean(result);
68
+ writer.Text(_info);
69
+
70
+ return (Core::ERROR_NONE);
71
+ } ();
72
+
73
+ if (hresult != Core::ERROR_NONE) {
74
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 0, hresult);
75
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
76
+ }
77
+ },
78
+
79
+ // (1) virtual bool Previous(string&) = 0
80
+ //
81
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
82
+ Core::hresult hresult = Core::ERROR_NONE;
83
+
84
+ hresult = [&]() -> Core::hresult {
85
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
86
+
87
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
88
+
89
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
90
+ ASSERT(implementation != nullptr);
91
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
92
+
93
+ string _info{};
94
+
95
+ bool result = implementation->Previous(_info);
96
+
97
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
98
+ writer.Boolean(result);
99
+ writer.Text(_info);
100
+
101
+ return (Core::ERROR_NONE);
102
+ } ();
103
+
104
+ if (hresult != Core::ERROR_NONE) {
105
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 1, hresult);
106
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
107
+ }
108
+ },
109
+
110
+ // (2) virtual void Reset(const uint32_t) = 0
111
+ //
112
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
113
+ Core::hresult hresult = Core::ERROR_NONE;
114
+
115
+ hresult = [&]() -> Core::hresult {
116
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
117
+
118
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
119
+
120
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
121
+ ASSERT(implementation != nullptr);
122
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
123
+
124
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
125
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
126
+ const uint32_t _position = reader.Number<uint32_t>();
127
+
128
+ implementation->Reset(_position);
129
+
130
+ return (Core::ERROR_NONE);
131
+ } ();
132
+
133
+ if (hresult != Core::ERROR_NONE) {
134
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 2, hresult);
135
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
136
+ }
137
+ },
138
+
139
+ // (3) virtual bool IsValid() const = 0
140
+ //
141
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
142
+ Core::hresult hresult = Core::ERROR_NONE;
143
+
144
+ hresult = [&]() -> Core::hresult {
145
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
146
+
147
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
148
+
149
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
150
+ ASSERT(implementation != nullptr);
151
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
152
+
153
+ bool result = implementation->IsValid();
154
+
155
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
156
+ writer.Boolean(result);
157
+
158
+ return (Core::ERROR_NONE);
159
+ } ();
160
+
161
+ if (hresult != Core::ERROR_NONE) {
162
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 3, hresult);
163
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
164
+ }
165
+ },
166
+
167
+ // (4) virtual uint32_t Count() const = 0
168
+ //
169
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
170
+ Core::hresult hresult = Core::ERROR_NONE;
171
+
172
+ hresult = [&]() -> Core::hresult {
173
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
174
+
175
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
176
+
177
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
178
+ ASSERT(implementation != nullptr);
179
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
180
+
181
+ uint32_t result = implementation->Count();
182
+
183
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
184
+ writer.Number<uint32_t>(result);
185
+
186
+ return (Core::ERROR_NONE);
187
+ } ();
188
+
189
+ if (hresult != Core::ERROR_NONE) {
190
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 4, hresult);
191
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
192
+ }
193
+ },
194
+
195
+ // (5) virtual string Current() const = 0
196
+ //
197
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
198
+ Core::hresult hresult = Core::ERROR_NONE;
199
+
200
+ hresult = [&]() -> Core::hresult {
201
+ using interface = RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>;
202
+
203
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
204
+
205
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
206
+ ASSERT(implementation != nullptr);
207
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
208
+
209
+ string result = implementation->Current();
210
+
211
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
212
+ writer.Text(result);
213
+
214
+ return (Core::ERROR_NONE);
215
+ } ();
216
+
217
+ if (hresult != Core::ERROR_NONE) {
218
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 5, hresult);
219
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
220
+ }
221
+ }
222
+ , nullptr
223
+ }; // RPCIteratorTypeInstance_bd6e04b8d151c1f7StubMethods
224
+
225
+ //
226
+ // RPC::IIteratorTypeInstance_60eba5a793c685ea interface stub definitions
227
+ //
228
+ // Methods:
229
+ // (0) virtual bool Next(uint32_t&) = 0
230
+ // (1) virtual bool Previous(uint32_t&) = 0
231
+ // (2) virtual void Reset(const uint32_t) = 0
232
+ // (3) virtual bool IsValid() const = 0
233
+ // (4) virtual uint32_t Count() const = 0
234
+ // (5) virtual uint32_t Current() const = 0
235
+ //
236
+
237
+ static ProxyStub::MethodHandler RPCIteratorTypeInstance_60eba5a793c685eaStubMethods[] = {
238
+ // (0) virtual bool Next(uint32_t&) = 0
239
+ //
240
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
241
+ Core::hresult hresult = Core::ERROR_NONE;
242
+
243
+ hresult = [&]() -> Core::hresult {
244
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
245
+
246
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
247
+
248
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
249
+ ASSERT(implementation != nullptr);
250
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
251
+
252
+ uint32_t _info{};
253
+
254
+ bool result = implementation->Next(_info);
255
+
256
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
257
+ writer.Boolean(result);
258
+ writer.Number<uint32_t>(_info);
259
+
260
+ return (Core::ERROR_NONE);
261
+ } ();
262
+
263
+ if (hresult != Core::ERROR_NONE) {
264
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 0, hresult);
265
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
266
+ }
267
+ },
268
+
269
+ // (1) virtual bool Previous(uint32_t&) = 0
270
+ //
271
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
272
+ Core::hresult hresult = Core::ERROR_NONE;
273
+
274
+ hresult = [&]() -> Core::hresult {
275
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
276
+
277
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
278
+
279
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
280
+ ASSERT(implementation != nullptr);
281
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
282
+
283
+ uint32_t _info{};
284
+
285
+ bool result = implementation->Previous(_info);
286
+
287
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
288
+ writer.Boolean(result);
289
+ writer.Number<uint32_t>(_info);
290
+
291
+ return (Core::ERROR_NONE);
292
+ } ();
293
+
294
+ if (hresult != Core::ERROR_NONE) {
295
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 1, hresult);
296
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
297
+ }
298
+ },
299
+
300
+ // (2) virtual void Reset(const uint32_t) = 0
301
+ //
302
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
303
+ Core::hresult hresult = Core::ERROR_NONE;
304
+
305
+ hresult = [&]() -> Core::hresult {
306
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
307
+
308
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
309
+
310
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
311
+ ASSERT(implementation != nullptr);
312
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
313
+
314
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
315
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
316
+ const uint32_t _position = reader.Number<uint32_t>();
317
+
318
+ implementation->Reset(_position);
319
+
320
+ return (Core::ERROR_NONE);
321
+ } ();
322
+
323
+ if (hresult != Core::ERROR_NONE) {
324
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 2, hresult);
325
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
326
+ }
327
+ },
328
+
329
+ // (3) virtual bool IsValid() const = 0
330
+ //
331
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
332
+ Core::hresult hresult = Core::ERROR_NONE;
333
+
334
+ hresult = [&]() -> Core::hresult {
335
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
336
+
337
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
338
+
339
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
340
+ ASSERT(implementation != nullptr);
341
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
342
+
343
+ bool result = implementation->IsValid();
344
+
345
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
346
+ writer.Boolean(result);
347
+
348
+ return (Core::ERROR_NONE);
349
+ } ();
350
+
351
+ if (hresult != Core::ERROR_NONE) {
352
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 3, hresult);
353
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
354
+ }
355
+ },
356
+
357
+ // (4) virtual uint32_t Count() const = 0
358
+ //
359
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
360
+ Core::hresult hresult = Core::ERROR_NONE;
361
+
362
+ hresult = [&]() -> Core::hresult {
363
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
364
+
365
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
366
+
367
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
368
+ ASSERT(implementation != nullptr);
369
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
370
+
371
+ uint32_t result = implementation->Count();
372
+
373
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
374
+ writer.Number<uint32_t>(result);
375
+
376
+ return (Core::ERROR_NONE);
377
+ } ();
378
+
379
+ if (hresult != Core::ERROR_NONE) {
380
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 4, hresult);
381
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
382
+ }
383
+ },
384
+
385
+ // (5) virtual uint32_t Current() const = 0
386
+ //
387
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
388
+ Core::hresult hresult = Core::ERROR_NONE;
389
+
390
+ hresult = [&]() -> Core::hresult {
391
+ using interface = RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>;
392
+
393
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
394
+
395
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
396
+ ASSERT(implementation != nullptr);
397
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
398
+
399
+ uint32_t result = implementation->Current();
400
+
401
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
402
+ writer.Number<uint32_t>(result);
403
+
404
+ return (Core::ERROR_NONE);
405
+ } ();
406
+
407
+ if (hresult != Core::ERROR_NONE) {
408
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 5, hresult);
409
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
410
+ }
411
+ }
412
+ , nullptr
413
+ }; // RPCIteratorTypeInstance_60eba5a793c685eaStubMethods
414
+
415
+ //
416
+ // RPC::IIteratorTypeInstance_195e88cf7f955a2e interface stub definitions
417
+ //
418
+ // Methods:
419
+ // (0) virtual bool Next(RPC::Environment&) = 0
420
+ // (1) virtual bool Previous(RPC::Environment&) = 0
421
+ // (2) virtual void Reset(const uint32_t) = 0
422
+ // (3) virtual bool IsValid() const = 0
423
+ // (4) virtual uint32_t Count() const = 0
424
+ // (5) virtual RPC::Environment Current() const = 0
425
+ //
426
+
427
+ static ProxyStub::MethodHandler RPCIteratorTypeInstance_195e88cf7f955a2eStubMethods[] = {
428
+ // (0) virtual bool Next(RPC::Environment&) = 0
429
+ //
430
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
431
+ Core::hresult hresult = Core::ERROR_NONE;
432
+
433
+ hresult = [&]() -> Core::hresult {
434
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
435
+
436
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
437
+
438
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
439
+ ASSERT(implementation != nullptr);
440
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
441
+
442
+ RPC::Environment _info{};
443
+
444
+ bool result = implementation->Next(_info);
445
+
446
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
447
+ writer.Boolean(result);
448
+ writer.Text(_info.Key);
449
+ writer.Text(_info.Value);
450
+ writer.Number<RPC::Environment::scope>(_info.Scope);
451
+
452
+ return (Core::ERROR_NONE);
453
+ } ();
454
+
455
+ if (hresult != Core::ERROR_NONE) {
456
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 0, hresult);
457
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
458
+ }
459
+ },
460
+
461
+ // (1) virtual bool Previous(RPC::Environment&) = 0
462
+ //
463
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
464
+ Core::hresult hresult = Core::ERROR_NONE;
465
+
466
+ hresult = [&]() -> Core::hresult {
467
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
468
+
469
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
470
+
471
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
472
+ ASSERT(implementation != nullptr);
473
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
474
+
475
+ RPC::Environment _info{};
476
+
477
+ bool result = implementation->Previous(_info);
478
+
479
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
480
+ writer.Boolean(result);
481
+ writer.Text(_info.Key);
482
+ writer.Text(_info.Value);
483
+ writer.Number<RPC::Environment::scope>(_info.Scope);
484
+
485
+ return (Core::ERROR_NONE);
486
+ } ();
487
+
488
+ if (hresult != Core::ERROR_NONE) {
489
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 1, hresult);
490
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
491
+ }
492
+ },
493
+
494
+ // (2) virtual void Reset(const uint32_t) = 0
495
+ //
496
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
497
+ Core::hresult hresult = Core::ERROR_NONE;
498
+
499
+ hresult = [&]() -> Core::hresult {
500
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
501
+
502
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
503
+
504
+ interface* implementation = reinterpret_cast<interface*>(message->Parameters().Implementation());
505
+ ASSERT(implementation != nullptr);
506
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
507
+
508
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
509
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
510
+ const uint32_t _position = reader.Number<uint32_t>();
511
+
512
+ implementation->Reset(_position);
513
+
514
+ return (Core::ERROR_NONE);
515
+ } ();
516
+
517
+ if (hresult != Core::ERROR_NONE) {
518
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 2, hresult);
519
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
520
+ }
521
+ },
522
+
523
+ // (3) virtual bool IsValid() const = 0
524
+ //
525
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
526
+ Core::hresult hresult = Core::ERROR_NONE;
527
+
528
+ hresult = [&]() -> Core::hresult {
529
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
530
+
531
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
532
+
533
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
534
+ ASSERT(implementation != nullptr);
535
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
536
+
537
+ bool result = implementation->IsValid();
538
+
539
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
540
+ writer.Boolean(result);
541
+
542
+ return (Core::ERROR_NONE);
543
+ } ();
544
+
545
+ if (hresult != Core::ERROR_NONE) {
546
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 3, hresult);
547
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
548
+ }
549
+ },
550
+
551
+ // (4) virtual uint32_t Count() const = 0
552
+ //
553
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
554
+ Core::hresult hresult = Core::ERROR_NONE;
555
+
556
+ hresult = [&]() -> Core::hresult {
557
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
558
+
559
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
560
+
561
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
562
+ ASSERT(implementation != nullptr);
563
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
564
+
565
+ uint32_t result = implementation->Count();
566
+
567
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
568
+ writer.Number<uint32_t>(result);
569
+
570
+ return (Core::ERROR_NONE);
571
+ } ();
572
+
573
+ if (hresult != Core::ERROR_NONE) {
574
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 4, hresult);
575
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
576
+ }
577
+ },
578
+
579
+ // (5) virtual RPC::Environment Current() const = 0
580
+ //
581
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
582
+ Core::hresult hresult = Core::ERROR_NONE;
583
+
584
+ hresult = [&]() -> Core::hresult {
585
+ using interface = RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>;
586
+
587
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
588
+
589
+ const interface* implementation = reinterpret_cast<const interface*>(message->Parameters().Implementation());
590
+ ASSERT(implementation != nullptr);
591
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), interface::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
592
+
593
+ RPC::Environment result = implementation->Current();
594
+
595
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
596
+ writer.Text(result.Key);
597
+ writer.Text(result.Value);
598
+ writer.Number<RPC::Environment::scope>(result.Scope);
599
+
600
+ return (Core::ERROR_NONE);
601
+ } ();
602
+
603
+ if (hresult != Core::ERROR_NONE) {
604
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 5, hresult);
605
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
606
+ }
607
+ }
608
+ , nullptr
609
+ }; // RPCIteratorTypeInstance_195e88cf7f955a2eStubMethods
610
+
611
+ //
612
+ // Example::ISimpleAsync interface stub definitions
613
+ //
614
+ // Methods:
615
+ // (0) virtual Core::hresult Connect(const Core::OptionalType<std::vector<uint8_t>>&, const Core::OptionalType<uint16_t>&, Example::ISimpleAsync::ICallback* const) = 0
616
+ // (1) virtual Core::hresult Abort() = 0
617
+ // (2) virtual Core::hresult Disconnect() = 0
618
+ // (3) virtual Core::hresult Connected(const std::vector<uint8_t>&, bool&) const = 0
619
+ // (4) virtual Core::hresult Link(const uint8_t[6]) = 0
620
+ // (5) virtual Core::hresult Unlink(const uint8_t[6]) = 0
621
+ // (6) virtual Core::hresult LinkedDevice(uint8_t[6]) const = 0
622
+ // (7) virtual Core::hresult Register(Example::ISimpleAsync::INotification* const) = 0
623
+ // (8) virtual Core::hresult Unregister(const Example::ISimpleAsync::INotification* const) = 0
624
+ // (9) virtual Core::hresult Metadata(const uint8_t[6], const string&) = 0
625
+ // (10) virtual Core::hresult Metadata(const uint8_t[6], string&) const = 0
626
+ // (11) virtual Core::hresult Bind(const Core::MACAddress&) = 0
627
+ // (12) virtual Core::hresult Unbind(const Core::MACAddress&) = 0
628
+ // (13) virtual Core::hresult BoundDevice(Core::MACAddress&) const = 0
629
+ // (14) virtual Core::hresult Type(const Core::MACAddress&, const string&) = 0
630
+ // (15) virtual Core::hresult Type(const Core::MACAddress&, string&) const = 0
631
+ // (16) virtual Core::hresult Register(Example::ISimpleAsync::IBindNotification* const) = 0
632
+ // (17) virtual Core::hresult Unregister(const Example::ISimpleAsync::IBindNotification* const) = 0
633
+ // (18) virtual Core::hresult Tables(const bool, std::vector<string>&) = 0
634
+ // (19) virtual Core::hresult Tables2(const bool, std::vector<string>&, std::vector<uint8_t>&) = 0
635
+ // (20) virtual Core::hresult Tables3(const bool, Core::OptionalType<std::vector<string>>&) = 0
636
+ // (21) virtual Core::hresult Tables4(const bool, RPC::IStringIterator*&) = 0
637
+ // (22) virtual Core::hresult Tables5(const bool, RPC::IStringIterator*&, RPC::IValueIterator*&) = 0
638
+ // (23) virtual Core::hresult Tables6(const bool, Example::ISimpleAsync::Record&) = 0
639
+ // (24) virtual Core::hresult Tables7(const bool, Core::OptionalType<Example::ISimpleAsync::Record>&) = 0
640
+ // (25) virtual Core::hresult Tables8(const bool, Core::OptionalType<Example::ISimpleAsync::Record2>&) = 0
641
+ // (26) virtual Core::hresult Tables9(const bool, Example::ISimpleAsync::Record2&) = 0
642
+ // (27) virtual Core::hresult OptionalResult(const bool, Core::OptionalType<string>&) = 0
643
+ //
644
+
645
+ static ProxyStub::MethodHandler ExampleSimpleAsyncStubMethods[] = {
646
+ // (0) virtual Core::hresult Connect(const Core::OptionalType<std::vector<uint8_t>>&, const Core::OptionalType<uint16_t>&, Example::ISimpleAsync::ICallback* const) = 0
647
+ //
648
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
649
+ Core::hresult hresult = Core::ERROR_NONE;
650
+
651
+ hresult = [&]() -> Core::hresult {
652
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
653
+
654
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
655
+ ASSERT(implementation != nullptr);
656
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
657
+
658
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
659
+ Core::OptionalType<std::vector<uint8_t>> _address{};
660
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
661
+ if (reader.Boolean() == true) {
662
+ std::vector<uint8_t> _addressObject__{};
663
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
664
+ uint8_t _addressObject__Size = reader.Number<uint8_t>();
665
+ ASSERT((_addressObject__Size >= 6) && (_addressObject__Size <= 6));
666
+ if (!((_addressObject__Size >= 6) && (_addressObject__Size <= 6))) { return (COM_ERROR | Core::ERROR_INVALID_RANGE); }
667
+ _address.Value().reserve(_addressObject__Size);
668
+ for (uint8_t i = 0; i < _addressObject__Size; i++) {
669
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
670
+ uint8_t _addressObject__Item = reader.Number<uint8_t>();
671
+ _address.Value().push_back(std::move(_addressObject__Item));
672
+ }
673
+ _address = std::move(_addressObject__);
674
+ }
675
+ Core::OptionalType<uint16_t> _timeout{};
676
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
677
+ if (reader.Boolean() == true) {
678
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
679
+ _timeout = reader.Number<uint16_t>();
680
+ }
681
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
682
+ Core::instance_id _cbInstanceId__ = reader.Number<Core::instance_id>();
683
+
684
+ Example::ISimpleAsync::ICallback* _cb{};
685
+ ProxyStub::UnknownProxy* _cbProxy__ = nullptr;
686
+ if (_cbInstanceId__ != 0) {
687
+ _cbProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _cbInstanceId__, false, _cb);
688
+ ASSERT((_cb != nullptr) && (_cbProxy__ != nullptr));
689
+ if ((_cb == nullptr) || (_cbProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
690
+ }
691
+
692
+ Core::hresult result = implementation->Connect(static_cast<const Core::OptionalType<std::vector<uint8_t>>&>(_address), static_cast<const Core::OptionalType<uint16_t>&>(_timeout), _cb);
693
+
694
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
695
+ writer.Number<Core::hresult>(result);
696
+
697
+ if (_cbProxy__ != nullptr) {
698
+ RPC::Administrator::Instance().Release(_cbProxy__, message->Response());
699
+ }
700
+
701
+ return (Core::ERROR_NONE);
702
+ } ();
703
+
704
+ if (hresult != Core::ERROR_NONE) {
705
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
706
+ writer.Number<uint32_t>(hresult);
707
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 0, hresult);
708
+ }
709
+ },
710
+
711
+ // (1) virtual Core::hresult Abort() = 0
712
+ //
713
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
714
+ Core::hresult hresult = Core::ERROR_NONE;
715
+
716
+ hresult = [&]() -> Core::hresult {
717
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
718
+
719
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
720
+ ASSERT(implementation != nullptr);
721
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
722
+
723
+ Core::hresult result = implementation->Abort();
724
+
725
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
726
+ writer.Number<Core::hresult>(result);
727
+
728
+ return (Core::ERROR_NONE);
729
+ } ();
730
+
731
+ if (hresult != Core::ERROR_NONE) {
732
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
733
+ writer.Number<uint32_t>(hresult);
734
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 1, hresult);
735
+ }
736
+ },
737
+
738
+ // (2) virtual Core::hresult Disconnect() = 0
739
+ //
740
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
741
+ Core::hresult hresult = Core::ERROR_NONE;
742
+
743
+ hresult = [&]() -> Core::hresult {
744
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
745
+
746
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
747
+ ASSERT(implementation != nullptr);
748
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
749
+
750
+ Core::hresult result = implementation->Disconnect();
751
+
752
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
753
+ writer.Number<Core::hresult>(result);
754
+
755
+ return (Core::ERROR_NONE);
756
+ } ();
757
+
758
+ if (hresult != Core::ERROR_NONE) {
759
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
760
+ writer.Number<uint32_t>(hresult);
761
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 2, hresult);
762
+ }
763
+ },
764
+
765
+ // (3) virtual Core::hresult Connected(const std::vector<uint8_t>&, bool&) const = 0
766
+ //
767
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
768
+ Core::hresult hresult = Core::ERROR_NONE;
769
+
770
+ hresult = [&]() -> Core::hresult {
771
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
772
+
773
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
774
+ ASSERT(implementation != nullptr);
775
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
776
+
777
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
778
+ std::vector<uint8_t> _address{};
779
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
780
+ uint8_t _addressSize = reader.Number<uint8_t>();
781
+ ASSERT((_addressSize >= 6) && (_addressSize <= 6));
782
+ if (!((_addressSize >= 6) && (_addressSize <= 6))) { return (COM_ERROR | Core::ERROR_INVALID_RANGE); }
783
+ _address.reserve(_addressSize);
784
+ for (uint8_t i = 0; i < _addressSize; i++) {
785
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
786
+ uint8_t _addressItem = reader.Number<uint8_t>();
787
+ _address.push_back(std::move(_addressItem));
788
+ }
789
+
790
+ bool _result{};
791
+
792
+ Core::hresult result = implementation->Connected(static_cast<const std::vector<uint8_t>&>(_address), _result);
793
+
794
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
795
+ writer.Number<Core::hresult>(result);
796
+ writer.Boolean(_result);
797
+
798
+ return (Core::ERROR_NONE);
799
+ } ();
800
+
801
+ if (hresult != Core::ERROR_NONE) {
802
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
803
+ writer.Number<uint32_t>(hresult);
804
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 3, hresult);
805
+ }
806
+ },
807
+
808
+ // (4) virtual Core::hresult Link(const uint8_t[6]) = 0
809
+ //
810
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
811
+ Core::hresult hresult = Core::ERROR_NONE;
812
+
813
+ hresult = [&]() -> Core::hresult {
814
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
815
+
816
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
817
+ ASSERT(implementation != nullptr);
818
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
819
+
820
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
821
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
822
+ const uint8_t _addressPeekedLen__ = reader.PeekNumber<uint8_t>();
823
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint8_t>()) + _addressPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
824
+ const uint8_t* _address{};
825
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
826
+ ASSERT(addressFixedLen == 6);
827
+ reader.UnlockBuffer(addressFixedLen);
828
+
829
+ Core::hresult result = implementation->Link(_address);
830
+
831
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
832
+ writer.Number<Core::hresult>(result);
833
+
834
+ return (Core::ERROR_NONE);
835
+ } ();
836
+
837
+ if (hresult != Core::ERROR_NONE) {
838
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
839
+ writer.Number<uint32_t>(hresult);
840
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 4, hresult);
841
+ }
842
+ },
843
+
844
+ // (5) virtual Core::hresult Unlink(const uint8_t[6]) = 0
845
+ //
846
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
847
+ Core::hresult hresult = Core::ERROR_NONE;
848
+
849
+ hresult = [&]() -> Core::hresult {
850
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
851
+
852
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
853
+ ASSERT(implementation != nullptr);
854
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
855
+
856
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
857
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
858
+ const uint8_t _addressPeekedLen__ = reader.PeekNumber<uint8_t>();
859
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint8_t>()) + _addressPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
860
+ const uint8_t* _address{};
861
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
862
+ ASSERT(addressFixedLen == 6);
863
+ reader.UnlockBuffer(addressFixedLen);
864
+
865
+ Core::hresult result = implementation->Unlink(_address);
866
+
867
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
868
+ writer.Number<Core::hresult>(result);
869
+
870
+ return (Core::ERROR_NONE);
871
+ } ();
872
+
873
+ if (hresult != Core::ERROR_NONE) {
874
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
875
+ writer.Number<uint32_t>(hresult);
876
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 5, hresult);
877
+ }
878
+ },
879
+
880
+ // (6) virtual Core::hresult LinkedDevice(uint8_t[6]) const = 0
881
+ //
882
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
883
+ Core::hresult hresult = Core::ERROR_NONE;
884
+
885
+ hresult = [&]() -> Core::hresult {
886
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
887
+
888
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
889
+ ASSERT(implementation != nullptr);
890
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
891
+
892
+ uint8_t* _address{};
893
+
894
+ _address = static_cast<uint8_t*>(ALLOCA(6 * sizeof(uint8_t)));
895
+ ASSERT(_address != nullptr);
896
+ if (_address == nullptr) { return (Core::ERROR_GENERAL); }
897
+
898
+ Core::hresult result = implementation->LinkedDevice(_address);
899
+
900
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
901
+ writer.Number<Core::hresult>(result);
902
+ writer.Copy(6, _address);
903
+
904
+ return (Core::ERROR_NONE);
905
+ } ();
906
+
907
+ if (hresult != Core::ERROR_NONE) {
908
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
909
+ writer.Number<uint32_t>(hresult);
910
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 6, hresult);
911
+ }
912
+ },
913
+
914
+ // (7) virtual Core::hresult Register(Example::ISimpleAsync::INotification* const) = 0
915
+ //
916
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
917
+ Core::hresult hresult = Core::ERROR_NONE;
918
+
919
+ hresult = [&]() -> Core::hresult {
920
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
921
+
922
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
923
+ ASSERT(implementation != nullptr);
924
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
925
+
926
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
927
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
928
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
929
+
930
+ Example::ISimpleAsync::INotification* _notification{};
931
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
932
+ if (_notificationInstanceId__ != 0) {
933
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
934
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
935
+ if ((_notification == nullptr) || (_notificationProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
936
+ }
937
+
938
+ Core::hresult result = implementation->Register(_notification);
939
+
940
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
941
+ writer.Number<Core::hresult>(result);
942
+
943
+ if (_notificationProxy__ != nullptr) {
944
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
945
+ }
946
+
947
+ return (Core::ERROR_NONE);
948
+ } ();
949
+
950
+ if (hresult != Core::ERROR_NONE) {
951
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
952
+ writer.Number<uint32_t>(hresult);
953
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 7, hresult);
954
+ }
955
+ },
956
+
957
+ // (8) virtual Core::hresult Unregister(const Example::ISimpleAsync::INotification* const) = 0
958
+ //
959
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
960
+ Core::hresult hresult = Core::ERROR_NONE;
961
+
962
+ hresult = [&]() -> Core::hresult {
963
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
964
+
965
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
966
+ ASSERT(implementation != nullptr);
967
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
968
+
969
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
970
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
971
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
972
+
973
+ const Example::ISimpleAsync::INotification* _notification{};
974
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
975
+ if (_notificationInstanceId__ != 0) {
976
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
977
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
978
+ if ((_notification == nullptr) || (_notificationProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
979
+ }
980
+
981
+ Core::hresult result = implementation->Unregister(_notification);
982
+
983
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
984
+ writer.Number<Core::hresult>(result);
985
+
986
+ if (_notificationProxy__ != nullptr) {
987
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
988
+ }
989
+
990
+ return (Core::ERROR_NONE);
991
+ } ();
992
+
993
+ if (hresult != Core::ERROR_NONE) {
994
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
995
+ writer.Number<uint32_t>(hresult);
996
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 8, hresult);
997
+ }
998
+ },
999
+
1000
+ // (9) virtual Core::hresult Metadata(const uint8_t[6], const string&) = 0
1001
+ //
1002
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1003
+ Core::hresult hresult = Core::ERROR_NONE;
1004
+
1005
+ hresult = [&]() -> Core::hresult {
1006
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1007
+
1008
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1009
+ ASSERT(implementation != nullptr);
1010
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1011
+
1012
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1013
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1014
+ const uint8_t _addressPeekedLen__ = reader.PeekNumber<uint8_t>();
1015
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint8_t>()) + _addressPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1016
+ const uint8_t* _address{};
1017
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
1018
+ ASSERT(addressFixedLen == 6);
1019
+ reader.UnlockBuffer(addressFixedLen);
1020
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1021
+ const uint16_t _metadataPeekedLen__ = reader.PeekNumber<uint16_t>();
1022
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _metadataPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1023
+ const string _metadata = reader.Text();
1024
+
1025
+ Core::hresult result = implementation->Metadata(_address, static_cast<const string&>(_metadata));
1026
+
1027
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1028
+ writer.Number<Core::hresult>(result);
1029
+
1030
+ return (Core::ERROR_NONE);
1031
+ } ();
1032
+
1033
+ if (hresult != Core::ERROR_NONE) {
1034
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1035
+ writer.Number<uint32_t>(hresult);
1036
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 9, hresult);
1037
+ }
1038
+ },
1039
+
1040
+ // (10) virtual Core::hresult Metadata(const uint8_t[6], string&) const = 0
1041
+ //
1042
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1043
+ Core::hresult hresult = Core::ERROR_NONE;
1044
+
1045
+ hresult = [&]() -> Core::hresult {
1046
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1047
+
1048
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
1049
+ ASSERT(implementation != nullptr);
1050
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1051
+
1052
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1053
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1054
+ const uint8_t _addressPeekedLen__ = reader.PeekNumber<uint8_t>();
1055
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint8_t>()) + _addressPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1056
+ const uint8_t* _address{};
1057
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
1058
+ ASSERT(addressFixedLen == 6);
1059
+ reader.UnlockBuffer(addressFixedLen);
1060
+
1061
+ string _metadata{};
1062
+
1063
+ Core::hresult result = implementation->Metadata(_address, _metadata);
1064
+
1065
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1066
+ writer.Number<Core::hresult>(result);
1067
+ writer.Text(_metadata);
1068
+
1069
+ return (Core::ERROR_NONE);
1070
+ } ();
1071
+
1072
+ if (hresult != Core::ERROR_NONE) {
1073
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1074
+ writer.Number<uint32_t>(hresult);
1075
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 10, hresult);
1076
+ }
1077
+ },
1078
+
1079
+ // (11) virtual Core::hresult Bind(const Core::MACAddress&) = 0
1080
+ //
1081
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1082
+ Core::hresult hresult = Core::ERROR_NONE;
1083
+
1084
+ hresult = [&]() -> Core::hresult {
1085
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1086
+
1087
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1088
+ ASSERT(implementation != nullptr);
1089
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1090
+
1091
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1092
+ const uint8_t* addressBuffer{};
1093
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
1094
+ ASSERT(addressLength == 6);
1095
+ reader.UnlockBuffer(addressLength);
1096
+ Core::MACAddress _address{addressBuffer};
1097
+
1098
+ Core::hresult result = implementation->Bind(static_cast<const Core::MACAddress&>(_address));
1099
+
1100
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1101
+ writer.Number<Core::hresult>(result);
1102
+
1103
+ return (Core::ERROR_NONE);
1104
+ } ();
1105
+
1106
+ if (hresult != Core::ERROR_NONE) {
1107
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1108
+ writer.Number<uint32_t>(hresult);
1109
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 11, hresult);
1110
+ }
1111
+ },
1112
+
1113
+ // (12) virtual Core::hresult Unbind(const Core::MACAddress&) = 0
1114
+ //
1115
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1116
+ Core::hresult hresult = Core::ERROR_NONE;
1117
+
1118
+ hresult = [&]() -> Core::hresult {
1119
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1120
+
1121
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1122
+ ASSERT(implementation != nullptr);
1123
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1124
+
1125
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1126
+ const uint8_t* addressBuffer{};
1127
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
1128
+ ASSERT(addressLength == 6);
1129
+ reader.UnlockBuffer(addressLength);
1130
+ Core::MACAddress _address{addressBuffer};
1131
+
1132
+ Core::hresult result = implementation->Unbind(static_cast<const Core::MACAddress&>(_address));
1133
+
1134
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1135
+ writer.Number<Core::hresult>(result);
1136
+
1137
+ return (Core::ERROR_NONE);
1138
+ } ();
1139
+
1140
+ if (hresult != Core::ERROR_NONE) {
1141
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1142
+ writer.Number<uint32_t>(hresult);
1143
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 12, hresult);
1144
+ }
1145
+ },
1146
+
1147
+ // (13) virtual Core::hresult BoundDevice(Core::MACAddress&) const = 0
1148
+ //
1149
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1150
+ Core::hresult hresult = Core::ERROR_NONE;
1151
+
1152
+ hresult = [&]() -> Core::hresult {
1153
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1154
+
1155
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
1156
+ ASSERT(implementation != nullptr);
1157
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1158
+
1159
+ Core::MACAddress _address{};
1160
+
1161
+ Core::hresult result = implementation->BoundDevice(_address);
1162
+
1163
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1164
+ writer.Number<Core::hresult>(result);
1165
+ writer.Copy(6, _address);
1166
+
1167
+ return (Core::ERROR_NONE);
1168
+ } ();
1169
+
1170
+ if (hresult != Core::ERROR_NONE) {
1171
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1172
+ writer.Number<uint32_t>(hresult);
1173
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 13, hresult);
1174
+ }
1175
+ },
1176
+
1177
+ // (14) virtual Core::hresult Type(const Core::MACAddress&, const string&) = 0
1178
+ //
1179
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1180
+ Core::hresult hresult = Core::ERROR_NONE;
1181
+
1182
+ hresult = [&]() -> Core::hresult {
1183
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1184
+
1185
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1186
+ ASSERT(implementation != nullptr);
1187
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1188
+
1189
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1190
+ const uint8_t* addressBuffer{};
1191
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
1192
+ ASSERT(addressLength == 6);
1193
+ reader.UnlockBuffer(addressLength);
1194
+ Core::MACAddress _address{addressBuffer};
1195
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1196
+ const uint16_t _valuePeekedLen__ = reader.PeekNumber<uint16_t>();
1197
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _valuePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1198
+ const string _value = reader.Text();
1199
+
1200
+ Core::hresult result = implementation->Type(static_cast<const Core::MACAddress&>(_address), static_cast<const string&>(_value));
1201
+
1202
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1203
+ writer.Number<Core::hresult>(result);
1204
+
1205
+ return (Core::ERROR_NONE);
1206
+ } ();
1207
+
1208
+ if (hresult != Core::ERROR_NONE) {
1209
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1210
+ writer.Number<uint32_t>(hresult);
1211
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 14, hresult);
1212
+ }
1213
+ },
1214
+
1215
+ // (15) virtual Core::hresult Type(const Core::MACAddress&, string&) const = 0
1216
+ //
1217
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1218
+ Core::hresult hresult = Core::ERROR_NONE;
1219
+
1220
+ hresult = [&]() -> Core::hresult {
1221
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1222
+
1223
+ const Example::ISimpleAsync* implementation = reinterpret_cast<const Example::ISimpleAsync*>(message->Parameters().Implementation());
1224
+ ASSERT(implementation != nullptr);
1225
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1226
+
1227
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1228
+ const uint8_t* addressBuffer{};
1229
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
1230
+ ASSERT(addressLength == 6);
1231
+ reader.UnlockBuffer(addressLength);
1232
+ Core::MACAddress _address{addressBuffer};
1233
+
1234
+ string _value{};
1235
+
1236
+ Core::hresult result = implementation->Type(static_cast<const Core::MACAddress&>(_address), _value);
1237
+
1238
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1239
+ writer.Number<Core::hresult>(result);
1240
+ writer.Text(_value);
1241
+
1242
+ return (Core::ERROR_NONE);
1243
+ } ();
1244
+
1245
+ if (hresult != Core::ERROR_NONE) {
1246
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1247
+ writer.Number<uint32_t>(hresult);
1248
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 15, hresult);
1249
+ }
1250
+ },
1251
+
1252
+ // (16) virtual Core::hresult Register(Example::ISimpleAsync::IBindNotification* const) = 0
1253
+ //
1254
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1255
+ Core::hresult hresult = Core::ERROR_NONE;
1256
+
1257
+ hresult = [&]() -> Core::hresult {
1258
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1259
+
1260
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1261
+ ASSERT(implementation != nullptr);
1262
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1263
+
1264
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1265
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1266
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
1267
+
1268
+ Example::ISimpleAsync::IBindNotification* _notification{};
1269
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
1270
+ if (_notificationInstanceId__ != 0) {
1271
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
1272
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
1273
+ if ((_notification == nullptr) || (_notificationProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1274
+ }
1275
+
1276
+ Core::hresult result = implementation->Register(_notification);
1277
+
1278
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1279
+ writer.Number<Core::hresult>(result);
1280
+
1281
+ if (_notificationProxy__ != nullptr) {
1282
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
1283
+ }
1284
+
1285
+ return (Core::ERROR_NONE);
1286
+ } ();
1287
+
1288
+ if (hresult != Core::ERROR_NONE) {
1289
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1290
+ writer.Number<uint32_t>(hresult);
1291
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 16, hresult);
1292
+ }
1293
+ },
1294
+
1295
+ // (17) virtual Core::hresult Unregister(const Example::ISimpleAsync::IBindNotification* const) = 0
1296
+ //
1297
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1298
+ Core::hresult hresult = Core::ERROR_NONE;
1299
+
1300
+ hresult = [&]() -> Core::hresult {
1301
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1302
+
1303
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1304
+ ASSERT(implementation != nullptr);
1305
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1306
+
1307
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1308
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1309
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
1310
+
1311
+ const Example::ISimpleAsync::IBindNotification* _notification{};
1312
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
1313
+ if (_notificationInstanceId__ != 0) {
1314
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
1315
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
1316
+ if ((_notification == nullptr) || (_notificationProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1317
+ }
1318
+
1319
+ Core::hresult result = implementation->Unregister(_notification);
1320
+
1321
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1322
+ writer.Number<Core::hresult>(result);
1323
+
1324
+ if (_notificationProxy__ != nullptr) {
1325
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
1326
+ }
1327
+
1328
+ return (Core::ERROR_NONE);
1329
+ } ();
1330
+
1331
+ if (hresult != Core::ERROR_NONE) {
1332
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1333
+ writer.Number<uint32_t>(hresult);
1334
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 17, hresult);
1335
+ }
1336
+ },
1337
+
1338
+ // (18) virtual Core::hresult Tables(const bool, std::vector<string>&) = 0
1339
+ //
1340
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1341
+ Core::hresult hresult = Core::ERROR_NONE;
1342
+
1343
+ hresult = [&]() -> Core::hresult {
1344
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1345
+
1346
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1347
+ ASSERT(implementation != nullptr);
1348
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1349
+
1350
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1351
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1352
+ const bool _fill = reader.Boolean();
1353
+
1354
+ std::vector<string> _stringTables{};
1355
+
1356
+ Core::hresult result = implementation->Tables(_fill, _stringTables);
1357
+
1358
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1359
+ writer.Number<Core::hresult>(result);
1360
+ writer.Number<uint8_t>(_stringTables.size());
1361
+ for (uint8_t i = 0; i < _stringTables.size(); i++) {
1362
+ writer.Text(_stringTables[i]);
1363
+ }
1364
+
1365
+ return (Core::ERROR_NONE);
1366
+ } ();
1367
+
1368
+ if (hresult != Core::ERROR_NONE) {
1369
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1370
+ writer.Number<uint32_t>(hresult);
1371
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 18, hresult);
1372
+ }
1373
+ },
1374
+
1375
+ // (19) virtual Core::hresult Tables2(const bool, std::vector<string>&, std::vector<uint8_t>&) = 0
1376
+ //
1377
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1378
+ Core::hresult hresult = Core::ERROR_NONE;
1379
+
1380
+ hresult = [&]() -> Core::hresult {
1381
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1382
+
1383
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1384
+ ASSERT(implementation != nullptr);
1385
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1386
+
1387
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1388
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1389
+ const bool _fill = reader.Boolean();
1390
+
1391
+ std::vector<string> _stringTables{};
1392
+ std::vector<uint8_t> _intTables{};
1393
+
1394
+ Core::hresult result = implementation->Tables2(_fill, _stringTables, _intTables);
1395
+
1396
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1397
+ writer.Number<Core::hresult>(result);
1398
+ writer.Number<uint8_t>(_stringTables.size());
1399
+ for (uint8_t i = 0; i < _stringTables.size(); i++) {
1400
+ writer.Text(_stringTables[i]);
1401
+ }
1402
+ writer.Number<uint8_t>(_intTables.size());
1403
+ for (uint8_t i = 0; i < _intTables.size(); i++) {
1404
+ writer.Number<uint8_t>(_intTables[i]);
1405
+ }
1406
+
1407
+ return (Core::ERROR_NONE);
1408
+ } ();
1409
+
1410
+ if (hresult != Core::ERROR_NONE) {
1411
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1412
+ writer.Number<uint32_t>(hresult);
1413
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 19, hresult);
1414
+ }
1415
+ },
1416
+
1417
+ // (20) virtual Core::hresult Tables3(const bool, Core::OptionalType<std::vector<string>>&) = 0
1418
+ //
1419
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1420
+ Core::hresult hresult = Core::ERROR_NONE;
1421
+
1422
+ hresult = [&]() -> Core::hresult {
1423
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1424
+
1425
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1426
+ ASSERT(implementation != nullptr);
1427
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1428
+
1429
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1430
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1431
+ const bool _fill = reader.Boolean();
1432
+
1433
+ Core::OptionalType<std::vector<string>> _stringTables{};
1434
+
1435
+ Core::hresult result = implementation->Tables3(_fill, _stringTables);
1436
+
1437
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1438
+ writer.Number<Core::hresult>(result);
1439
+ writer.Boolean(_stringTables.IsSet());
1440
+ if (_stringTables.IsSet() == true) {
1441
+ writer.Number<uint8_t>(_stringTables.Value().size());
1442
+ for (uint8_t i = 0; i < _stringTables.Value().size(); i++) {
1443
+ writer.Text(_stringTables.Value()[i]);
1444
+ }
1445
+ }
1446
+
1447
+ return (Core::ERROR_NONE);
1448
+ } ();
1449
+
1450
+ if (hresult != Core::ERROR_NONE) {
1451
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1452
+ writer.Number<uint32_t>(hresult);
1453
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 20, hresult);
1454
+ }
1455
+ },
1456
+
1457
+ // (21) virtual Core::hresult Tables4(const bool, RPC::IStringIterator*&) = 0
1458
+ //
1459
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1460
+ Core::hresult hresult = Core::ERROR_NONE;
1461
+
1462
+ hresult = [&]() -> Core::hresult {
1463
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1464
+
1465
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1466
+ ASSERT(implementation != nullptr);
1467
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1468
+
1469
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1470
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1471
+ const bool _fill = reader.Boolean();
1472
+
1473
+ RPC::IStringIterator* _stringTables{};
1474
+
1475
+ Core::hresult result = implementation->Tables4(_fill, _stringTables);
1476
+
1477
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1478
+ writer.Number<Core::hresult>(result);
1479
+ writer.Number<Core::instance_id>(RPC::instance_cast(_stringTables));
1480
+
1481
+ RPC::Administrator::Instance().RegisterInterface(channel, _stringTables);
1482
+
1483
+ return (Core::ERROR_NONE);
1484
+ } ();
1485
+
1486
+ if (hresult != Core::ERROR_NONE) {
1487
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1488
+ writer.Number<uint32_t>(hresult);
1489
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 21, hresult);
1490
+ }
1491
+ },
1492
+
1493
+ // (22) virtual Core::hresult Tables5(const bool, RPC::IStringIterator*&, RPC::IValueIterator*&) = 0
1494
+ //
1495
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1496
+ Core::hresult hresult = Core::ERROR_NONE;
1497
+
1498
+ hresult = [&]() -> Core::hresult {
1499
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1500
+
1501
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1502
+ ASSERT(implementation != nullptr);
1503
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1504
+
1505
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1506
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1507
+ const bool _fill = reader.Boolean();
1508
+
1509
+ RPC::IStringIterator* _stringTables{};
1510
+ RPC::IValueIterator* _intTables{};
1511
+
1512
+ Core::hresult result = implementation->Tables5(_fill, _stringTables, _intTables);
1513
+
1514
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1515
+ writer.Number<Core::hresult>(result);
1516
+ writer.Number<Core::instance_id>(RPC::instance_cast(_stringTables));
1517
+ writer.Number<Core::instance_id>(RPC::instance_cast(_intTables));
1518
+
1519
+ RPC::Administrator::Instance().RegisterInterface(channel, _stringTables);
1520
+ RPC::Administrator::Instance().RegisterInterface(channel, _intTables);
1521
+
1522
+ return (Core::ERROR_NONE);
1523
+ } ();
1524
+
1525
+ if (hresult != Core::ERROR_NONE) {
1526
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1527
+ writer.Number<uint32_t>(hresult);
1528
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 22, hresult);
1529
+ }
1530
+ },
1531
+
1532
+ // (23) virtual Core::hresult Tables6(const bool, Example::ISimpleAsync::Record&) = 0
1533
+ //
1534
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1535
+ Core::hresult hresult = Core::ERROR_NONE;
1536
+
1537
+ hresult = [&]() -> Core::hresult {
1538
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1539
+
1540
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1541
+ ASSERT(implementation != nullptr);
1542
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1543
+
1544
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1545
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1546
+ const bool _fill = reader.Boolean();
1547
+
1548
+ Example::ISimpleAsync::Record _pod{};
1549
+
1550
+ Core::hresult result = implementation->Tables6(_fill, _pod);
1551
+
1552
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1553
+ writer.Number<Core::hresult>(result);
1554
+ writer.Text(_pod.param0);
1555
+ writer.Number<uint8_t>(_pod.param1.size());
1556
+ for (uint8_t i = 0; i < _pod.param1.size(); i++) {
1557
+ writer.Text(_pod.param1[i]);
1558
+ }
1559
+ writer.Number<uint8_t>(_pod.param2.size());
1560
+ for (uint8_t i = 0; i < _pod.param2.size(); i++) {
1561
+ writer.Text(_pod.param2[i]);
1562
+ }
1563
+ writer.Boolean(_pod.param3.IsSet());
1564
+ if (_pod.param3.IsSet() == true) {
1565
+ writer.Number<uint8_t>(_pod.param3.Value().size());
1566
+ for (uint8_t i = 0; i < _pod.param3.Value().size(); i++) {
1567
+ writer.Text(_pod.param3.Value()[i]);
1568
+ }
1569
+ }
1570
+ writer.Boolean(_pod.param4.IsSet());
1571
+ if (_pod.param4.IsSet() == true) {
1572
+ writer.Number<uint8_t>(_pod.param4.Value().size());
1573
+ for (uint8_t i = 0; i < _pod.param4.Value().size(); i++) {
1574
+ writer.Text(_pod.param4.Value()[i]);
1575
+ }
1576
+ }
1577
+ writer.Text(_pod.param5.param0);
1578
+ writer.Boolean(_pod.param5.param1);
1579
+ writer.Boolean(_pod.param6.IsSet());
1580
+ if (_pod.param6.IsSet() == true) {
1581
+ writer.Text(_pod.param6.Value().param0);
1582
+ writer.Boolean(_pod.param6.Value().param1);
1583
+ }
1584
+
1585
+ return (Core::ERROR_NONE);
1586
+ } ();
1587
+
1588
+ if (hresult != Core::ERROR_NONE) {
1589
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1590
+ writer.Number<uint32_t>(hresult);
1591
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 23, hresult);
1592
+ }
1593
+ },
1594
+
1595
+ // (24) virtual Core::hresult Tables7(const bool, Core::OptionalType<Example::ISimpleAsync::Record>&) = 0
1596
+ //
1597
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1598
+ Core::hresult hresult = Core::ERROR_NONE;
1599
+
1600
+ hresult = [&]() -> Core::hresult {
1601
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1602
+
1603
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1604
+ ASSERT(implementation != nullptr);
1605
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1606
+
1607
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1608
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1609
+ const bool _fill = reader.Boolean();
1610
+
1611
+ Core::OptionalType<Example::ISimpleAsync::Record> _pod{};
1612
+
1613
+ Core::hresult result = implementation->Tables7(_fill, _pod);
1614
+
1615
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1616
+ writer.Number<Core::hresult>(result);
1617
+ writer.Boolean(_pod.IsSet());
1618
+ if (_pod.IsSet() == true) {
1619
+ writer.Text(_pod.Value().param0);
1620
+ writer.Number<uint8_t>(_pod.Value().param1.size());
1621
+ for (uint8_t i = 0; i < _pod.Value().param1.size(); i++) {
1622
+ writer.Text(_pod.Value().param1[i]);
1623
+ }
1624
+ writer.Number<uint8_t>(_pod.Value().param2.size());
1625
+ for (uint8_t i = 0; i < _pod.Value().param2.size(); i++) {
1626
+ writer.Text(_pod.Value().param2[i]);
1627
+ }
1628
+ writer.Boolean(_pod.Value().param3.IsSet());
1629
+ if (_pod.Value().param3.IsSet() == true) {
1630
+ writer.Number<uint8_t>(_pod.Value().param3.Value().size());
1631
+ for (uint8_t i = 0; i < _pod.Value().param3.Value().size(); i++) {
1632
+ writer.Text(_pod.Value().param3.Value()[i]);
1633
+ }
1634
+ }
1635
+ writer.Boolean(_pod.Value().param4.IsSet());
1636
+ if (_pod.Value().param4.IsSet() == true) {
1637
+ writer.Number<uint8_t>(_pod.Value().param4.Value().size());
1638
+ for (uint8_t i = 0; i < _pod.Value().param4.Value().size(); i++) {
1639
+ writer.Text(_pod.Value().param4.Value()[i]);
1640
+ }
1641
+ }
1642
+ writer.Text(_pod.Value().param5.param0);
1643
+ writer.Boolean(_pod.Value().param5.param1);
1644
+ writer.Boolean(_pod.Value().param6.IsSet());
1645
+ if (_pod.Value().param6.IsSet() == true) {
1646
+ writer.Text(_pod.Value().param6.Value().param0);
1647
+ writer.Boolean(_pod.Value().param6.Value().param1);
1648
+ }
1649
+ }
1650
+
1651
+ return (Core::ERROR_NONE);
1652
+ } ();
1653
+
1654
+ if (hresult != Core::ERROR_NONE) {
1655
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1656
+ writer.Number<uint32_t>(hresult);
1657
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 24, hresult);
1658
+ }
1659
+ },
1660
+
1661
+ // (25) virtual Core::hresult Tables8(const bool, Core::OptionalType<Example::ISimpleAsync::Record2>&) = 0
1662
+ //
1663
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1664
+ Core::hresult hresult = Core::ERROR_NONE;
1665
+
1666
+ hresult = [&]() -> Core::hresult {
1667
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1668
+
1669
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1670
+ ASSERT(implementation != nullptr);
1671
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1672
+
1673
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1674
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1675
+ const bool _fill = reader.Boolean();
1676
+
1677
+ Core::OptionalType<Example::ISimpleAsync::Record2> _pod{};
1678
+
1679
+ Core::hresult result = implementation->Tables8(_fill, _pod);
1680
+
1681
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1682
+ writer.Number<Core::hresult>(result);
1683
+ writer.Boolean(_pod.IsSet());
1684
+ if (_pod.IsSet() == true) {
1685
+ writer.Boolean(_pod.Value().param3.IsSet());
1686
+ if (_pod.Value().param3.IsSet() == true) {
1687
+ writer.Number<uint8_t>(_pod.Value().param3.Value().size());
1688
+ for (uint8_t i = 0; i < _pod.Value().param3.Value().size(); i++) {
1689
+ writer.Text(_pod.Value().param3.Value()[i]);
1690
+ }
1691
+ }
1692
+ writer.Boolean(_pod.Value().param4.IsSet());
1693
+ if (_pod.Value().param4.IsSet() == true) {
1694
+ writer.Number<uint8_t>(_pod.Value().param4.Value().size());
1695
+ for (uint8_t i = 0; i < _pod.Value().param4.Value().size(); i++) {
1696
+ writer.Text(_pod.Value().param4.Value()[i]);
1697
+ }
1698
+ }
1699
+ }
1700
+
1701
+ return (Core::ERROR_NONE);
1702
+ } ();
1703
+
1704
+ if (hresult != Core::ERROR_NONE) {
1705
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1706
+ writer.Number<uint32_t>(hresult);
1707
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 25, hresult);
1708
+ }
1709
+ },
1710
+
1711
+ // (26) virtual Core::hresult Tables9(const bool, Example::ISimpleAsync::Record2&) = 0
1712
+ //
1713
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1714
+ Core::hresult hresult = Core::ERROR_NONE;
1715
+
1716
+ hresult = [&]() -> Core::hresult {
1717
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1718
+
1719
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1720
+ ASSERT(implementation != nullptr);
1721
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1722
+
1723
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1724
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1725
+ const bool _fill = reader.Boolean();
1726
+
1727
+ Example::ISimpleAsync::Record2 _pod{};
1728
+
1729
+ Core::hresult result = implementation->Tables9(_fill, _pod);
1730
+
1731
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1732
+ writer.Number<Core::hresult>(result);
1733
+ writer.Boolean(_pod.param3.IsSet());
1734
+ if (_pod.param3.IsSet() == true) {
1735
+ writer.Number<uint8_t>(_pod.param3.Value().size());
1736
+ for (uint8_t i = 0; i < _pod.param3.Value().size(); i++) {
1737
+ writer.Text(_pod.param3.Value()[i]);
1738
+ }
1739
+ }
1740
+ writer.Boolean(_pod.param4.IsSet());
1741
+ if (_pod.param4.IsSet() == true) {
1742
+ writer.Number<uint8_t>(_pod.param4.Value().size());
1743
+ for (uint8_t i = 0; i < _pod.param4.Value().size(); i++) {
1744
+ writer.Text(_pod.param4.Value()[i]);
1745
+ }
1746
+ }
1747
+
1748
+ return (Core::ERROR_NONE);
1749
+ } ();
1750
+
1751
+ if (hresult != Core::ERROR_NONE) {
1752
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1753
+ writer.Number<uint32_t>(hresult);
1754
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 26, hresult);
1755
+ }
1756
+ },
1757
+
1758
+ // (27) virtual Core::hresult OptionalResult(const bool, Core::OptionalType<string>&) = 0
1759
+ //
1760
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1761
+ Core::hresult hresult = Core::ERROR_NONE;
1762
+
1763
+ hresult = [&]() -> Core::hresult {
1764
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1765
+
1766
+ Example::ISimpleAsync* implementation = reinterpret_cast<Example::ISimpleAsync*>(message->Parameters().Implementation());
1767
+ ASSERT(implementation != nullptr);
1768
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1769
+
1770
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1771
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1772
+ const bool _fill = reader.Boolean();
1773
+
1774
+ Core::OptionalType<string> _result{};
1775
+
1776
+ Core::hresult result = implementation->OptionalResult(_fill, _result);
1777
+
1778
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1779
+ writer.Number<Core::hresult>(result);
1780
+ writer.Boolean(_result.IsSet());
1781
+ if (_result.IsSet() == true) {
1782
+ writer.Text(_result.Value());
1783
+ }
1784
+
1785
+ return (Core::ERROR_NONE);
1786
+ } ();
1787
+
1788
+ if (hresult != Core::ERROR_NONE) {
1789
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
1790
+ writer.Number<uint32_t>(hresult);
1791
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 27, hresult);
1792
+ }
1793
+ }
1794
+ , nullptr
1795
+ }; // ExampleSimpleAsyncStubMethods
1796
+
1797
+ //
1798
+ // Example::ISimpleAsync::ICallback interface stub definitions
1799
+ //
1800
+ // Methods:
1801
+ // (0) virtual void Complete(const Core::OptionalType<std::vector<uint8_t>>&, const Example::ISimpleAsync::state) = 0
1802
+ //
1803
+
1804
+ static ProxyStub::MethodHandler ExampleSimpleAsyncCallbackStubMethods[] = {
1805
+ // (0) virtual void Complete(const Core::OptionalType<std::vector<uint8_t>>&, const Example::ISimpleAsync::state) = 0
1806
+ //
1807
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1808
+ Core::hresult hresult = Core::ERROR_NONE;
1809
+
1810
+ hresult = [&]() -> Core::hresult {
1811
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1812
+
1813
+ Example::ISimpleAsync::ICallback* implementation = reinterpret_cast<Example::ISimpleAsync::ICallback*>(message->Parameters().Implementation());
1814
+ ASSERT(implementation != nullptr);
1815
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::ICallback::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1816
+
1817
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1818
+ Core::OptionalType<std::vector<uint8_t>> _address{};
1819
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1820
+ if (reader.Boolean() == true) {
1821
+ std::vector<uint8_t> _addressObject__{};
1822
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1823
+ uint8_t _addressObject__Size = reader.Number<uint8_t>();
1824
+ ASSERT((_addressObject__Size >= 6) && (_addressObject__Size <= 6));
1825
+ if (!((_addressObject__Size >= 6) && (_addressObject__Size <= 6))) { return (COM_ERROR | Core::ERROR_INVALID_RANGE); }
1826
+ _address.Value().reserve(_addressObject__Size);
1827
+ for (uint8_t i = 0; i < _addressObject__Size; i++) {
1828
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1829
+ uint8_t _addressObject__Item = reader.Number<uint8_t>();
1830
+ _address.Value().push_back(std::move(_addressObject__Item));
1831
+ }
1832
+ _address = std::move(_addressObject__);
1833
+ }
1834
+ if (reader.Length() < (Core::RealSize<Example::ISimpleAsync::state>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1835
+ const Example::ISimpleAsync::state _state = reader.Number<Example::ISimpleAsync::state>();
1836
+
1837
+ implementation->Complete(static_cast<const Core::OptionalType<std::vector<uint8_t>>&>(_address), _state);
1838
+
1839
+ return (Core::ERROR_NONE);
1840
+ } ();
1841
+
1842
+ if (hresult != Core::ERROR_NONE) {
1843
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ICallback::ID, 0, hresult);
1844
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1845
+ }
1846
+ }
1847
+ , nullptr
1848
+ }; // ExampleSimpleAsyncCallbackStubMethods
1849
+
1850
+ //
1851
+ // Example::ISimpleAsync::INotification interface stub definitions
1852
+ //
1853
+ // Methods:
1854
+ // (0) virtual void StatusChanged(const uint8_t[6], const bool) = 0
1855
+ //
1856
+
1857
+ static ProxyStub::MethodHandler ExampleSimpleAsyncNotificationStubMethods[] = {
1858
+ // (0) virtual void StatusChanged(const uint8_t[6], const bool) = 0
1859
+ //
1860
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1861
+ Core::hresult hresult = Core::ERROR_NONE;
1862
+
1863
+ hresult = [&]() -> Core::hresult {
1864
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1865
+
1866
+ Example::ISimpleAsync::INotification* implementation = reinterpret_cast<Example::ISimpleAsync::INotification*>(message->Parameters().Implementation());
1867
+ ASSERT(implementation != nullptr);
1868
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1869
+
1870
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1871
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1872
+ const uint8_t _addressPeekedLen__ = reader.PeekNumber<uint8_t>();
1873
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint8_t>()) + _addressPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1874
+ const uint8_t* _address{};
1875
+ uint8_t addressFixedLen = reader.LockFixedBuffer(_address, 6);
1876
+ ASSERT(addressFixedLen == 6);
1877
+ reader.UnlockBuffer(addressFixedLen);
1878
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1879
+ const bool _linked = reader.Boolean();
1880
+
1881
+ implementation->StatusChanged(_address, _linked);
1882
+
1883
+ return (Core::ERROR_NONE);
1884
+ } ();
1885
+
1886
+ if (hresult != Core::ERROR_NONE) {
1887
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::INotification::ID, 0, hresult);
1888
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1889
+ }
1890
+ }
1891
+ , nullptr
1892
+ }; // ExampleSimpleAsyncNotificationStubMethods
1893
+
1894
+ //
1895
+ // Example::ISimpleAsync::IBindNotification interface stub definitions
1896
+ //
1897
+ // Methods:
1898
+ // (0) virtual void BindingChanged(const Core::MACAddress&, const bool) = 0
1899
+ //
1900
+
1901
+ static ProxyStub::MethodHandler ExampleSimpleAsyncBindNotificationStubMethods[] = {
1902
+ // (0) virtual void BindingChanged(const Core::MACAddress&, const bool) = 0
1903
+ //
1904
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
1905
+ Core::hresult hresult = Core::ERROR_NONE;
1906
+
1907
+ hresult = [&]() -> Core::hresult {
1908
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1909
+
1910
+ Example::ISimpleAsync::IBindNotification* implementation = reinterpret_cast<Example::ISimpleAsync::IBindNotification*>(message->Parameters().Implementation());
1911
+ ASSERT(implementation != nullptr);
1912
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleAsync::IBindNotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1913
+
1914
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
1915
+ const uint8_t* addressBuffer{};
1916
+ const uint8_t addressLength = reader.LockFixedBuffer(addressBuffer, 6);
1917
+ ASSERT(addressLength == 6);
1918
+ reader.UnlockBuffer(addressLength);
1919
+ Core::MACAddress _address{addressBuffer};
1920
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1921
+ const bool _bound = reader.Boolean();
1922
+
1923
+ implementation->BindingChanged(static_cast<const Core::MACAddress&>(_address), _bound);
1924
+
1925
+ return (Core::ERROR_NONE);
1926
+ } ();
1927
+
1928
+ if (hresult != Core::ERROR_NONE) {
1929
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::IBindNotification::ID, 0, hresult);
1930
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1931
+ }
1932
+ }
1933
+ , nullptr
1934
+ }; // ExampleSimpleAsyncBindNotificationStubMethods
1935
+
1936
+ // -----------------------------------------------------------------
1937
+ // PROXIES
1938
+ // -----------------------------------------------------------------
1939
+
1940
+ //
1941
+ // RPC::IIteratorTypeInstance_bd6e04b8d151c1f7 interface proxy definitions
1942
+ //
1943
+ // Methods:
1944
+ // (0) virtual bool Next(string&) = 0
1945
+ // (1) virtual bool Previous(string&) = 0
1946
+ // (2) virtual void Reset(const uint32_t) = 0
1947
+ // (3) virtual bool IsValid() const = 0
1948
+ // (4) virtual uint32_t Count() const = 0
1949
+ // (5) virtual string Current() const = 0
1950
+ //
1951
+
1952
+ class RPCIteratorTypeInstance_bd6e04b8d151c1f7Proxy final : public ProxyStub::UnknownProxyType<RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>> {
1953
+ public:
1954
+ RPCIteratorTypeInstance_bd6e04b8d151c1f7Proxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1955
+ : BaseClass(channel, implementation, otherSideInformed)
1956
+ {
1957
+ }
1958
+
1959
+ bool Next(string& _info) override
1960
+ {
1961
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1962
+
1963
+ bool result{};
1964
+
1965
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1966
+ if (hresult == Core::ERROR_NONE) {
1967
+ hresult = [&]() -> Core::hresult {
1968
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1969
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1970
+ result = reader.Boolean();
1971
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1972
+ const uint16_t _infoPeekedLen__ = reader.PeekNumber<uint16_t>();
1973
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _infoPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1974
+ _info = reader.Text();
1975
+
1976
+ return (Core::ERROR_NONE);
1977
+ } ();
1978
+ } else {
1979
+ ASSERT((hresult & COM_ERROR) != 0);
1980
+ }
1981
+
1982
+ if ((hresult & COM_ERROR) != 0) {
1983
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 0, hresult);
1984
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1985
+ }
1986
+
1987
+ return (result);
1988
+ }
1989
+
1990
+ bool Previous(string& _info) override
1991
+ {
1992
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
1993
+
1994
+ bool result{};
1995
+
1996
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1997
+ if (hresult == Core::ERROR_NONE) {
1998
+ hresult = [&]() -> Core::hresult {
1999
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2000
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2001
+ result = reader.Boolean();
2002
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2003
+ const uint16_t _infoPeekedLen__ = reader.PeekNumber<uint16_t>();
2004
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _infoPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2005
+ _info = reader.Text();
2006
+
2007
+ return (Core::ERROR_NONE);
2008
+ } ();
2009
+ } else {
2010
+ ASSERT((hresult & COM_ERROR) != 0);
2011
+ }
2012
+
2013
+ if ((hresult & COM_ERROR) != 0) {
2014
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 1, hresult);
2015
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2016
+ }
2017
+
2018
+ return (result);
2019
+ }
2020
+
2021
+ void Reset(const uint32_t _position) override
2022
+ {
2023
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
2024
+
2025
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2026
+ writer.Number<uint32_t>(_position);
2027
+
2028
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2029
+ if (hresult == Core::ERROR_NONE) {
2030
+ hresult = [&]() -> Core::hresult {
2031
+
2032
+ return (Core::ERROR_NONE);
2033
+ } ();
2034
+ } else {
2035
+ ASSERT((hresult & COM_ERROR) != 0);
2036
+ }
2037
+
2038
+ if ((hresult & COM_ERROR) != 0) {
2039
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 2, hresult);
2040
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2041
+ }
2042
+ }
2043
+
2044
+ bool IsValid() const override
2045
+ {
2046
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
2047
+
2048
+ bool result{};
2049
+
2050
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2051
+ if (hresult == Core::ERROR_NONE) {
2052
+ hresult = [&]() -> Core::hresult {
2053
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2054
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2055
+ result = reader.Boolean();
2056
+
2057
+ return (Core::ERROR_NONE);
2058
+ } ();
2059
+ } else {
2060
+ ASSERT((hresult & COM_ERROR) != 0);
2061
+ }
2062
+
2063
+ if ((hresult & COM_ERROR) != 0) {
2064
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 3, hresult);
2065
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2066
+ }
2067
+
2068
+ return (result);
2069
+ }
2070
+
2071
+ uint32_t Count() const override
2072
+ {
2073
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
2074
+
2075
+ uint32_t result{};
2076
+
2077
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2078
+ if (hresult == Core::ERROR_NONE) {
2079
+ hresult = [&]() -> Core::hresult {
2080
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2081
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2082
+ result = reader.Number<uint32_t>();
2083
+
2084
+ return (Core::ERROR_NONE);
2085
+ } ();
2086
+ } else {
2087
+ ASSERT((hresult & COM_ERROR) != 0);
2088
+ }
2089
+
2090
+ if ((hresult & COM_ERROR) != 0) {
2091
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 4, hresult);
2092
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2093
+ }
2094
+
2095
+ return (result);
2096
+ }
2097
+
2098
+ string Current() const override
2099
+ {
2100
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
2101
+
2102
+ string result{};
2103
+
2104
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2105
+ if (hresult == Core::ERROR_NONE) {
2106
+ hresult = [&]() -> Core::hresult {
2107
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2108
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2109
+ const uint16_t resultPeekedLen__ = reader.PeekNumber<uint16_t>();
2110
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2111
+ result = reader.Text();
2112
+
2113
+ return (Core::ERROR_NONE);
2114
+ } ();
2115
+ } else {
2116
+ ASSERT((hresult & COM_ERROR) != 0);
2117
+ }
2118
+
2119
+ if ((hresult & COM_ERROR) != 0) {
2120
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>::ID, 5, hresult);
2121
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2122
+ }
2123
+
2124
+ return (result);
2125
+ }
2126
+
2127
+ }; // class RPCIteratorTypeInstance_bd6e04b8d151c1f7Proxy
2128
+
2129
+ //
2130
+ // RPC::IIteratorTypeInstance_60eba5a793c685ea interface proxy definitions
2131
+ //
2132
+ // Methods:
2133
+ // (0) virtual bool Next(uint32_t&) = 0
2134
+ // (1) virtual bool Previous(uint32_t&) = 0
2135
+ // (2) virtual void Reset(const uint32_t) = 0
2136
+ // (3) virtual bool IsValid() const = 0
2137
+ // (4) virtual uint32_t Count() const = 0
2138
+ // (5) virtual uint32_t Current() const = 0
2139
+ //
2140
+
2141
+ class RPCIteratorTypeInstance_60eba5a793c685eaProxy final : public ProxyStub::UnknownProxyType<RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>> {
2142
+ public:
2143
+ RPCIteratorTypeInstance_60eba5a793c685eaProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
2144
+ : BaseClass(channel, implementation, otherSideInformed)
2145
+ {
2146
+ }
2147
+
2148
+ bool Next(uint32_t& _info) override
2149
+ {
2150
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
2151
+
2152
+ bool result{};
2153
+
2154
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2155
+ if (hresult == Core::ERROR_NONE) {
2156
+ hresult = [&]() -> Core::hresult {
2157
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2158
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2159
+ result = reader.Boolean();
2160
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2161
+ _info = reader.Number<uint32_t>();
2162
+
2163
+ return (Core::ERROR_NONE);
2164
+ } ();
2165
+ } else {
2166
+ ASSERT((hresult & COM_ERROR) != 0);
2167
+ }
2168
+
2169
+ if ((hresult & COM_ERROR) != 0) {
2170
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 0, hresult);
2171
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2172
+ }
2173
+
2174
+ return (result);
2175
+ }
2176
+
2177
+ bool Previous(uint32_t& _info) override
2178
+ {
2179
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
2180
+
2181
+ bool result{};
2182
+
2183
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2184
+ if (hresult == Core::ERROR_NONE) {
2185
+ hresult = [&]() -> Core::hresult {
2186
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2187
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2188
+ result = reader.Boolean();
2189
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2190
+ _info = reader.Number<uint32_t>();
2191
+
2192
+ return (Core::ERROR_NONE);
2193
+ } ();
2194
+ } else {
2195
+ ASSERT((hresult & COM_ERROR) != 0);
2196
+ }
2197
+
2198
+ if ((hresult & COM_ERROR) != 0) {
2199
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 1, hresult);
2200
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2201
+ }
2202
+
2203
+ return (result);
2204
+ }
2205
+
2206
+ void Reset(const uint32_t _position) override
2207
+ {
2208
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
2209
+
2210
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2211
+ writer.Number<uint32_t>(_position);
2212
+
2213
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2214
+ if (hresult == Core::ERROR_NONE) {
2215
+ hresult = [&]() -> Core::hresult {
2216
+
2217
+ return (Core::ERROR_NONE);
2218
+ } ();
2219
+ } else {
2220
+ ASSERT((hresult & COM_ERROR) != 0);
2221
+ }
2222
+
2223
+ if ((hresult & COM_ERROR) != 0) {
2224
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 2, hresult);
2225
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2226
+ }
2227
+ }
2228
+
2229
+ bool IsValid() const override
2230
+ {
2231
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
2232
+
2233
+ bool result{};
2234
+
2235
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2236
+ if (hresult == Core::ERROR_NONE) {
2237
+ hresult = [&]() -> Core::hresult {
2238
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2239
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2240
+ result = reader.Boolean();
2241
+
2242
+ return (Core::ERROR_NONE);
2243
+ } ();
2244
+ } else {
2245
+ ASSERT((hresult & COM_ERROR) != 0);
2246
+ }
2247
+
2248
+ if ((hresult & COM_ERROR) != 0) {
2249
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 3, hresult);
2250
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2251
+ }
2252
+
2253
+ return (result);
2254
+ }
2255
+
2256
+ uint32_t Count() const override
2257
+ {
2258
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
2259
+
2260
+ uint32_t result{};
2261
+
2262
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2263
+ if (hresult == Core::ERROR_NONE) {
2264
+ hresult = [&]() -> Core::hresult {
2265
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2266
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2267
+ result = reader.Number<uint32_t>();
2268
+
2269
+ return (Core::ERROR_NONE);
2270
+ } ();
2271
+ } else {
2272
+ ASSERT((hresult & COM_ERROR) != 0);
2273
+ }
2274
+
2275
+ if ((hresult & COM_ERROR) != 0) {
2276
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 4, hresult);
2277
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2278
+ }
2279
+
2280
+ return (result);
2281
+ }
2282
+
2283
+ uint32_t Current() const override
2284
+ {
2285
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
2286
+
2287
+ uint32_t result{};
2288
+
2289
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2290
+ if (hresult == Core::ERROR_NONE) {
2291
+ hresult = [&]() -> Core::hresult {
2292
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2293
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2294
+ result = reader.Number<uint32_t>();
2295
+
2296
+ return (Core::ERROR_NONE);
2297
+ } ();
2298
+ } else {
2299
+ ASSERT((hresult & COM_ERROR) != 0);
2300
+ }
2301
+
2302
+ if ((hresult & COM_ERROR) != 0) {
2303
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>::ID, 5, hresult);
2304
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2305
+ }
2306
+
2307
+ return (result);
2308
+ }
2309
+
2310
+ }; // class RPCIteratorTypeInstance_60eba5a793c685eaProxy
2311
+
2312
+ //
2313
+ // RPC::IIteratorTypeInstance_195e88cf7f955a2e interface proxy definitions
2314
+ //
2315
+ // Methods:
2316
+ // (0) virtual bool Next(RPC::Environment&) = 0
2317
+ // (1) virtual bool Previous(RPC::Environment&) = 0
2318
+ // (2) virtual void Reset(const uint32_t) = 0
2319
+ // (3) virtual bool IsValid() const = 0
2320
+ // (4) virtual uint32_t Count() const = 0
2321
+ // (5) virtual RPC::Environment Current() const = 0
2322
+ //
2323
+
2324
+ class RPCIteratorTypeInstance_195e88cf7f955a2eProxy final : public ProxyStub::UnknownProxyType<RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>> {
2325
+ public:
2326
+ RPCIteratorTypeInstance_195e88cf7f955a2eProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
2327
+ : BaseClass(channel, implementation, otherSideInformed)
2328
+ {
2329
+ }
2330
+
2331
+ bool Next(RPC::Environment& _info) override
2332
+ {
2333
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
2334
+
2335
+ bool result{};
2336
+
2337
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2338
+ if (hresult == Core::ERROR_NONE) {
2339
+ hresult = [&]() -> Core::hresult {
2340
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2341
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2342
+ result = reader.Boolean();
2343
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2344
+ const uint16_t _info_KeyPeekedLen__ = reader.PeekNumber<uint16_t>();
2345
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _info_KeyPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2346
+ _info.Key = reader.Text();
2347
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2348
+ const uint16_t _info_ValuePeekedLen__ = reader.PeekNumber<uint16_t>();
2349
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _info_ValuePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2350
+ _info.Value = reader.Text();
2351
+ if (reader.Length() < (Core::RealSize<RPC::Environment::scope>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2352
+ _info.Scope = reader.Number<RPC::Environment::scope>();
2353
+
2354
+ return (Core::ERROR_NONE);
2355
+ } ();
2356
+ } else {
2357
+ ASSERT((hresult & COM_ERROR) != 0);
2358
+ }
2359
+
2360
+ if ((hresult & COM_ERROR) != 0) {
2361
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 0, hresult);
2362
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2363
+ }
2364
+
2365
+ return (result);
2366
+ }
2367
+
2368
+ bool Previous(RPC::Environment& _info) override
2369
+ {
2370
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
2371
+
2372
+ bool result{};
2373
+
2374
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2375
+ if (hresult == Core::ERROR_NONE) {
2376
+ hresult = [&]() -> Core::hresult {
2377
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2378
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2379
+ result = reader.Boolean();
2380
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2381
+ const uint16_t _info_KeyPeekedLen__ = reader.PeekNumber<uint16_t>();
2382
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _info_KeyPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2383
+ _info.Key = reader.Text();
2384
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2385
+ const uint16_t _info_ValuePeekedLen__ = reader.PeekNumber<uint16_t>();
2386
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _info_ValuePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2387
+ _info.Value = reader.Text();
2388
+ if (reader.Length() < (Core::RealSize<RPC::Environment::scope>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2389
+ _info.Scope = reader.Number<RPC::Environment::scope>();
2390
+
2391
+ return (Core::ERROR_NONE);
2392
+ } ();
2393
+ } else {
2394
+ ASSERT((hresult & COM_ERROR) != 0);
2395
+ }
2396
+
2397
+ if ((hresult & COM_ERROR) != 0) {
2398
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 1, hresult);
2399
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2400
+ }
2401
+
2402
+ return (result);
2403
+ }
2404
+
2405
+ void Reset(const uint32_t _position) override
2406
+ {
2407
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
2408
+
2409
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2410
+ writer.Number<uint32_t>(_position);
2411
+
2412
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2413
+ if (hresult == Core::ERROR_NONE) {
2414
+ hresult = [&]() -> Core::hresult {
2415
+
2416
+ return (Core::ERROR_NONE);
2417
+ } ();
2418
+ } else {
2419
+ ASSERT((hresult & COM_ERROR) != 0);
2420
+ }
2421
+
2422
+ if ((hresult & COM_ERROR) != 0) {
2423
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 2, hresult);
2424
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2425
+ }
2426
+ }
2427
+
2428
+ bool IsValid() const override
2429
+ {
2430
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
2431
+
2432
+ bool result{};
2433
+
2434
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2435
+ if (hresult == Core::ERROR_NONE) {
2436
+ hresult = [&]() -> Core::hresult {
2437
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2438
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2439
+ result = reader.Boolean();
2440
+
2441
+ return (Core::ERROR_NONE);
2442
+ } ();
2443
+ } else {
2444
+ ASSERT((hresult & COM_ERROR) != 0);
2445
+ }
2446
+
2447
+ if ((hresult & COM_ERROR) != 0) {
2448
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 3, hresult);
2449
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2450
+ }
2451
+
2452
+ return (result);
2453
+ }
2454
+
2455
+ uint32_t Count() const override
2456
+ {
2457
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
2458
+
2459
+ uint32_t result{};
2460
+
2461
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2462
+ if (hresult == Core::ERROR_NONE) {
2463
+ hresult = [&]() -> Core::hresult {
2464
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2465
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2466
+ result = reader.Number<uint32_t>();
2467
+
2468
+ return (Core::ERROR_NONE);
2469
+ } ();
2470
+ } else {
2471
+ ASSERT((hresult & COM_ERROR) != 0);
2472
+ }
2473
+
2474
+ if ((hresult & COM_ERROR) != 0) {
2475
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 4, hresult);
2476
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2477
+ }
2478
+
2479
+ return (result);
2480
+ }
2481
+
2482
+ RPC::Environment Current() const override
2483
+ {
2484
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
2485
+
2486
+ RPC::Environment result{};
2487
+
2488
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2489
+ if (hresult == Core::ERROR_NONE) {
2490
+ hresult = [&]() -> Core::hresult {
2491
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2492
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2493
+ const uint16_t result_KeyPeekedLen__ = reader.PeekNumber<uint16_t>();
2494
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + result_KeyPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2495
+ result.Key = reader.Text();
2496
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2497
+ const uint16_t result_ValuePeekedLen__ = reader.PeekNumber<uint16_t>();
2498
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + result_ValuePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2499
+ result.Value = reader.Text();
2500
+ if (reader.Length() < (Core::RealSize<RPC::Environment::scope>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2501
+ result.Scope = reader.Number<RPC::Environment::scope>();
2502
+
2503
+ return (Core::ERROR_NONE);
2504
+ } ();
2505
+ } else {
2506
+ ASSERT((hresult & COM_ERROR) != 0);
2507
+ }
2508
+
2509
+ if ((hresult & COM_ERROR) != 0) {
2510
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>::ID, 5, hresult);
2511
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
2512
+ }
2513
+
2514
+ return (result);
2515
+ }
2516
+
2517
+ }; // class RPCIteratorTypeInstance_195e88cf7f955a2eProxy
2518
+
2519
+ //
2520
+ // Example::ISimpleAsync interface proxy definitions
2521
+ //
2522
+ // Methods:
2523
+ // (0) virtual Core::hresult Connect(const Core::OptionalType<std::vector<uint8_t>>&, const Core::OptionalType<uint16_t>&, Example::ISimpleAsync::ICallback* const) = 0
2524
+ // (1) virtual Core::hresult Abort() = 0
2525
+ // (2) virtual Core::hresult Disconnect() = 0
2526
+ // (3) virtual Core::hresult Connected(const std::vector<uint8_t>&, bool&) const = 0
2527
+ // (4) virtual Core::hresult Link(const uint8_t[6]) = 0
2528
+ // (5) virtual Core::hresult Unlink(const uint8_t[6]) = 0
2529
+ // (6) virtual Core::hresult LinkedDevice(uint8_t[6]) const = 0
2530
+ // (7) virtual Core::hresult Register(Example::ISimpleAsync::INotification* const) = 0
2531
+ // (8) virtual Core::hresult Unregister(const Example::ISimpleAsync::INotification* const) = 0
2532
+ // (9) virtual Core::hresult Metadata(const uint8_t[6], const string&) = 0
2533
+ // (10) virtual Core::hresult Metadata(const uint8_t[6], string&) const = 0
2534
+ // (11) virtual Core::hresult Bind(const Core::MACAddress&) = 0
2535
+ // (12) virtual Core::hresult Unbind(const Core::MACAddress&) = 0
2536
+ // (13) virtual Core::hresult BoundDevice(Core::MACAddress&) const = 0
2537
+ // (14) virtual Core::hresult Type(const Core::MACAddress&, const string&) = 0
2538
+ // (15) virtual Core::hresult Type(const Core::MACAddress&, string&) const = 0
2539
+ // (16) virtual Core::hresult Register(Example::ISimpleAsync::IBindNotification* const) = 0
2540
+ // (17) virtual Core::hresult Unregister(const Example::ISimpleAsync::IBindNotification* const) = 0
2541
+ // (18) virtual Core::hresult Tables(const bool, std::vector<string>&) = 0
2542
+ // (19) virtual Core::hresult Tables2(const bool, std::vector<string>&, std::vector<uint8_t>&) = 0
2543
+ // (20) virtual Core::hresult Tables3(const bool, Core::OptionalType<std::vector<string>>&) = 0
2544
+ // (21) virtual Core::hresult Tables4(const bool, RPC::IStringIterator*&) = 0
2545
+ // (22) virtual Core::hresult Tables5(const bool, RPC::IStringIterator*&, RPC::IValueIterator*&) = 0
2546
+ // (23) virtual Core::hresult Tables6(const bool, Example::ISimpleAsync::Record&) = 0
2547
+ // (24) virtual Core::hresult Tables7(const bool, Core::OptionalType<Example::ISimpleAsync::Record>&) = 0
2548
+ // (25) virtual Core::hresult Tables8(const bool, Core::OptionalType<Example::ISimpleAsync::Record2>&) = 0
2549
+ // (26) virtual Core::hresult Tables9(const bool, Example::ISimpleAsync::Record2&) = 0
2550
+ // (27) virtual Core::hresult OptionalResult(const bool, Core::OptionalType<string>&) = 0
2551
+ //
2552
+
2553
+ class ExampleSimpleAsyncProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleAsync> {
2554
+ public:
2555
+ ExampleSimpleAsyncProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
2556
+ : BaseClass(channel, implementation, otherSideInformed)
2557
+ {
2558
+ }
2559
+
2560
+ Core::hresult Connect(const Core::OptionalType<std::vector<uint8_t>>& _address, const Core::OptionalType<uint16_t>& _timeout, Example::ISimpleAsync::ICallback* const _cb) override
2561
+ {
2562
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
2563
+
2564
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2565
+ writer.Boolean(_address.IsSet());
2566
+ if (_address.IsSet() == true) {
2567
+ writer.Number<uint8_t>(_address.Value().size());
2568
+ for (uint8_t i = 0; i < _address.Value().size(); i++) {
2569
+ writer.Number<uint8_t>(_address.Value()[i]);
2570
+ }
2571
+ }
2572
+ writer.Boolean(_timeout.IsSet());
2573
+ if (_timeout.IsSet() == true) {
2574
+ writer.Number<uint16_t>(_timeout.Value());
2575
+ }
2576
+ writer.Number<Core::instance_id>(RPC::instance_cast(_cb));
2577
+
2578
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_cb), Example::ISimpleAsync::ICallback::ID }, { 0, 0 } };
2579
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
2580
+
2581
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2582
+ if (hresult == Core::ERROR_NONE) {
2583
+ hresult = [&]() -> Core::hresult {
2584
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2585
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2586
+ hresult = reader.Number<Core::hresult>();
2587
+
2588
+ const uint32_t completeResult__ = _Complete(reader);
2589
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
2590
+
2591
+ return (hresult);
2592
+ } ();
2593
+ } else {
2594
+ ASSERT((hresult & COM_ERROR) != 0);
2595
+ }
2596
+
2597
+ if ((hresult & COM_ERROR) != 0) {
2598
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 0, hresult);
2599
+ }
2600
+
2601
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
2602
+
2603
+ return (hresult);
2604
+ }
2605
+
2606
+ Core::hresult Abort() override
2607
+ {
2608
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
2609
+
2610
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2611
+ if (hresult == Core::ERROR_NONE) {
2612
+ hresult = [&]() -> Core::hresult {
2613
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2614
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2615
+ hresult = reader.Number<Core::hresult>();
2616
+
2617
+ return (hresult);
2618
+ } ();
2619
+ } else {
2620
+ ASSERT((hresult & COM_ERROR) != 0);
2621
+ }
2622
+
2623
+ if ((hresult & COM_ERROR) != 0) {
2624
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 1, hresult);
2625
+ }
2626
+
2627
+ return (hresult);
2628
+ }
2629
+
2630
+ Core::hresult Disconnect() override
2631
+ {
2632
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
2633
+
2634
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2635
+ if (hresult == Core::ERROR_NONE) {
2636
+ hresult = [&]() -> Core::hresult {
2637
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2638
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2639
+ hresult = reader.Number<Core::hresult>();
2640
+
2641
+ return (hresult);
2642
+ } ();
2643
+ } else {
2644
+ ASSERT((hresult & COM_ERROR) != 0);
2645
+ }
2646
+
2647
+ if ((hresult & COM_ERROR) != 0) {
2648
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 2, hresult);
2649
+ }
2650
+
2651
+ return (hresult);
2652
+ }
2653
+
2654
+ Core::hresult Connected(const std::vector<uint8_t>& _address, bool& _result) const override
2655
+ {
2656
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
2657
+
2658
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2659
+ writer.Number<uint8_t>(_address.size());
2660
+ for (uint8_t i = 0; i < _address.size(); i++) {
2661
+ writer.Number<uint8_t>(_address[i]);
2662
+ }
2663
+
2664
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2665
+ if (hresult == Core::ERROR_NONE) {
2666
+ hresult = [&]() -> Core::hresult {
2667
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2668
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2669
+ hresult = reader.Number<Core::hresult>();
2670
+ if ((hresult & COM_ERROR) == 0) {
2671
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2672
+ _result = reader.Boolean();
2673
+ }
2674
+
2675
+ return (hresult);
2676
+ } ();
2677
+ } else {
2678
+ ASSERT((hresult & COM_ERROR) != 0);
2679
+ }
2680
+
2681
+ if ((hresult & COM_ERROR) != 0) {
2682
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 3, hresult);
2683
+ }
2684
+
2685
+ return (hresult);
2686
+ }
2687
+
2688
+ Core::hresult Link(const uint8_t _address[6]) override
2689
+ {
2690
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
2691
+
2692
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2693
+ writer.Copy(6, _address);
2694
+
2695
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2696
+ if (hresult == Core::ERROR_NONE) {
2697
+ hresult = [&]() -> Core::hresult {
2698
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2699
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2700
+ hresult = reader.Number<Core::hresult>();
2701
+
2702
+ return (hresult);
2703
+ } ();
2704
+ } else {
2705
+ ASSERT((hresult & COM_ERROR) != 0);
2706
+ }
2707
+
2708
+ if ((hresult & COM_ERROR) != 0) {
2709
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 4, hresult);
2710
+ }
2711
+
2712
+ return (hresult);
2713
+ }
2714
+
2715
+ Core::hresult Unlink(const uint8_t _address[6]) override
2716
+ {
2717
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
2718
+
2719
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2720
+ writer.Copy(6, _address);
2721
+
2722
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2723
+ if (hresult == Core::ERROR_NONE) {
2724
+ hresult = [&]() -> Core::hresult {
2725
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2726
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2727
+ hresult = reader.Number<Core::hresult>();
2728
+
2729
+ return (hresult);
2730
+ } ();
2731
+ } else {
2732
+ ASSERT((hresult & COM_ERROR) != 0);
2733
+ }
2734
+
2735
+ if ((hresult & COM_ERROR) != 0) {
2736
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 5, hresult);
2737
+ }
2738
+
2739
+ return (hresult);
2740
+ }
2741
+
2742
+ Core::hresult LinkedDevice(uint8_t _address[6]) const override
2743
+ {
2744
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(6));
2745
+
2746
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2747
+ if (hresult == Core::ERROR_NONE) {
2748
+ hresult = [&]() -> Core::hresult {
2749
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2750
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2751
+ hresult = reader.Number<Core::hresult>();
2752
+ if ((hresult & COM_ERROR) == 0) {
2753
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2754
+ const uint8_t _addressPeekedLen__ = reader.PeekNumber<uint8_t>();
2755
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint8_t>()) + _addressPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2756
+ reader.Copy(6, _address);
2757
+ }
2758
+
2759
+ return (hresult);
2760
+ } ();
2761
+ } else {
2762
+ ASSERT((hresult & COM_ERROR) != 0);
2763
+ }
2764
+
2765
+ if ((hresult & COM_ERROR) != 0) {
2766
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 6, hresult);
2767
+ }
2768
+
2769
+ return (hresult);
2770
+ }
2771
+
2772
+ Core::hresult Register(Example::ISimpleAsync::INotification* const _notification) override
2773
+ {
2774
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(7));
2775
+
2776
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2777
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
2778
+
2779
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notification), Example::ISimpleAsync::INotification::ID }, { 0, 0 } };
2780
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
2781
+
2782
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2783
+ if (hresult == Core::ERROR_NONE) {
2784
+ hresult = [&]() -> Core::hresult {
2785
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2786
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2787
+ hresult = reader.Number<Core::hresult>();
2788
+
2789
+ const uint32_t completeResult__ = _Complete(reader);
2790
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
2791
+
2792
+ return (hresult);
2793
+ } ();
2794
+ } else {
2795
+ ASSERT((hresult & COM_ERROR) != 0);
2796
+ }
2797
+
2798
+ if ((hresult & COM_ERROR) != 0) {
2799
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 7, hresult);
2800
+ }
2801
+
2802
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
2803
+
2804
+ return (hresult);
2805
+ }
2806
+
2807
+ Core::hresult Unregister(const Example::ISimpleAsync::INotification* const _notification) override
2808
+ {
2809
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(8));
2810
+
2811
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2812
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
2813
+
2814
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notification), Example::ISimpleAsync::INotification::ID }, { 0, 0 } };
2815
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
2816
+
2817
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2818
+ if (hresult == Core::ERROR_NONE) {
2819
+ hresult = [&]() -> Core::hresult {
2820
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2821
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2822
+ hresult = reader.Number<Core::hresult>();
2823
+
2824
+ const uint32_t completeResult__ = _Complete(reader);
2825
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
2826
+
2827
+ return (hresult);
2828
+ } ();
2829
+ } else {
2830
+ ASSERT((hresult & COM_ERROR) != 0);
2831
+ }
2832
+
2833
+ if ((hresult & COM_ERROR) != 0) {
2834
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 8, hresult);
2835
+ }
2836
+
2837
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
2838
+
2839
+ return (hresult);
2840
+ }
2841
+
2842
+ Core::hresult Metadata(const uint8_t _address[6], const string& _metadata) override
2843
+ {
2844
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(9));
2845
+
2846
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2847
+ writer.Copy(6, _address);
2848
+ writer.Text(_metadata);
2849
+
2850
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2851
+ if (hresult == Core::ERROR_NONE) {
2852
+ hresult = [&]() -> Core::hresult {
2853
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2854
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2855
+ hresult = reader.Number<Core::hresult>();
2856
+
2857
+ return (hresult);
2858
+ } ();
2859
+ } else {
2860
+ ASSERT((hresult & COM_ERROR) != 0);
2861
+ }
2862
+
2863
+ if ((hresult & COM_ERROR) != 0) {
2864
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 9, hresult);
2865
+ }
2866
+
2867
+ return (hresult);
2868
+ }
2869
+
2870
+ Core::hresult Metadata(const uint8_t _address[6], string& _metadata) const override
2871
+ {
2872
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(10));
2873
+
2874
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2875
+ writer.Copy(6, _address);
2876
+
2877
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2878
+ if (hresult == Core::ERROR_NONE) {
2879
+ hresult = [&]() -> Core::hresult {
2880
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2881
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2882
+ hresult = reader.Number<Core::hresult>();
2883
+ if ((hresult & COM_ERROR) == 0) {
2884
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2885
+ const uint16_t _metadataPeekedLen__ = reader.PeekNumber<uint16_t>();
2886
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _metadataPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2887
+ _metadata = reader.Text();
2888
+ }
2889
+
2890
+ return (hresult);
2891
+ } ();
2892
+ } else {
2893
+ ASSERT((hresult & COM_ERROR) != 0);
2894
+ }
2895
+
2896
+ if ((hresult & COM_ERROR) != 0) {
2897
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 10, hresult);
2898
+ }
2899
+
2900
+ return (hresult);
2901
+ }
2902
+
2903
+ Core::hresult Bind(const Core::MACAddress& _address) override
2904
+ {
2905
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(11));
2906
+
2907
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2908
+ writer.Copy(6, _address);
2909
+
2910
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2911
+ if (hresult == Core::ERROR_NONE) {
2912
+ hresult = [&]() -> Core::hresult {
2913
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2914
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2915
+ hresult = reader.Number<Core::hresult>();
2916
+
2917
+ return (hresult);
2918
+ } ();
2919
+ } else {
2920
+ ASSERT((hresult & COM_ERROR) != 0);
2921
+ }
2922
+
2923
+ if ((hresult & COM_ERROR) != 0) {
2924
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 11, hresult);
2925
+ }
2926
+
2927
+ return (hresult);
2928
+ }
2929
+
2930
+ Core::hresult Unbind(const Core::MACAddress& _address) override
2931
+ {
2932
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(12));
2933
+
2934
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2935
+ writer.Copy(6, _address);
2936
+
2937
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2938
+ if (hresult == Core::ERROR_NONE) {
2939
+ hresult = [&]() -> Core::hresult {
2940
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2941
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2942
+ hresult = reader.Number<Core::hresult>();
2943
+
2944
+ return (hresult);
2945
+ } ();
2946
+ } else {
2947
+ ASSERT((hresult & COM_ERROR) != 0);
2948
+ }
2949
+
2950
+ if ((hresult & COM_ERROR) != 0) {
2951
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 12, hresult);
2952
+ }
2953
+
2954
+ return (hresult);
2955
+ }
2956
+
2957
+ Core::hresult BoundDevice(Core::MACAddress& _address) const override
2958
+ {
2959
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(13));
2960
+
2961
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2962
+ if (hresult == Core::ERROR_NONE) {
2963
+ hresult = [&]() -> Core::hresult {
2964
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2965
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2966
+ hresult = reader.Number<Core::hresult>();
2967
+ if ((hresult & COM_ERROR) == 0) {
2968
+ reader.Copy(6, _address);
2969
+ }
2970
+
2971
+ return (hresult);
2972
+ } ();
2973
+ } else {
2974
+ ASSERT((hresult & COM_ERROR) != 0);
2975
+ }
2976
+
2977
+ if ((hresult & COM_ERROR) != 0) {
2978
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 13, hresult);
2979
+ }
2980
+
2981
+ return (hresult);
2982
+ }
2983
+
2984
+ Core::hresult Type(const Core::MACAddress& _address, const string& _value) override
2985
+ {
2986
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(14));
2987
+
2988
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
2989
+ writer.Copy(6, _address);
2990
+ writer.Text(_value);
2991
+
2992
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
2993
+ if (hresult == Core::ERROR_NONE) {
2994
+ hresult = [&]() -> Core::hresult {
2995
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
2996
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2997
+ hresult = reader.Number<Core::hresult>();
2998
+
2999
+ return (hresult);
3000
+ } ();
3001
+ } else {
3002
+ ASSERT((hresult & COM_ERROR) != 0);
3003
+ }
3004
+
3005
+ if ((hresult & COM_ERROR) != 0) {
3006
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 14, hresult);
3007
+ }
3008
+
3009
+ return (hresult);
3010
+ }
3011
+
3012
+ Core::hresult Type(const Core::MACAddress& _address, string& _value) const override
3013
+ {
3014
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(15));
3015
+
3016
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3017
+ writer.Copy(6, _address);
3018
+
3019
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3020
+ if (hresult == Core::ERROR_NONE) {
3021
+ hresult = [&]() -> Core::hresult {
3022
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3023
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3024
+ hresult = reader.Number<Core::hresult>();
3025
+ if ((hresult & COM_ERROR) == 0) {
3026
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3027
+ const uint16_t _valuePeekedLen__ = reader.PeekNumber<uint16_t>();
3028
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _valuePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3029
+ _value = reader.Text();
3030
+ }
3031
+
3032
+ return (hresult);
3033
+ } ();
3034
+ } else {
3035
+ ASSERT((hresult & COM_ERROR) != 0);
3036
+ }
3037
+
3038
+ if ((hresult & COM_ERROR) != 0) {
3039
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 15, hresult);
3040
+ }
3041
+
3042
+ return (hresult);
3043
+ }
3044
+
3045
+ Core::hresult Register(Example::ISimpleAsync::IBindNotification* const _notification) override
3046
+ {
3047
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(16));
3048
+
3049
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3050
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
3051
+
3052
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notification), Example::ISimpleAsync::IBindNotification::ID }, { 0, 0 } };
3053
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
3054
+
3055
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3056
+ if (hresult == Core::ERROR_NONE) {
3057
+ hresult = [&]() -> Core::hresult {
3058
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3059
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3060
+ hresult = reader.Number<Core::hresult>();
3061
+
3062
+ const uint32_t completeResult__ = _Complete(reader);
3063
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
3064
+
3065
+ return (hresult);
3066
+ } ();
3067
+ } else {
3068
+ ASSERT((hresult & COM_ERROR) != 0);
3069
+ }
3070
+
3071
+ if ((hresult & COM_ERROR) != 0) {
3072
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 16, hresult);
3073
+ }
3074
+
3075
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
3076
+
3077
+ return (hresult);
3078
+ }
3079
+
3080
+ Core::hresult Unregister(const Example::ISimpleAsync::IBindNotification* const _notification) override
3081
+ {
3082
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(17));
3083
+
3084
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3085
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
3086
+
3087
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notification), Example::ISimpleAsync::IBindNotification::ID }, { 0, 0 } };
3088
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
3089
+
3090
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3091
+ if (hresult == Core::ERROR_NONE) {
3092
+ hresult = [&]() -> Core::hresult {
3093
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3094
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3095
+ hresult = reader.Number<Core::hresult>();
3096
+
3097
+ const uint32_t completeResult__ = _Complete(reader);
3098
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
3099
+
3100
+ return (hresult);
3101
+ } ();
3102
+ } else {
3103
+ ASSERT((hresult & COM_ERROR) != 0);
3104
+ }
3105
+
3106
+ if ((hresult & COM_ERROR) != 0) {
3107
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 17, hresult);
3108
+ }
3109
+
3110
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
3111
+
3112
+ return (hresult);
3113
+ }
3114
+
3115
+ Core::hresult Tables(const bool _fill, std::vector<string>& _stringTables) override
3116
+ {
3117
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(18));
3118
+
3119
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3120
+ writer.Boolean(_fill);
3121
+
3122
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3123
+ if (hresult == Core::ERROR_NONE) {
3124
+ hresult = [&]() -> Core::hresult {
3125
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3126
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3127
+ hresult = reader.Number<Core::hresult>();
3128
+ if ((hresult & COM_ERROR) == 0) {
3129
+ uint8_t _stringTablesSize{};
3130
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3131
+ _stringTablesSize = reader.Number<uint8_t>();
3132
+ _stringTables.reserve(_stringTablesSize);
3133
+ for (uint8_t i = 0; i < _stringTablesSize; i++) {
3134
+ string _stringTablesItem{};
3135
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3136
+ const uint16_t _stringTablesItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3137
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _stringTablesItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3138
+ _stringTablesItem = reader.Text();
3139
+ _stringTables.push_back(std::move(_stringTablesItem));
3140
+ }
3141
+ }
3142
+
3143
+ return (hresult);
3144
+ } ();
3145
+ } else {
3146
+ ASSERT((hresult & COM_ERROR) != 0);
3147
+ }
3148
+
3149
+ if ((hresult & COM_ERROR) != 0) {
3150
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 18, hresult);
3151
+ }
3152
+
3153
+ return (hresult);
3154
+ }
3155
+
3156
+ Core::hresult Tables2(const bool _fill, std::vector<string>& _stringTables, std::vector<uint8_t>& _intTables) override
3157
+ {
3158
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(19));
3159
+
3160
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3161
+ writer.Boolean(_fill);
3162
+
3163
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3164
+ if (hresult == Core::ERROR_NONE) {
3165
+ hresult = [&]() -> Core::hresult {
3166
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3167
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3168
+ hresult = reader.Number<Core::hresult>();
3169
+ if ((hresult & COM_ERROR) == 0) {
3170
+ uint8_t _stringTablesSize{};
3171
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3172
+ _stringTablesSize = reader.Number<uint8_t>();
3173
+ _stringTables.reserve(_stringTablesSize);
3174
+ for (uint8_t i = 0; i < _stringTablesSize; i++) {
3175
+ string _stringTablesItem{};
3176
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3177
+ const uint16_t _stringTablesItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3178
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _stringTablesItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3179
+ _stringTablesItem = reader.Text();
3180
+ _stringTables.push_back(std::move(_stringTablesItem));
3181
+ }
3182
+ uint8_t _intTablesSize{};
3183
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3184
+ _intTablesSize = reader.Number<uint8_t>();
3185
+ _intTables.reserve(_intTablesSize);
3186
+ for (uint8_t i = 0; i < _intTablesSize; i++) {
3187
+ uint8_t _intTablesItem{};
3188
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3189
+ _intTablesItem = reader.Number<uint8_t>();
3190
+ _intTables.push_back(std::move(_intTablesItem));
3191
+ }
3192
+ }
3193
+
3194
+ return (hresult);
3195
+ } ();
3196
+ } else {
3197
+ ASSERT((hresult & COM_ERROR) != 0);
3198
+ }
3199
+
3200
+ if ((hresult & COM_ERROR) != 0) {
3201
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 19, hresult);
3202
+ }
3203
+
3204
+ return (hresult);
3205
+ }
3206
+
3207
+ Core::hresult Tables3(const bool _fill, Core::OptionalType<std::vector<string>>& _stringTables) override
3208
+ {
3209
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(20));
3210
+
3211
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3212
+ writer.Boolean(_fill);
3213
+
3214
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3215
+ if (hresult == Core::ERROR_NONE) {
3216
+ hresult = [&]() -> Core::hresult {
3217
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3218
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3219
+ hresult = reader.Number<Core::hresult>();
3220
+ if ((hresult & COM_ERROR) == 0) {
3221
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3222
+ if (reader.Boolean() == true) {
3223
+ uint8_t _stringTablesSize{};
3224
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3225
+ _stringTablesSize = reader.Number<uint8_t>();
3226
+ _stringTables.Value().reserve(_stringTablesSize);
3227
+ for (uint8_t i = 0; i < _stringTablesSize; i++) {
3228
+ string _stringTablesItem{};
3229
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3230
+ const uint16_t _stringTablesItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3231
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _stringTablesItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3232
+ _stringTablesItem = reader.Text();
3233
+ _stringTables.Value().push_back(std::move(_stringTablesItem));
3234
+ }
3235
+ }
3236
+ }
3237
+
3238
+ return (hresult);
3239
+ } ();
3240
+ } else {
3241
+ ASSERT((hresult & COM_ERROR) != 0);
3242
+ }
3243
+
3244
+ if ((hresult & COM_ERROR) != 0) {
3245
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 20, hresult);
3246
+ }
3247
+
3248
+ return (hresult);
3249
+ }
3250
+
3251
+ Core::hresult Tables4(const bool _fill, RPC::IStringIterator*& _stringTables) override
3252
+ {
3253
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(21));
3254
+
3255
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3256
+ writer.Boolean(_fill);
3257
+
3258
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3259
+ if (hresult == Core::ERROR_NONE) {
3260
+ hresult = [&]() -> Core::hresult {
3261
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3262
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3263
+ hresult = reader.Number<Core::hresult>();
3264
+ if ((hresult & COM_ERROR) == 0) {
3265
+ _stringTables = reinterpret_cast<RPC::IStringIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), RPC::IStringIterator::ID));
3266
+ }
3267
+
3268
+ return (hresult);
3269
+ } ();
3270
+ } else {
3271
+ ASSERT((hresult & COM_ERROR) != 0);
3272
+ }
3273
+
3274
+ if ((hresult & COM_ERROR) != 0) {
3275
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 21, hresult);
3276
+ }
3277
+
3278
+ return (hresult);
3279
+ }
3280
+
3281
+ Core::hresult Tables5(const bool _fill, RPC::IStringIterator*& _stringTables, RPC::IValueIterator*& _intTables) override
3282
+ {
3283
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(22));
3284
+
3285
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3286
+ writer.Boolean(_fill);
3287
+
3288
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3289
+ if (hresult == Core::ERROR_NONE) {
3290
+ hresult = [&]() -> Core::hresult {
3291
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3292
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3293
+ hresult = reader.Number<Core::hresult>();
3294
+ if ((hresult & COM_ERROR) == 0) {
3295
+ _stringTables = reinterpret_cast<RPC::IStringIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), RPC::IStringIterator::ID));
3296
+ _intTables = reinterpret_cast<RPC::IValueIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), RPC::IValueIterator::ID));
3297
+ }
3298
+
3299
+ return (hresult);
3300
+ } ();
3301
+ } else {
3302
+ ASSERT((hresult & COM_ERROR) != 0);
3303
+ }
3304
+
3305
+ if ((hresult & COM_ERROR) != 0) {
3306
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 22, hresult);
3307
+ }
3308
+
3309
+ return (hresult);
3310
+ }
3311
+
3312
+ Core::hresult Tables6(const bool _fill, Example::ISimpleAsync::Record& _pod) override
3313
+ {
3314
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(23));
3315
+
3316
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3317
+ writer.Boolean(_fill);
3318
+
3319
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3320
+ if (hresult == Core::ERROR_NONE) {
3321
+ hresult = [&]() -> Core::hresult {
3322
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3323
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3324
+ hresult = reader.Number<Core::hresult>();
3325
+ if ((hresult & COM_ERROR) == 0) {
3326
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3327
+ const uint16_t _pod_param0PeekedLen__ = reader.PeekNumber<uint16_t>();
3328
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _pod_param0PeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3329
+ _pod.param0 = reader.Text();
3330
+ uint8_t _pod_param1Size{};
3331
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3332
+ _pod_param1Size = reader.Number<uint8_t>();
3333
+ _pod.param1.reserve(_pod_param1Size);
3334
+ for (uint8_t i = 0; i < _pod_param1Size; i++) {
3335
+ string _pod_param1Item{};
3336
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3337
+ const uint16_t _pod_param1ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3338
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _pod_param1ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3339
+ _pod_param1Item = reader.Text();
3340
+ _pod.param1.push_back(std::move(_pod_param1Item));
3341
+ }
3342
+ uint8_t _pod_param2Size{};
3343
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3344
+ _pod_param2Size = reader.Number<uint8_t>();
3345
+ _pod.param2.reserve(_pod_param2Size);
3346
+ for (uint8_t i = 0; i < _pod_param2Size; i++) {
3347
+ string _pod_param2Item{};
3348
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3349
+ const uint16_t _pod_param2ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3350
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _pod_param2ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3351
+ _pod_param2Item = reader.Text();
3352
+ _pod.param2.push_back(std::move(_pod_param2Item));
3353
+ }
3354
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3355
+ if (reader.Boolean() == true) {
3356
+ uint8_t _pod_param3Size{};
3357
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3358
+ _pod_param3Size = reader.Number<uint8_t>();
3359
+ _pod.param3.Value().reserve(_pod_param3Size);
3360
+ for (uint8_t i = 0; i < _pod_param3Size; i++) {
3361
+ string _pod_param3Item{};
3362
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3363
+ const uint16_t _pod_param3ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3364
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _pod_param3ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3365
+ _pod_param3Item = reader.Text();
3366
+ _pod.param3.Value().push_back(std::move(_pod_param3Item));
3367
+ }
3368
+ }
3369
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3370
+ if (reader.Boolean() == true) {
3371
+ uint8_t _pod_param4Size{};
3372
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3373
+ _pod_param4Size = reader.Number<uint8_t>();
3374
+ _pod.param4.Value().reserve(_pod_param4Size);
3375
+ for (uint8_t i = 0; i < _pod_param4Size; i++) {
3376
+ string _pod_param4Item{};
3377
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3378
+ const uint16_t _pod_param4ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3379
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _pod_param4ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3380
+ _pod_param4Item = reader.Text();
3381
+ _pod.param4.Value().push_back(std::move(_pod_param4Item));
3382
+ }
3383
+ }
3384
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3385
+ const uint16_t _pod_param5_param0PeekedLen__ = reader.PeekNumber<uint16_t>();
3386
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _pod_param5_param0PeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3387
+ _pod.param5.param0 = reader.Text();
3388
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3389
+ _pod.param5.param1 = reader.Boolean();
3390
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3391
+ if (reader.Boolean() == true) {
3392
+ Example::ISimpleAsync::SmallRecord _pod_param6Object__{};
3393
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3394
+ const uint16_t _pod_param6Object___param0PeekedLen__ = reader.PeekNumber<uint16_t>();
3395
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _pod_param6Object___param0PeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3396
+ _pod_param6Object__.param0 = reader.Text();
3397
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3398
+ _pod_param6Object__.param1 = reader.Boolean();
3399
+ _pod.param6 = std::move(_pod_param6Object__);
3400
+ }
3401
+ }
3402
+
3403
+ return (hresult);
3404
+ } ();
3405
+ } else {
3406
+ ASSERT((hresult & COM_ERROR) != 0);
3407
+ }
3408
+
3409
+ if ((hresult & COM_ERROR) != 0) {
3410
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 23, hresult);
3411
+ }
3412
+
3413
+ return (hresult);
3414
+ }
3415
+
3416
+ Core::hresult Tables7(const bool _fill, Core::OptionalType<Example::ISimpleAsync::Record>& _pod) override
3417
+ {
3418
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(24));
3419
+
3420
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3421
+ writer.Boolean(_fill);
3422
+
3423
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3424
+ if (hresult == Core::ERROR_NONE) {
3425
+ hresult = [&]() -> Core::hresult {
3426
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3427
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3428
+ hresult = reader.Number<Core::hresult>();
3429
+ if ((hresult & COM_ERROR) == 0) {
3430
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3431
+ if (reader.Boolean() == true) {
3432
+ Example::ISimpleAsync::Record _podObject__{};
3433
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3434
+ const uint16_t _podObject___param0PeekedLen__ = reader.PeekNumber<uint16_t>();
3435
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _podObject___param0PeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3436
+ _podObject__.param0 = reader.Text();
3437
+ uint8_t _podObject___param1Size{};
3438
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3439
+ _podObject___param1Size = reader.Number<uint8_t>();
3440
+ _podObject__.param1.reserve(_podObject___param1Size);
3441
+ for (uint8_t i = 0; i < _podObject___param1Size; i++) {
3442
+ string _podObject___param1Item{};
3443
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3444
+ const uint16_t _podObject___param1ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3445
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _podObject___param1ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3446
+ _podObject___param1Item = reader.Text();
3447
+ _podObject__.param1.push_back(std::move(_podObject___param1Item));
3448
+ }
3449
+ uint8_t _podObject___param2Size{};
3450
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3451
+ _podObject___param2Size = reader.Number<uint8_t>();
3452
+ _podObject__.param2.reserve(_podObject___param2Size);
3453
+ for (uint8_t i = 0; i < _podObject___param2Size; i++) {
3454
+ string _podObject___param2Item{};
3455
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3456
+ const uint16_t _podObject___param2ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3457
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _podObject___param2ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3458
+ _podObject___param2Item = reader.Text();
3459
+ _podObject__.param2.push_back(std::move(_podObject___param2Item));
3460
+ }
3461
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3462
+ if (reader.Boolean() == true) {
3463
+ uint8_t _podObject___param3Size{};
3464
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3465
+ _podObject___param3Size = reader.Number<uint8_t>();
3466
+ _podObject__.param3.Value().reserve(_podObject___param3Size);
3467
+ for (uint8_t i = 0; i < _podObject___param3Size; i++) {
3468
+ string _podObject___param3Item{};
3469
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3470
+ const uint16_t _podObject___param3ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3471
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _podObject___param3ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3472
+ _podObject___param3Item = reader.Text();
3473
+ _podObject__.param3.Value().push_back(std::move(_podObject___param3Item));
3474
+ }
3475
+ }
3476
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3477
+ if (reader.Boolean() == true) {
3478
+ uint8_t _podObject___param4Size{};
3479
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3480
+ _podObject___param4Size = reader.Number<uint8_t>();
3481
+ _podObject__.param4.Value().reserve(_podObject___param4Size);
3482
+ for (uint8_t i = 0; i < _podObject___param4Size; i++) {
3483
+ string _podObject___param4Item{};
3484
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3485
+ const uint16_t _podObject___param4ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3486
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _podObject___param4ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3487
+ _podObject___param4Item = reader.Text();
3488
+ _podObject__.param4.Value().push_back(std::move(_podObject___param4Item));
3489
+ }
3490
+ }
3491
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3492
+ const uint16_t _podObject___param5_param0PeekedLen__ = reader.PeekNumber<uint16_t>();
3493
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _podObject___param5_param0PeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3494
+ _podObject__.param5.param0 = reader.Text();
3495
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3496
+ _podObject__.param5.param1 = reader.Boolean();
3497
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3498
+ if (reader.Boolean() == true) {
3499
+ Example::ISimpleAsync::SmallRecord _podObject___param6Object__{};
3500
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3501
+ const uint16_t _podObject___param6Object___param0PeekedLen__ = reader.PeekNumber<uint16_t>();
3502
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _podObject___param6Object___param0PeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3503
+ _podObject___param6Object__.param0 = reader.Text();
3504
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3505
+ _podObject___param6Object__.param1 = reader.Boolean();
3506
+ _podObject__.param6 = std::move(_podObject___param6Object__);
3507
+ }
3508
+ _pod = std::move(_podObject__);
3509
+ }
3510
+ }
3511
+
3512
+ return (hresult);
3513
+ } ();
3514
+ } else {
3515
+ ASSERT((hresult & COM_ERROR) != 0);
3516
+ }
3517
+
3518
+ if ((hresult & COM_ERROR) != 0) {
3519
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 24, hresult);
3520
+ }
3521
+
3522
+ return (hresult);
3523
+ }
3524
+
3525
+ Core::hresult Tables8(const bool _fill, Core::OptionalType<Example::ISimpleAsync::Record2>& _pod) override
3526
+ {
3527
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(25));
3528
+
3529
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3530
+ writer.Boolean(_fill);
3531
+
3532
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3533
+ if (hresult == Core::ERROR_NONE) {
3534
+ hresult = [&]() -> Core::hresult {
3535
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3536
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3537
+ hresult = reader.Number<Core::hresult>();
3538
+ if ((hresult & COM_ERROR) == 0) {
3539
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3540
+ if (reader.Boolean() == true) {
3541
+ Example::ISimpleAsync::Record2 _podObject__{};
3542
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3543
+ if (reader.Boolean() == true) {
3544
+ uint8_t _podObject___param3Size{};
3545
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3546
+ _podObject___param3Size = reader.Number<uint8_t>();
3547
+ _podObject__.param3.Value().reserve(_podObject___param3Size);
3548
+ for (uint8_t i = 0; i < _podObject___param3Size; i++) {
3549
+ string _podObject___param3Item{};
3550
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3551
+ const uint16_t _podObject___param3ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3552
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _podObject___param3ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3553
+ _podObject___param3Item = reader.Text();
3554
+ _podObject__.param3.Value().push_back(std::move(_podObject___param3Item));
3555
+ }
3556
+ }
3557
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3558
+ if (reader.Boolean() == true) {
3559
+ uint8_t _podObject___param4Size{};
3560
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3561
+ _podObject___param4Size = reader.Number<uint8_t>();
3562
+ _podObject__.param4.Value().reserve(_podObject___param4Size);
3563
+ for (uint8_t i = 0; i < _podObject___param4Size; i++) {
3564
+ string _podObject___param4Item{};
3565
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3566
+ const uint16_t _podObject___param4ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3567
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _podObject___param4ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3568
+ _podObject___param4Item = reader.Text();
3569
+ _podObject__.param4.Value().push_back(std::move(_podObject___param4Item));
3570
+ }
3571
+ }
3572
+ _pod = std::move(_podObject__);
3573
+ }
3574
+ }
3575
+
3576
+ return (hresult);
3577
+ } ();
3578
+ } else {
3579
+ ASSERT((hresult & COM_ERROR) != 0);
3580
+ }
3581
+
3582
+ if ((hresult & COM_ERROR) != 0) {
3583
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 25, hresult);
3584
+ }
3585
+
3586
+ return (hresult);
3587
+ }
3588
+
3589
+ Core::hresult Tables9(const bool _fill, Example::ISimpleAsync::Record2& _pod) override
3590
+ {
3591
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(26));
3592
+
3593
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3594
+ writer.Boolean(_fill);
3595
+
3596
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3597
+ if (hresult == Core::ERROR_NONE) {
3598
+ hresult = [&]() -> Core::hresult {
3599
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3600
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3601
+ hresult = reader.Number<Core::hresult>();
3602
+ if ((hresult & COM_ERROR) == 0) {
3603
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3604
+ if (reader.Boolean() == true) {
3605
+ uint8_t _pod_param3Size{};
3606
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3607
+ _pod_param3Size = reader.Number<uint8_t>();
3608
+ _pod.param3.Value().reserve(_pod_param3Size);
3609
+ for (uint8_t i = 0; i < _pod_param3Size; i++) {
3610
+ string _pod_param3Item{};
3611
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3612
+ const uint16_t _pod_param3ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3613
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _pod_param3ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3614
+ _pod_param3Item = reader.Text();
3615
+ _pod.param3.Value().push_back(std::move(_pod_param3Item));
3616
+ }
3617
+ }
3618
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3619
+ if (reader.Boolean() == true) {
3620
+ uint8_t _pod_param4Size{};
3621
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3622
+ _pod_param4Size = reader.Number<uint8_t>();
3623
+ _pod.param4.Value().reserve(_pod_param4Size);
3624
+ for (uint8_t i = 0; i < _pod_param4Size; i++) {
3625
+ string _pod_param4Item{};
3626
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3627
+ const uint16_t _pod_param4ItemPeekedLen__ = reader.PeekNumber<uint16_t>();
3628
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _pod_param4ItemPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3629
+ _pod_param4Item = reader.Text();
3630
+ _pod.param4.Value().push_back(std::move(_pod_param4Item));
3631
+ }
3632
+ }
3633
+ }
3634
+
3635
+ return (hresult);
3636
+ } ();
3637
+ } else {
3638
+ ASSERT((hresult & COM_ERROR) != 0);
3639
+ }
3640
+
3641
+ if ((hresult & COM_ERROR) != 0) {
3642
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 26, hresult);
3643
+ }
3644
+
3645
+ return (hresult);
3646
+ }
3647
+
3648
+ Core::hresult OptionalResult(const bool _fill, Core::OptionalType<string>& _result) override
3649
+ {
3650
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(27));
3651
+
3652
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3653
+ writer.Boolean(_fill);
3654
+
3655
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3656
+ if (hresult == Core::ERROR_NONE) {
3657
+ hresult = [&]() -> Core::hresult {
3658
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
3659
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3660
+ hresult = reader.Number<Core::hresult>();
3661
+ if ((hresult & COM_ERROR) == 0) {
3662
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3663
+ if (reader.Boolean() == true) {
3664
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3665
+ const uint16_t _resultPeekedLen__ = reader.PeekNumber<uint16_t>();
3666
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
3667
+ _result = reader.Text();
3668
+ }
3669
+ }
3670
+
3671
+ return (hresult);
3672
+ } ();
3673
+ } else {
3674
+ ASSERT((hresult & COM_ERROR) != 0);
3675
+ }
3676
+
3677
+ if ((hresult & COM_ERROR) != 0) {
3678
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ID, 27, hresult);
3679
+ }
3680
+
3681
+ return (hresult);
3682
+ }
3683
+
3684
+ private:
3685
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
3686
+ {
3687
+ uint32_t result = Core::ERROR_NONE;
3688
+
3689
+ while (reader.HasData() == true) {
3690
+ const size_t entrySize = (sizeof(Core::instance_id) + sizeof(uint32_t) + sizeof(RPC::Data::Output::mode));
3691
+ if (reader.Length() < entrySize) { result = (COM_ERROR | Core::ERROR_READ_ERROR); break; }
3692
+
3693
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
3694
+ ASSERT(implementation != 0);
3695
+
3696
+ const uint32_t id = reader.Number<uint32_t>();
3697
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
3698
+
3699
+ if (RPC::Administrator::Instance().IsValid(static_cast<const ProxyStub::UnknownProxy&>(*this).Channel(), implementation, id) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
3700
+
3701
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
3702
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
3703
+ }
3704
+
3705
+ return (result);
3706
+ }
3707
+
3708
+ }; // class ExampleSimpleAsyncProxy
3709
+
3710
+ //
3711
+ // Example::ISimpleAsync::ICallback interface proxy definitions
3712
+ //
3713
+ // Methods:
3714
+ // (0) virtual void Complete(const Core::OptionalType<std::vector<uint8_t>>&, const Example::ISimpleAsync::state) = 0
3715
+ //
3716
+
3717
+ class ExampleSimpleAsyncCallbackProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleAsync::ICallback> {
3718
+ public:
3719
+ ExampleSimpleAsyncCallbackProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
3720
+ : BaseClass(channel, implementation, otherSideInformed)
3721
+ {
3722
+ }
3723
+
3724
+ void Complete(const Core::OptionalType<std::vector<uint8_t>>& _address, const Example::ISimpleAsync::state _state) override
3725
+ {
3726
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
3727
+
3728
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3729
+ writer.Boolean(_address.IsSet());
3730
+ if (_address.IsSet() == true) {
3731
+ writer.Number<uint8_t>(_address.Value().size());
3732
+ for (uint8_t i = 0; i < _address.Value().size(); i++) {
3733
+ writer.Number<uint8_t>(_address.Value()[i]);
3734
+ }
3735
+ }
3736
+ writer.Number<Example::ISimpleAsync::state>(_state);
3737
+
3738
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3739
+ if (hresult == Core::ERROR_NONE) {
3740
+ hresult = [&]() -> Core::hresult {
3741
+
3742
+ return (Core::ERROR_NONE);
3743
+ } ();
3744
+ } else {
3745
+ ASSERT((hresult & COM_ERROR) != 0);
3746
+ }
3747
+
3748
+ if ((hresult & COM_ERROR) != 0) {
3749
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::ICallback::ID, 0, hresult);
3750
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
3751
+ }
3752
+ }
3753
+
3754
+ }; // class ExampleSimpleAsyncCallbackProxy
3755
+
3756
+ //
3757
+ // Example::ISimpleAsync::INotification interface proxy definitions
3758
+ //
3759
+ // Methods:
3760
+ // (0) virtual void StatusChanged(const uint8_t[6], const bool) = 0
3761
+ //
3762
+
3763
+ class ExampleSimpleAsyncNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleAsync::INotification> {
3764
+ public:
3765
+ ExampleSimpleAsyncNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
3766
+ : BaseClass(channel, implementation, otherSideInformed)
3767
+ {
3768
+ }
3769
+
3770
+ void StatusChanged(const uint8_t _address[6], const bool _linked) override
3771
+ {
3772
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
3773
+
3774
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3775
+ writer.Copy(6, _address);
3776
+ writer.Boolean(_linked);
3777
+
3778
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3779
+ if (hresult == Core::ERROR_NONE) {
3780
+ hresult = [&]() -> Core::hresult {
3781
+
3782
+ return (Core::ERROR_NONE);
3783
+ } ();
3784
+ } else {
3785
+ ASSERT((hresult & COM_ERROR) != 0);
3786
+ }
3787
+
3788
+ if ((hresult & COM_ERROR) != 0) {
3789
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::INotification::ID, 0, hresult);
3790
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
3791
+ }
3792
+ }
3793
+
3794
+ }; // class ExampleSimpleAsyncNotificationProxy
3795
+
3796
+ //
3797
+ // Example::ISimpleAsync::IBindNotification interface proxy definitions
3798
+ //
3799
+ // Methods:
3800
+ // (0) virtual void BindingChanged(const Core::MACAddress&, const bool) = 0
3801
+ //
3802
+
3803
+ class ExampleSimpleAsyncBindNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleAsync::IBindNotification> {
3804
+ public:
3805
+ ExampleSimpleAsyncBindNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
3806
+ : BaseClass(channel, implementation, otherSideInformed)
3807
+ {
3808
+ }
3809
+
3810
+ void BindingChanged(const Core::MACAddress& _address, const bool _bound) override
3811
+ {
3812
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
3813
+
3814
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
3815
+ writer.Copy(6, _address);
3816
+ writer.Boolean(_bound);
3817
+
3818
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
3819
+ if (hresult == Core::ERROR_NONE) {
3820
+ hresult = [&]() -> Core::hresult {
3821
+
3822
+ return (Core::ERROR_NONE);
3823
+ } ();
3824
+ } else {
3825
+ ASSERT((hresult & COM_ERROR) != 0);
3826
+ }
3827
+
3828
+ if ((hresult & COM_ERROR) != 0) {
3829
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleAsync::IBindNotification::ID, 0, hresult);
3830
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
3831
+ }
3832
+ }
3833
+
3834
+ }; // class ExampleSimpleAsyncBindNotificationProxy
3835
+
3836
+ POP_WARNING()
3837
+ POP_WARNING()
3838
+
3839
+ // -----------------------------------------------------------------
3840
+ // REGISTRATION
3841
+ // -----------------------------------------------------------------
3842
+ namespace {
3843
+
3844
+ typedef ProxyStub::UnknownStubType<RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>, RPCIteratorTypeInstance_bd6e04b8d151c1f7StubMethods> RPCIteratorTypeInstance_bd6e04b8d151c1f7Stub;
3845
+ typedef ProxyStub::UnknownStubType<RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>, RPCIteratorTypeInstance_60eba5a793c685eaStubMethods> RPCIteratorTypeInstance_60eba5a793c685eaStub;
3846
+ typedef ProxyStub::UnknownStubType<RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>, RPCIteratorTypeInstance_195e88cf7f955a2eStubMethods> RPCIteratorTypeInstance_195e88cf7f955a2eStub;
3847
+ typedef ProxyStub::UnknownStubType<Example::ISimpleAsync, ExampleSimpleAsyncStubMethods> ExampleSimpleAsyncStub;
3848
+ typedef ProxyStub::UnknownStubType<Example::ISimpleAsync::ICallback, ExampleSimpleAsyncCallbackStubMethods> ExampleSimpleAsyncCallbackStub;
3849
+ typedef ProxyStub::UnknownStubType<Example::ISimpleAsync::INotification, ExampleSimpleAsyncNotificationStubMethods> ExampleSimpleAsyncNotificationStub;
3850
+ typedef ProxyStub::UnknownStubType<Example::ISimpleAsync::IBindNotification, ExampleSimpleAsyncBindNotificationStubMethods> ExampleSimpleAsyncBindNotificationStub;
3851
+
3852
+ static class Instantiation {
3853
+ public:
3854
+ Instantiation()
3855
+ {
3856
+ const RPC::SecureProxyStubType security = static_cast<RPC::SecureProxyStubType>(static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_SECURE) | static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_COHERENT));
3857
+
3858
+ RPC::Administrator::Instance().Announce<RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>, RPCIteratorTypeInstance_bd6e04b8d151c1f7Proxy, RPCIteratorTypeInstance_bd6e04b8d151c1f7Stub>(security);
3859
+ RPC::Administrator::Instance().Announce<RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>, RPCIteratorTypeInstance_60eba5a793c685eaProxy, RPCIteratorTypeInstance_60eba5a793c685eaStub>(security);
3860
+ RPC::Administrator::Instance().Announce<RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>, RPCIteratorTypeInstance_195e88cf7f955a2eProxy, RPCIteratorTypeInstance_195e88cf7f955a2eStub>(security);
3861
+ RPC::Administrator::Instance().Announce<Example::ISimpleAsync, ExampleSimpleAsyncProxy, ExampleSimpleAsyncStub>(security);
3862
+ RPC::Administrator::Instance().Announce<Example::ISimpleAsync::ICallback, ExampleSimpleAsyncCallbackProxy, ExampleSimpleAsyncCallbackStub>(security);
3863
+ RPC::Administrator::Instance().Announce<Example::ISimpleAsync::INotification, ExampleSimpleAsyncNotificationProxy, ExampleSimpleAsyncNotificationStub>(security);
3864
+ RPC::Administrator::Instance().Announce<Example::ISimpleAsync::IBindNotification, ExampleSimpleAsyncBindNotificationProxy, ExampleSimpleAsyncBindNotificationStub>(security);
3865
+ }
3866
+ ~Instantiation()
3867
+ {
3868
+ RPC::Administrator::Instance().Recall<RPC::IIteratorType<string, RPC::ID_STRINGITERATOR>>();
3869
+ RPC::Administrator::Instance().Recall<RPC::IIteratorType<uint32_t, RPC::ID_VALUEITERATOR>>();
3870
+ RPC::Administrator::Instance().Recall<RPC::IIteratorType<RPC::Environment, RPC::ID_ENVIRONMENTITERATOR>>();
3871
+ RPC::Administrator::Instance().Recall<Example::ISimpleAsync>();
3872
+ RPC::Administrator::Instance().Recall<Example::ISimpleAsync::ICallback>();
3873
+ RPC::Administrator::Instance().Recall<Example::ISimpleAsync::INotification>();
3874
+ RPC::Administrator::Instance().Recall<Example::ISimpleAsync::IBindNotification>();
3875
+ }
3876
+ } ProxyStubRegistration;
3877
+
3878
+ } // namespace
3879
+
3880
+ } // namespace ProxyStubs
3881
+
3882
+ }
generated/generated/Release/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleCustomObjects.cpp ADDED
@@ -0,0 +1,1085 @@
1
+ //
2
+ // generated automatically from "ISimpleCustomObjects.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class Example::ISimpleCustomObjects
6
+ // - class Example::ISimpleCustomObjects::IAccessory
7
+ // - class Example::ISimpleCustomObjects::IAccessory::INotification
8
+ // - class Example::ISimpleCustomObjects::INotification
9
+ //
10
+ // secure code enabled:
11
+ // - instance verification enabled
12
+ // - range verification enabled
13
+ // - frame coherency verification enabled
14
+ //
15
+
16
+ #include "Module.h"
17
+ #include "ISimpleCustomObjects.h"
18
+
19
+ #include <com/com.h>
20
+
21
+ namespace Thunder {
22
+
23
+ namespace ProxyStubs {
24
+
25
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
26
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
27
+
28
+ // -----------------------------------------------------------------
29
+ // STUBS
30
+ // -----------------------------------------------------------------
31
+
32
+ //
33
+ // Example::ISimpleCustomObjects interface stub definitions
34
+ //
35
+ // Methods:
36
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::INotification* const) = 0
37
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::INotification* const) = 0
38
+ // (2) virtual Core::hresult Accessory(const string&, Example::ISimpleCustomObjects::IAccessory*&) const = 0
39
+ //
40
+
41
+ static ProxyStub::MethodHandler ExampleSimpleCustomObjectsStubMethods[] = {
42
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::INotification* const) = 0
43
+ //
44
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
45
+ Core::hresult hresult = Core::ERROR_NONE;
46
+
47
+ hresult = [&]() -> Core::hresult {
48
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
49
+
50
+ Example::ISimpleCustomObjects* implementation = reinterpret_cast<Example::ISimpleCustomObjects*>(message->Parameters().Implementation());
51
+ ASSERT(implementation != nullptr);
52
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
53
+
54
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
55
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
56
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
57
+
58
+ Example::ISimpleCustomObjects::INotification* _notification{};
59
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
60
+ if (_notificationInstanceId__ != 0) {
61
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
62
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
63
+ if ((_notification == nullptr) || (_notificationProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
64
+ }
65
+
66
+ Core::hresult result = implementation->Register(_notification);
67
+
68
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
69
+ writer.Number<Core::hresult>(result);
70
+
71
+ if (_notificationProxy__ != nullptr) {
72
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
73
+ }
74
+
75
+ return (Core::ERROR_NONE);
76
+ } ();
77
+
78
+ if (hresult != Core::ERROR_NONE) {
79
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
80
+ writer.Number<uint32_t>(hresult);
81
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::ID, 0, hresult);
82
+ }
83
+ },
84
+
85
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::INotification* const) = 0
86
+ //
87
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
88
+ Core::hresult hresult = Core::ERROR_NONE;
89
+
90
+ hresult = [&]() -> Core::hresult {
91
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
92
+
93
+ Example::ISimpleCustomObjects* implementation = reinterpret_cast<Example::ISimpleCustomObjects*>(message->Parameters().Implementation());
94
+ ASSERT(implementation != nullptr);
95
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
96
+
97
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
98
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
99
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
100
+
101
+ const Example::ISimpleCustomObjects::INotification* _notification{};
102
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
103
+ if (_notificationInstanceId__ != 0) {
104
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
105
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
106
+ if ((_notification == nullptr) || (_notificationProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
107
+ }
108
+
109
+ Core::hresult result = implementation->Unregister(_notification);
110
+
111
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
112
+ writer.Number<Core::hresult>(result);
113
+
114
+ if (_notificationProxy__ != nullptr) {
115
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
116
+ }
117
+
118
+ return (Core::ERROR_NONE);
119
+ } ();
120
+
121
+ if (hresult != Core::ERROR_NONE) {
122
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
123
+ writer.Number<uint32_t>(hresult);
124
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::ID, 1, hresult);
125
+ }
126
+ },
127
+
128
+ // (2) virtual Core::hresult Accessory(const string&, Example::ISimpleCustomObjects::IAccessory*&) const = 0
129
+ //
130
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
131
+ Core::hresult hresult = Core::ERROR_NONE;
132
+
133
+ hresult = [&]() -> Core::hresult {
134
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
135
+
136
+ const Example::ISimpleCustomObjects* implementation = reinterpret_cast<const Example::ISimpleCustomObjects*>(message->Parameters().Implementation());
137
+ ASSERT(implementation != nullptr);
138
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
139
+
140
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
141
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
142
+ const uint16_t _namePeekedLen__ = reader.PeekNumber<uint16_t>();
143
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _namePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
144
+ const string _name = reader.Text();
145
+
146
+ Example::ISimpleCustomObjects::IAccessory* _accessory{};
147
+
148
+ Core::hresult result = implementation->Accessory(static_cast<const string&>(_name), _accessory);
149
+
150
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
151
+ writer.Number<Core::hresult>(result);
152
+ writer.Number<Core::instance_id>(RPC::instance_cast(_accessory));
153
+
154
+ RPC::Administrator::Instance().RegisterInterface(channel, _accessory);
155
+
156
+ return (Core::ERROR_NONE);
157
+ } ();
158
+
159
+ if (hresult != Core::ERROR_NONE) {
160
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
161
+ writer.Number<uint32_t>(hresult);
162
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::ID, 2, hresult);
163
+ }
164
+ }
165
+ , nullptr
166
+ }; // ExampleSimpleCustomObjectsStubMethods
167
+
168
+ //
169
+ // Example::ISimpleCustomObjects::IAccessory interface stub definitions
170
+ //
171
+ // Methods:
172
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
173
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
174
+ // (2) virtual Core::hresult Name(string&) const = 0
175
+ // (3) virtual Core::hresult Name(const string&) = 0
176
+ // (4) virtual Core::hresult Pin(const uint8_t, const bool) = 0
177
+ // (5) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
178
+ //
179
+
180
+ static ProxyStub::MethodHandler ExampleSimpleCustomObjectsAccessoryStubMethods[] = {
181
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
182
+ //
183
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
184
+ Core::hresult hresult = Core::ERROR_NONE;
185
+
186
+ hresult = [&]() -> Core::hresult {
187
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
188
+
189
+ Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
190
+ ASSERT(implementation != nullptr);
191
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::IAccessory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
192
+
193
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
194
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
195
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
196
+
197
+ Example::ISimpleCustomObjects::IAccessory::INotification* _notification{};
198
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
199
+ if (_notificationInstanceId__ != 0) {
200
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
201
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
202
+ if ((_notification == nullptr) || (_notificationProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
203
+ }
204
+
205
+ Core::hresult result = implementation->Register(_notification);
206
+
207
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
208
+ writer.Number<Core::hresult>(result);
209
+
210
+ if (_notificationProxy__ != nullptr) {
211
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
212
+ }
213
+
214
+ return (Core::ERROR_NONE);
215
+ } ();
216
+
217
+ if (hresult != Core::ERROR_NONE) {
218
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
219
+ writer.Number<uint32_t>(hresult);
220
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 0, hresult);
221
+ }
222
+ },
223
+
224
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
225
+ //
226
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
227
+ Core::hresult hresult = Core::ERROR_NONE;
228
+
229
+ hresult = [&]() -> Core::hresult {
230
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
231
+
232
+ Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
233
+ ASSERT(implementation != nullptr);
234
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::IAccessory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
235
+
236
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
237
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
238
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
239
+
240
+ const Example::ISimpleCustomObjects::IAccessory::INotification* _notification{};
241
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
242
+ if (_notificationInstanceId__ != 0) {
243
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
244
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
245
+ if ((_notification == nullptr) || (_notificationProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
246
+ }
247
+
248
+ Core::hresult result = implementation->Unregister(_notification);
249
+
250
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
251
+ writer.Number<Core::hresult>(result);
252
+
253
+ if (_notificationProxy__ != nullptr) {
254
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
255
+ }
256
+
257
+ return (Core::ERROR_NONE);
258
+ } ();
259
+
260
+ if (hresult != Core::ERROR_NONE) {
261
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
262
+ writer.Number<uint32_t>(hresult);
263
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 1, hresult);
264
+ }
265
+ },
266
+
267
+ // (2) virtual Core::hresult Name(string&) const = 0
268
+ //
269
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
270
+ Core::hresult hresult = Core::ERROR_NONE;
271
+
272
+ hresult = [&]() -> Core::hresult {
273
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
274
+
275
+ const Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<const Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
276
+ ASSERT(implementation != nullptr);
277
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::IAccessory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
278
+
279
+ string _name{};
280
+
281
+ Core::hresult result = implementation->Name(_name);
282
+
283
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
284
+ writer.Number<Core::hresult>(result);
285
+ writer.Text(_name);
286
+
287
+ return (Core::ERROR_NONE);
288
+ } ();
289
+
290
+ if (hresult != Core::ERROR_NONE) {
291
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
292
+ writer.Number<uint32_t>(hresult);
293
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 2, hresult);
294
+ }
295
+ },
296
+
297
+ // (3) virtual Core::hresult Name(const string&) = 0
298
+ //
299
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
300
+ Core::hresult hresult = Core::ERROR_NONE;
301
+
302
+ hresult = [&]() -> Core::hresult {
303
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
304
+
305
+ Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
306
+ ASSERT(implementation != nullptr);
307
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::IAccessory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
308
+
309
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
310
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
311
+ const uint16_t _namePeekedLen__ = reader.PeekNumber<uint16_t>();
312
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _namePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
313
+ const string _name = reader.Text();
314
+
315
+ Core::hresult result = implementation->Name(static_cast<const string&>(_name));
316
+
317
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
318
+ writer.Number<Core::hresult>(result);
319
+
320
+ return (Core::ERROR_NONE);
321
+ } ();
322
+
323
+ if (hresult != Core::ERROR_NONE) {
324
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
325
+ writer.Number<uint32_t>(hresult);
326
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 3, hresult);
327
+ }
328
+ },
329
+
330
+ // (4) virtual Core::hresult Pin(const uint8_t, const bool) = 0
331
+ //
332
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
333
+ Core::hresult hresult = Core::ERROR_NONE;
334
+
335
+ hresult = [&]() -> Core::hresult {
336
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
337
+
338
+ Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
339
+ ASSERT(implementation != nullptr);
340
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::IAccessory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
341
+
342
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
343
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
344
+ const uint8_t _pin = reader.Number<uint8_t>();
345
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
346
+ const bool _value = reader.Boolean();
347
+
348
+ Core::hresult result = implementation->Pin(_pin, _value);
349
+
350
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
351
+ writer.Number<Core::hresult>(result);
352
+
353
+ return (Core::ERROR_NONE);
354
+ } ();
355
+
356
+ if (hresult != Core::ERROR_NONE) {
357
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
358
+ writer.Number<uint32_t>(hresult);
359
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 4, hresult);
360
+ }
361
+ },
362
+
363
+ // (5) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
364
+ //
365
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
366
+ Core::hresult hresult = Core::ERROR_NONE;
367
+
368
+ hresult = [&]() -> Core::hresult {
369
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
370
+
371
+ const Example::ISimpleCustomObjects::IAccessory* implementation = reinterpret_cast<const Example::ISimpleCustomObjects::IAccessory*>(message->Parameters().Implementation());
372
+ ASSERT(implementation != nullptr);
373
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::IAccessory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
374
+
375
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
376
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
377
+ const uint8_t _pin = reader.Number<uint8_t>();
378
+
379
+ bool _value{};
380
+
381
+ Core::hresult result = implementation->Pin(_pin, _value);
382
+
383
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
384
+ writer.Number<Core::hresult>(result);
385
+ writer.Boolean(_value);
386
+
387
+ return (Core::ERROR_NONE);
388
+ } ();
389
+
390
+ if (hresult != Core::ERROR_NONE) {
391
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
392
+ writer.Number<uint32_t>(hresult);
393
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 5, hresult);
394
+ }
395
+ }
396
+ , nullptr
397
+ }; // ExampleSimpleCustomObjectsAccessoryStubMethods
398
+
399
+ //
400
+ // Example::ISimpleCustomObjects::IAccessory::INotification interface stub definitions
401
+ //
402
+ // Methods:
403
+ // (0) virtual void NameChanged(const string&) = 0
404
+ //
405
+
406
+ static ProxyStub::MethodHandler ExampleSimpleCustomObjectsAccessoryNotificationStubMethods[] = {
407
+ // (0) virtual void NameChanged(const string&) = 0
408
+ //
409
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
410
+ Core::hresult hresult = Core::ERROR_NONE;
411
+
412
+ hresult = [&]() -> Core::hresult {
413
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
414
+
415
+ Example::ISimpleCustomObjects::IAccessory::INotification* implementation = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory::INotification*>(message->Parameters().Implementation());
416
+ ASSERT(implementation != nullptr);
417
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::IAccessory::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
418
+
419
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
420
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
421
+ const uint16_t _namePeekedLen__ = reader.PeekNumber<uint16_t>();
422
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _namePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
423
+ const string _name = reader.Text();
424
+
425
+ implementation->NameChanged(static_cast<const string&>(_name));
426
+
427
+ return (Core::ERROR_NONE);
428
+ } ();
429
+
430
+ if (hresult != Core::ERROR_NONE) {
431
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::INotification::ID, 0, hresult);
432
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
433
+ }
434
+ }
435
+ , nullptr
436
+ }; // ExampleSimpleCustomObjectsAccessoryNotificationStubMethods
437
+
438
+ //
439
+ // Example::ISimpleCustomObjects::INotification interface stub definitions
440
+ //
441
+ // Methods:
442
+ // (0) virtual void Added(Example::ISimpleCustomObjects::IAccessory* const) = 0
443
+ // (1) virtual void Removed(Example::ISimpleCustomObjects::IAccessory* const) = 0
444
+ //
445
+
446
+ static ProxyStub::MethodHandler ExampleSimpleCustomObjectsNotificationStubMethods[] = {
447
+ // (0) virtual void Added(Example::ISimpleCustomObjects::IAccessory* const) = 0
448
+ //
449
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
450
+ Core::hresult hresult = Core::ERROR_NONE;
451
+
452
+ hresult = [&]() -> Core::hresult {
453
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
454
+
455
+ Example::ISimpleCustomObjects::INotification* implementation = reinterpret_cast<Example::ISimpleCustomObjects::INotification*>(message->Parameters().Implementation());
456
+ ASSERT(implementation != nullptr);
457
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
458
+
459
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
460
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
461
+ Core::instance_id _accessoryInstanceId__ = reader.Number<Core::instance_id>();
462
+
463
+ Example::ISimpleCustomObjects::IAccessory* _accessory{};
464
+ ProxyStub::UnknownProxy* _accessoryProxy__ = nullptr;
465
+ if (_accessoryInstanceId__ != 0) {
466
+ _accessoryProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _accessoryInstanceId__, false, _accessory);
467
+ ASSERT((_accessory != nullptr) && (_accessoryProxy__ != nullptr));
468
+ if ((_accessory == nullptr) || (_accessoryProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
469
+ }
470
+
471
+ implementation->Added(_accessory);
472
+
473
+ if (_accessoryProxy__ != nullptr) {
474
+ RPC::Administrator::Instance().Release(_accessoryProxy__, message->Response());
475
+ }
476
+
477
+ return (Core::ERROR_NONE);
478
+ } ();
479
+
480
+ if (hresult != Core::ERROR_NONE) {
481
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::INotification::ID, 0, hresult);
482
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
483
+ }
484
+ },
485
+
486
+ // (1) virtual void Removed(Example::ISimpleCustomObjects::IAccessory* const) = 0
487
+ //
488
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
489
+ Core::hresult hresult = Core::ERROR_NONE;
490
+
491
+ hresult = [&]() -> Core::hresult {
492
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
493
+
494
+ Example::ISimpleCustomObjects::INotification* implementation = reinterpret_cast<Example::ISimpleCustomObjects::INotification*>(message->Parameters().Implementation());
495
+ ASSERT(implementation != nullptr);
496
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleCustomObjects::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
497
+
498
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
499
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
500
+ Core::instance_id _accessoryInstanceId__ = reader.Number<Core::instance_id>();
501
+
502
+ Example::ISimpleCustomObjects::IAccessory* _accessory{};
503
+ ProxyStub::UnknownProxy* _accessoryProxy__ = nullptr;
504
+ if (_accessoryInstanceId__ != 0) {
505
+ _accessoryProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _accessoryInstanceId__, false, _accessory);
506
+ ASSERT((_accessory != nullptr) && (_accessoryProxy__ != nullptr));
507
+ if ((_accessory == nullptr) || (_accessoryProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
508
+ }
509
+
510
+ implementation->Removed(_accessory);
511
+
512
+ if (_accessoryProxy__ != nullptr) {
513
+ RPC::Administrator::Instance().Release(_accessoryProxy__, message->Response());
514
+ }
515
+
516
+ return (Core::ERROR_NONE);
517
+ } ();
518
+
519
+ if (hresult != Core::ERROR_NONE) {
520
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::INotification::ID, 1, hresult);
521
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
522
+ }
523
+ }
524
+ , nullptr
525
+ }; // ExampleSimpleCustomObjectsNotificationStubMethods
526
+
527
+ // -----------------------------------------------------------------
528
+ // PROXIES
529
+ // -----------------------------------------------------------------
530
+
531
+ //
532
+ // Example::ISimpleCustomObjects interface proxy definitions
533
+ //
534
+ // Methods:
535
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::INotification* const) = 0
536
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::INotification* const) = 0
537
+ // (2) virtual Core::hresult Accessory(const string&, Example::ISimpleCustomObjects::IAccessory*&) const = 0
538
+ //
539
+
540
+ class ExampleSimpleCustomObjectsProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleCustomObjects> {
541
+ public:
542
+ ExampleSimpleCustomObjectsProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
543
+ : BaseClass(channel, implementation, otherSideInformed)
544
+ {
545
+ }
546
+
547
+ Core::hresult Register(Example::ISimpleCustomObjects::INotification* const _notification) override
548
+ {
549
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
550
+
551
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
552
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
553
+
554
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notification), Example::ISimpleCustomObjects::INotification::ID }, { 0, 0 } };
555
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
556
+
557
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
558
+ if (hresult == Core::ERROR_NONE) {
559
+ hresult = [&]() -> Core::hresult {
560
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
561
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
562
+ hresult = reader.Number<Core::hresult>();
563
+
564
+ const uint32_t completeResult__ = _Complete(reader);
565
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
566
+
567
+ return (hresult);
568
+ } ();
569
+ } else {
570
+ ASSERT((hresult & COM_ERROR) != 0);
571
+ }
572
+
573
+ if ((hresult & COM_ERROR) != 0) {
574
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::ID, 0, hresult);
575
+ }
576
+
577
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
578
+
579
+ return (hresult);
580
+ }
581
+
582
+ Core::hresult Unregister(const Example::ISimpleCustomObjects::INotification* const _notification) override
583
+ {
584
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
585
+
586
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
587
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
588
+
589
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notification), Example::ISimpleCustomObjects::INotification::ID }, { 0, 0 } };
590
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
591
+
592
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
593
+ if (hresult == Core::ERROR_NONE) {
594
+ hresult = [&]() -> Core::hresult {
595
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
596
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
597
+ hresult = reader.Number<Core::hresult>();
598
+
599
+ const uint32_t completeResult__ = _Complete(reader);
600
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
601
+
602
+ return (hresult);
603
+ } ();
604
+ } else {
605
+ ASSERT((hresult & COM_ERROR) != 0);
606
+ }
607
+
608
+ if ((hresult & COM_ERROR) != 0) {
609
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::ID, 1, hresult);
610
+ }
611
+
612
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
613
+
614
+ return (hresult);
615
+ }
616
+
617
+ Core::hresult Accessory(const string& _name, Example::ISimpleCustomObjects::IAccessory*& _accessory) const override
618
+ {
619
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
620
+
621
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
622
+ writer.Text(_name);
623
+
624
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
625
+ if (hresult == Core::ERROR_NONE) {
626
+ hresult = [&]() -> Core::hresult {
627
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
628
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
629
+ hresult = reader.Number<Core::hresult>();
630
+ if ((hresult & COM_ERROR) == 0) {
631
+ _accessory = reinterpret_cast<Example::ISimpleCustomObjects::IAccessory*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), Example::ISimpleCustomObjects::IAccessory::ID));
632
+ }
633
+
634
+ return (hresult);
635
+ } ();
636
+ } else {
637
+ ASSERT((hresult & COM_ERROR) != 0);
638
+ }
639
+
640
+ if ((hresult & COM_ERROR) != 0) {
641
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::ID, 2, hresult);
642
+ }
643
+
644
+ return (hresult);
645
+ }
646
+
647
+ private:
648
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
649
+ {
650
+ uint32_t result = Core::ERROR_NONE;
651
+
652
+ while (reader.HasData() == true) {
653
+ const size_t entrySize = (sizeof(Core::instance_id) + sizeof(uint32_t) + sizeof(RPC::Data::Output::mode));
654
+ if (reader.Length() < entrySize) { result = (COM_ERROR | Core::ERROR_READ_ERROR); break; }
655
+
656
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
657
+ ASSERT(implementation != 0);
658
+
659
+ const uint32_t id = reader.Number<uint32_t>();
660
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
661
+
662
+ if (RPC::Administrator::Instance().IsValid(static_cast<const ProxyStub::UnknownProxy&>(*this).Channel(), implementation, id) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
663
+
664
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
665
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
666
+ }
667
+
668
+ return (result);
669
+ }
670
+
671
+ }; // class ExampleSimpleCustomObjectsProxy
672
+
673
+ //
674
+ // Example::ISimpleCustomObjects::IAccessory interface proxy definitions
675
+ //
676
+ // Methods:
677
+ // (0) virtual Core::hresult Register(Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
678
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleCustomObjects::IAccessory::INotification* const) = 0
679
+ // (2) virtual Core::hresult Name(string&) const = 0
680
+ // (3) virtual Core::hresult Name(const string&) = 0
681
+ // (4) virtual Core::hresult Pin(const uint8_t, const bool) = 0
682
+ // (5) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
683
+ //
684
+
685
+ class ExampleSimpleCustomObjectsAccessoryProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleCustomObjects::IAccessory> {
686
+ public:
687
+ ExampleSimpleCustomObjectsAccessoryProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
688
+ : BaseClass(channel, implementation, otherSideInformed)
689
+ {
690
+ }
691
+
692
+ Core::hresult Register(Example::ISimpleCustomObjects::IAccessory::INotification* const _notification) override
693
+ {
694
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
695
+
696
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
697
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
698
+
699
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notification), Example::ISimpleCustomObjects::IAccessory::INotification::ID }, { 0, 0 } };
700
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
701
+
702
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
703
+ if (hresult == Core::ERROR_NONE) {
704
+ hresult = [&]() -> Core::hresult {
705
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
706
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
707
+ hresult = reader.Number<Core::hresult>();
708
+
709
+ const uint32_t completeResult__ = _Complete(reader);
710
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
711
+
712
+ return (hresult);
713
+ } ();
714
+ } else {
715
+ ASSERT((hresult & COM_ERROR) != 0);
716
+ }
717
+
718
+ if ((hresult & COM_ERROR) != 0) {
719
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 0, hresult);
720
+ }
721
+
722
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
723
+
724
+ return (hresult);
725
+ }
726
+
727
+ Core::hresult Unregister(const Example::ISimpleCustomObjects::IAccessory::INotification* const _notification) override
728
+ {
729
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
730
+
731
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
732
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
733
+
734
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notification), Example::ISimpleCustomObjects::IAccessory::INotification::ID }, { 0, 0 } };
735
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
736
+
737
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
738
+ if (hresult == Core::ERROR_NONE) {
739
+ hresult = [&]() -> Core::hresult {
740
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
741
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
742
+ hresult = reader.Number<Core::hresult>();
743
+
744
+ const uint32_t completeResult__ = _Complete(reader);
745
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
746
+
747
+ return (hresult);
748
+ } ();
749
+ } else {
750
+ ASSERT((hresult & COM_ERROR) != 0);
751
+ }
752
+
753
+ if ((hresult & COM_ERROR) != 0) {
754
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 1, hresult);
755
+ }
756
+
757
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
758
+
759
+ return (hresult);
760
+ }
761
+
762
+ Core::hresult Name(string& _name) const override
763
+ {
764
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
765
+
766
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
767
+ if (hresult == Core::ERROR_NONE) {
768
+ hresult = [&]() -> Core::hresult {
769
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
770
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
771
+ hresult = reader.Number<Core::hresult>();
772
+ if ((hresult & COM_ERROR) == 0) {
773
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
774
+ const uint16_t _namePeekedLen__ = reader.PeekNumber<uint16_t>();
775
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _namePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
776
+ _name = reader.Text();
777
+ }
778
+
779
+ return (hresult);
780
+ } ();
781
+ } else {
782
+ ASSERT((hresult & COM_ERROR) != 0);
783
+ }
784
+
785
+ if ((hresult & COM_ERROR) != 0) {
786
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 2, hresult);
787
+ }
788
+
789
+ return (hresult);
790
+ }
791
+
792
+ Core::hresult Name(const string& _name) override
793
+ {
794
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
795
+
796
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
797
+ writer.Text(_name);
798
+
799
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
800
+ if (hresult == Core::ERROR_NONE) {
801
+ hresult = [&]() -> Core::hresult {
802
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
803
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
804
+ hresult = reader.Number<Core::hresult>();
805
+
806
+ return (hresult);
807
+ } ();
808
+ } else {
809
+ ASSERT((hresult & COM_ERROR) != 0);
810
+ }
811
+
812
+ if ((hresult & COM_ERROR) != 0) {
813
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 3, hresult);
814
+ }
815
+
816
+ return (hresult);
817
+ }
818
+
819
+ Core::hresult Pin(const uint8_t _pin, const bool _value) override
820
+ {
821
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
822
+
823
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
824
+ writer.Number<uint8_t>(_pin);
825
+ writer.Boolean(_value);
826
+
827
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
828
+ if (hresult == Core::ERROR_NONE) {
829
+ hresult = [&]() -> Core::hresult {
830
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
831
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
832
+ hresult = reader.Number<Core::hresult>();
833
+
834
+ return (hresult);
835
+ } ();
836
+ } else {
837
+ ASSERT((hresult & COM_ERROR) != 0);
838
+ }
839
+
840
+ if ((hresult & COM_ERROR) != 0) {
841
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 4, hresult);
842
+ }
843
+
844
+ return (hresult);
845
+ }
846
+
847
+ Core::hresult Pin(const uint8_t _pin, bool& _value) const override
848
+ {
849
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
850
+
851
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
852
+ writer.Number<uint8_t>(_pin);
853
+
854
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
855
+ if (hresult == Core::ERROR_NONE) {
856
+ hresult = [&]() -> Core::hresult {
857
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
858
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
859
+ hresult = reader.Number<Core::hresult>();
860
+ if ((hresult & COM_ERROR) == 0) {
861
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
862
+ _value = reader.Boolean();
863
+ }
864
+
865
+ return (hresult);
866
+ } ();
867
+ } else {
868
+ ASSERT((hresult & COM_ERROR) != 0);
869
+ }
870
+
871
+ if ((hresult & COM_ERROR) != 0) {
872
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::ID, 5, hresult);
873
+ }
874
+
875
+ return (hresult);
876
+ }
877
+
878
+ private:
879
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
880
+ {
881
+ uint32_t result = Core::ERROR_NONE;
882
+
883
+ while (reader.HasData() == true) {
884
+ const size_t entrySize = (sizeof(Core::instance_id) + sizeof(uint32_t) + sizeof(RPC::Data::Output::mode));
885
+ if (reader.Length() < entrySize) { result = (COM_ERROR | Core::ERROR_READ_ERROR); break; }
886
+
887
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
888
+ ASSERT(implementation != 0);
889
+
890
+ const uint32_t id = reader.Number<uint32_t>();
891
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
892
+
893
+ if (RPC::Administrator::Instance().IsValid(static_cast<const ProxyStub::UnknownProxy&>(*this).Channel(), implementation, id) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
894
+
895
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
896
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
897
+ }
898
+
899
+ return (result);
900
+ }
901
+
902
+ }; // class ExampleSimpleCustomObjectsAccessoryProxy
903
+
904
+ //
905
+ // Example::ISimpleCustomObjects::IAccessory::INotification interface proxy definitions
906
+ //
907
+ // Methods:
908
+ // (0) virtual void NameChanged(const string&) = 0
909
+ //
910
+
911
+ class ExampleSimpleCustomObjectsAccessoryNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleCustomObjects::IAccessory::INotification> {
912
+ public:
913
+ ExampleSimpleCustomObjectsAccessoryNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
914
+ : BaseClass(channel, implementation, otherSideInformed)
915
+ {
916
+ }
917
+
918
+ void NameChanged(const string& _name) override
919
+ {
920
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
921
+
922
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
923
+ writer.Text(_name);
924
+
925
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
926
+ if (hresult == Core::ERROR_NONE) {
927
+ hresult = [&]() -> Core::hresult {
928
+
929
+ return (Core::ERROR_NONE);
930
+ } ();
931
+ } else {
932
+ ASSERT((hresult & COM_ERROR) != 0);
933
+ }
934
+
935
+ if ((hresult & COM_ERROR) != 0) {
936
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::IAccessory::INotification::ID, 0, hresult);
937
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
938
+ }
939
+ }
940
+
941
+ }; // class ExampleSimpleCustomObjectsAccessoryNotificationProxy
942
+
943
+ //
944
+ // Example::ISimpleCustomObjects::INotification interface proxy definitions
945
+ //
946
+ // Methods:
947
+ // (0) virtual void Added(Example::ISimpleCustomObjects::IAccessory* const) = 0
948
+ // (1) virtual void Removed(Example::ISimpleCustomObjects::IAccessory* const) = 0
949
+ //
950
+
951
+ class ExampleSimpleCustomObjectsNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleCustomObjects::INotification> {
952
+ public:
953
+ ExampleSimpleCustomObjectsNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
954
+ : BaseClass(channel, implementation, otherSideInformed)
955
+ {
956
+ }
957
+
958
+ void Added(Example::ISimpleCustomObjects::IAccessory* const _accessory) override
959
+ {
960
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
961
+
962
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
963
+ writer.Number<Core::instance_id>(RPC::instance_cast(_accessory));
964
+
965
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_accessory), Example::ISimpleCustomObjects::IAccessory::ID }, { 0, 0 } };
966
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
967
+
968
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
969
+ if (hresult == Core::ERROR_NONE) {
970
+ hresult = [&]() -> Core::hresult {
971
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
972
+
973
+ const uint32_t completeResult__ = _Complete(reader);
974
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
975
+
976
+ return (Core::ERROR_NONE);
977
+ } ();
978
+ } else {
979
+ ASSERT((hresult & COM_ERROR) != 0);
980
+ }
981
+
982
+ if ((hresult & COM_ERROR) != 0) {
983
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::INotification::ID, 0, hresult);
984
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
985
+ }
986
+
987
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
988
+ }
989
+
990
+ void Removed(Example::ISimpleCustomObjects::IAccessory* const _accessory) override
991
+ {
992
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
993
+
994
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
995
+ writer.Number<Core::instance_id>(RPC::instance_cast(_accessory));
996
+
997
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_accessory), Example::ISimpleCustomObjects::IAccessory::ID }, { 0, 0 } };
998
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
999
+
1000
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1001
+ if (hresult == Core::ERROR_NONE) {
1002
+ hresult = [&]() -> Core::hresult {
1003
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1004
+
1005
+ const uint32_t completeResult__ = _Complete(reader);
1006
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
1007
+
1008
+ return (Core::ERROR_NONE);
1009
+ } ();
1010
+ } else {
1011
+ ASSERT((hresult & COM_ERROR) != 0);
1012
+ }
1013
+
1014
+ if ((hresult & COM_ERROR) != 0) {
1015
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleCustomObjects::INotification::ID, 1, hresult);
1016
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1017
+ }
1018
+
1019
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
1020
+ }
1021
+
1022
+ private:
1023
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
1024
+ {
1025
+ uint32_t result = Core::ERROR_NONE;
1026
+
1027
+ while (reader.HasData() == true) {
1028
+ const size_t entrySize = (sizeof(Core::instance_id) + sizeof(uint32_t) + sizeof(RPC::Data::Output::mode));
1029
+ if (reader.Length() < entrySize) { result = (COM_ERROR | Core::ERROR_READ_ERROR); break; }
1030
+
1031
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
1032
+ ASSERT(implementation != 0);
1033
+
1034
+ const uint32_t id = reader.Number<uint32_t>();
1035
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
1036
+
1037
+ if (RPC::Administrator::Instance().IsValid(static_cast<const ProxyStub::UnknownProxy&>(*this).Channel(), implementation, id) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1038
+
1039
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
1040
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
1041
+ }
1042
+
1043
+ return (result);
1044
+ }
1045
+
1046
+ }; // class ExampleSimpleCustomObjectsNotificationProxy
1047
+
1048
+ POP_WARNING()
1049
+ POP_WARNING()
1050
+
1051
+ // -----------------------------------------------------------------
1052
+ // REGISTRATION
1053
+ // -----------------------------------------------------------------
1054
+ namespace {
1055
+
1056
+ typedef ProxyStub::UnknownStubType<Example::ISimpleCustomObjects, ExampleSimpleCustomObjectsStubMethods> ExampleSimpleCustomObjectsStub;
1057
+ typedef ProxyStub::UnknownStubType<Example::ISimpleCustomObjects::IAccessory, ExampleSimpleCustomObjectsAccessoryStubMethods> ExampleSimpleCustomObjectsAccessoryStub;
1058
+ typedef ProxyStub::UnknownStubType<Example::ISimpleCustomObjects::IAccessory::INotification, ExampleSimpleCustomObjectsAccessoryNotificationStubMethods> ExampleSimpleCustomObjectsAccessoryNotificationStub;
1059
+ typedef ProxyStub::UnknownStubType<Example::ISimpleCustomObjects::INotification, ExampleSimpleCustomObjectsNotificationStubMethods> ExampleSimpleCustomObjectsNotificationStub;
1060
+
1061
+ static class Instantiation {
1062
+ public:
1063
+ Instantiation()
1064
+ {
1065
+ const RPC::SecureProxyStubType security = static_cast<RPC::SecureProxyStubType>(static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_SECURE) | static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_COHERENT));
1066
+
1067
+ RPC::Administrator::Instance().Announce<Example::ISimpleCustomObjects, ExampleSimpleCustomObjectsProxy, ExampleSimpleCustomObjectsStub>(security);
1068
+ RPC::Administrator::Instance().Announce<Example::ISimpleCustomObjects::IAccessory, ExampleSimpleCustomObjectsAccessoryProxy, ExampleSimpleCustomObjectsAccessoryStub>(security);
1069
+ RPC::Administrator::Instance().Announce<Example::ISimpleCustomObjects::IAccessory::INotification, ExampleSimpleCustomObjectsAccessoryNotificationProxy, ExampleSimpleCustomObjectsAccessoryNotificationStub>(security);
1070
+ RPC::Administrator::Instance().Announce<Example::ISimpleCustomObjects::INotification, ExampleSimpleCustomObjectsNotificationProxy, ExampleSimpleCustomObjectsNotificationStub>(security);
1071
+ }
1072
+ ~Instantiation()
1073
+ {
1074
+ RPC::Administrator::Instance().Recall<Example::ISimpleCustomObjects>();
1075
+ RPC::Administrator::Instance().Recall<Example::ISimpleCustomObjects::IAccessory>();
1076
+ RPC::Administrator::Instance().Recall<Example::ISimpleCustomObjects::IAccessory::INotification>();
1077
+ RPC::Administrator::Instance().Recall<Example::ISimpleCustomObjects::INotification>();
1078
+ }
1079
+ } ProxyStubRegistration;
1080
+
1081
+ } // namespace
1082
+
1083
+ } // namespace ProxyStubs
1084
+
1085
+ }
generated/generated/Release/ThunderInterfaces/example_interfaces/example_generated/ProxyStubs_SimpleInstanceObjects.cpp ADDED
@@ -0,0 +1,1040 @@
1
+ //
2
+ // generated automatically from "ISimpleInstanceObjects.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class Example::ISimpleInstanceObjects
6
+ // - class Example::ISimpleInstanceObjects::IDevice
7
+ // - class Example::ISimpleInstanceObjects::IDevice::INotification
8
+ //
9
+ // secure code enabled:
10
+ // - instance verification enabled
11
+ // - range verification enabled
12
+ // - frame coherency verification enabled
13
+ //
14
+
15
+ #include "Module.h"
16
+ #include "ISimpleInstanceObjects.h"
17
+
18
+ #include <com/com.h>
19
+
20
+ namespace Thunder {
21
+
22
+ namespace ProxyStubs {
23
+
24
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
25
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
26
+
27
+ // -----------------------------------------------------------------
28
+ // STUBS
29
+ // -----------------------------------------------------------------
30
+
31
+ //
32
+ // Example::ISimpleInstanceObjects interface stub definitions
33
+ //
34
+ // Methods:
35
+ // (0) virtual Core::hresult Acquire(const string&, Example::ISimpleInstanceObjects::IDevice*&) = 0
36
+ // (1) virtual Core::hresult Relinquish(Example::ISimpleInstanceObjects::IDevice* const) = 0
37
+ //
38
+
39
+ static ProxyStub::MethodHandler ExampleSimpleInstanceObjectsStubMethods[] = {
40
+ // (0) virtual Core::hresult Acquire(const string&, Example::ISimpleInstanceObjects::IDevice*&) = 0
41
+ //
42
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
43
+ Core::hresult hresult = Core::ERROR_NONE;
44
+
45
+ hresult = [&]() -> Core::hresult {
46
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
47
+
48
+ Example::ISimpleInstanceObjects* implementation = reinterpret_cast<Example::ISimpleInstanceObjects*>(message->Parameters().Implementation());
49
+ ASSERT(implementation != nullptr);
50
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
51
+
52
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
53
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
54
+ const uint16_t _namePeekedLen__ = reader.PeekNumber<uint16_t>();
55
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _namePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
56
+ const string _name = reader.Text();
57
+
58
+ Example::ISimpleInstanceObjects::IDevice* _device{};
59
+
60
+ Core::hresult result = implementation->Acquire(static_cast<const string&>(_name), _device);
61
+
62
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
63
+ writer.Number<Core::hresult>(result);
64
+ writer.Number<Core::instance_id>(RPC::instance_cast(_device));
65
+
66
+ RPC::Administrator::Instance().RegisterInterface(channel, _device);
67
+
68
+ return (Core::ERROR_NONE);
69
+ } ();
70
+
71
+ if (hresult != Core::ERROR_NONE) {
72
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
73
+ writer.Number<uint32_t>(hresult);
74
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::ID, 0, hresult);
75
+ }
76
+ },
77
+
78
+ // (1) virtual Core::hresult Relinquish(Example::ISimpleInstanceObjects::IDevice* const) = 0
79
+ //
80
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
81
+ Core::hresult hresult = Core::ERROR_NONE;
82
+
83
+ hresult = [&]() -> Core::hresult {
84
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
85
+
86
+ Example::ISimpleInstanceObjects* implementation = reinterpret_cast<Example::ISimpleInstanceObjects*>(message->Parameters().Implementation());
87
+ ASSERT(implementation != nullptr);
88
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
89
+
90
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
91
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
92
+ Core::instance_id _deviceInstanceId__ = reader.Number<Core::instance_id>();
93
+
94
+ Example::ISimpleInstanceObjects::IDevice* _device{};
95
+ ProxyStub::UnknownProxy* _deviceProxy__ = nullptr;
96
+ if (_deviceInstanceId__ != 0) {
97
+ _deviceProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _deviceInstanceId__, false, _device);
98
+ ASSERT((_device != nullptr) && (_deviceProxy__ != nullptr));
99
+ if ((_device == nullptr) || (_deviceProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
100
+ }
101
+
102
+ Core::hresult result = implementation->Relinquish(_device);
103
+
104
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
105
+ writer.Number<Core::hresult>(result);
106
+
107
+ if (_deviceProxy__ != nullptr) {
108
+ RPC::Administrator::Instance().Release(_deviceProxy__, message->Response());
109
+ }
110
+
111
+ return (Core::ERROR_NONE);
112
+ } ();
113
+
114
+ if (hresult != Core::ERROR_NONE) {
115
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
116
+ writer.Number<uint32_t>(hresult);
117
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::ID, 1, hresult);
118
+ }
119
+ }
120
+ , nullptr
121
+ }; // ExampleSimpleInstanceObjectsStubMethods
122
+
123
+ //
124
+ // Example::ISimpleInstanceObjects::IDevice interface stub definitions
125
+ //
126
+ // Methods:
127
+ // (0) virtual Core::hresult Register(Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
128
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
129
+ // (2) virtual Core::hresult Name(string&) const = 0
130
+ // (3) virtual Core::hresult Name(const string&) = 0
131
+ // (4) virtual Core::hresult Enable() = 0
132
+ // (5) virtual Core::hresult Disable() = 0
133
+ // (6) virtual Core::hresult Pin(const uint8_t, const bool) = 0
134
+ // (7) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
135
+ //
136
+
137
+ static ProxyStub::MethodHandler ExampleSimpleInstanceObjectsDeviceStubMethods[] = {
138
+ // (0) virtual Core::hresult Register(Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
139
+ //
140
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
141
+ Core::hresult hresult = Core::ERROR_NONE;
142
+
143
+ hresult = [&]() -> Core::hresult {
144
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
145
+
146
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
147
+ ASSERT(implementation != nullptr);
148
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
149
+
150
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
151
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
152
+ Core::instance_id _notificationInstanceId__ = reader.Number<Core::instance_id>();
153
+ Core::OptionalType<uint8_t> _pin{};
154
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
155
+ if (reader.Boolean() == true) {
156
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
157
+ _pin = reader.Number<uint8_t>();
158
+ }
159
+
160
+ Example::ISimpleInstanceObjects::IDevice::INotification* _notification{};
161
+ ProxyStub::UnknownProxy* _notificationProxy__ = nullptr;
162
+ if (_notificationInstanceId__ != 0) {
163
+ _notificationProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificationInstanceId__, false, _notification);
164
+ ASSERT((_notification != nullptr) && (_notificationProxy__ != nullptr));
165
+ if ((_notification == nullptr) || (_notificationProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
166
+ }
167
+
168
+ Core::hresult result = implementation->Register(_notification, static_cast<const Core::OptionalType<uint8_t>&>(_pin));
169
+
170
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
171
+ writer.Number<Core::hresult>(result);
172
+
173
+ if (_notificationProxy__ != nullptr) {
174
+ RPC::Administrator::Instance().Release(_notificationProxy__, message->Response());
175
+ }
176
+
177
+ return (Core::ERROR_NONE);
178
+ } ();
179
+
180
+ if (hresult != Core::ERROR_NONE) {
181
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
182
+ writer.Number<uint32_t>(hresult);
183
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 0, hresult);
184
+ }
185
+ },
186
+
187
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
188
+ //
189
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
190
+ Core::hresult hresult = Core::ERROR_NONE;
191
+
192
+ hresult = [&]() -> Core::hresult {
193
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
194
+
195
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
196
+ ASSERT(implementation != nullptr);
197
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
198
+
199
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
200
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
201
+ Core::instance_id _notificaitonInstanceId__ = reader.Number<Core::instance_id>();
202
+ Core::OptionalType<uint8_t> _pin{};
203
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
204
+ if (reader.Boolean() == true) {
205
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
206
+ _pin = reader.Number<uint8_t>();
207
+ }
208
+
209
+ const Example::ISimpleInstanceObjects::IDevice::INotification* _notificaiton{};
210
+ ProxyStub::UnknownProxy* _notificaitonProxy__ = nullptr;
211
+ if (_notificaitonInstanceId__ != 0) {
212
+ _notificaitonProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _notificaitonInstanceId__, false, _notificaiton);
213
+ ASSERT((_notificaiton != nullptr) && (_notificaitonProxy__ != nullptr));
214
+ if ((_notificaiton == nullptr) || (_notificaitonProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
215
+ }
216
+
217
+ Core::hresult result = implementation->Unregister(_notificaiton, static_cast<const Core::OptionalType<uint8_t>&>(_pin));
218
+
219
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
220
+ writer.Number<Core::hresult>(result);
221
+
222
+ if (_notificaitonProxy__ != nullptr) {
223
+ RPC::Administrator::Instance().Release(_notificaitonProxy__, message->Response());
224
+ }
225
+
226
+ return (Core::ERROR_NONE);
227
+ } ();
228
+
229
+ if (hresult != Core::ERROR_NONE) {
230
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
231
+ writer.Number<uint32_t>(hresult);
232
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 1, hresult);
233
+ }
234
+ },
235
+
236
+ // (2) virtual Core::hresult Name(string&) const = 0
237
+ //
238
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
239
+ Core::hresult hresult = Core::ERROR_NONE;
240
+
241
+ hresult = [&]() -> Core::hresult {
242
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
243
+
244
+ const Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<const Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
245
+ ASSERT(implementation != nullptr);
246
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
247
+
248
+ string _name{};
249
+
250
+ Core::hresult result = implementation->Name(_name);
251
+
252
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
253
+ writer.Number<Core::hresult>(result);
254
+ writer.Text(_name);
255
+
256
+ return (Core::ERROR_NONE);
257
+ } ();
258
+
259
+ if (hresult != Core::ERROR_NONE) {
260
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
261
+ writer.Number<uint32_t>(hresult);
262
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 2, hresult);
263
+ }
264
+ },
265
+
266
+ // (3) virtual Core::hresult Name(const string&) = 0
267
+ //
268
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
269
+ Core::hresult hresult = Core::ERROR_NONE;
270
+
271
+ hresult = [&]() -> Core::hresult {
272
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
273
+
274
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
275
+ ASSERT(implementation != nullptr);
276
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
277
+
278
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
279
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
280
+ const uint16_t _namePeekedLen__ = reader.PeekNumber<uint16_t>();
281
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _namePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
282
+ const string _name = reader.Text();
283
+
284
+ Core::hresult result = implementation->Name(static_cast<const string&>(_name));
285
+
286
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
287
+ writer.Number<Core::hresult>(result);
288
+
289
+ return (Core::ERROR_NONE);
290
+ } ();
291
+
292
+ if (hresult != Core::ERROR_NONE) {
293
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
294
+ writer.Number<uint32_t>(hresult);
295
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 3, hresult);
296
+ }
297
+ },
298
+
299
+ // (4) virtual Core::hresult Enable() = 0
300
+ //
301
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
302
+ Core::hresult hresult = Core::ERROR_NONE;
303
+
304
+ hresult = [&]() -> Core::hresult {
305
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
306
+
307
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
308
+ ASSERT(implementation != nullptr);
309
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
310
+
311
+ Core::hresult result = implementation->Enable();
312
+
313
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
314
+ writer.Number<Core::hresult>(result);
315
+
316
+ return (Core::ERROR_NONE);
317
+ } ();
318
+
319
+ if (hresult != Core::ERROR_NONE) {
320
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
321
+ writer.Number<uint32_t>(hresult);
322
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 4, hresult);
323
+ }
324
+ },
325
+
326
+ // (5) virtual Core::hresult Disable() = 0
327
+ //
328
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
329
+ Core::hresult hresult = Core::ERROR_NONE;
330
+
331
+ hresult = [&]() -> Core::hresult {
332
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
333
+
334
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
335
+ ASSERT(implementation != nullptr);
336
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
337
+
338
+ Core::hresult result = implementation->Disable();
339
+
340
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
341
+ writer.Number<Core::hresult>(result);
342
+
343
+ return (Core::ERROR_NONE);
344
+ } ();
345
+
346
+ if (hresult != Core::ERROR_NONE) {
347
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
348
+ writer.Number<uint32_t>(hresult);
349
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 5, hresult);
350
+ }
351
+ },
352
+
353
+ // (6) virtual Core::hresult Pin(const uint8_t, const bool) = 0
354
+ //
355
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
356
+ Core::hresult hresult = Core::ERROR_NONE;
357
+
358
+ hresult = [&]() -> Core::hresult {
359
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
360
+
361
+ Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
362
+ ASSERT(implementation != nullptr);
363
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
364
+
365
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
366
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
367
+ const uint8_t _pin = reader.Number<uint8_t>();
368
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
369
+ const bool _high = reader.Boolean();
370
+
371
+ Core::hresult result = implementation->Pin(_pin, _high);
372
+
373
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
374
+ writer.Number<Core::hresult>(result);
375
+
376
+ return (Core::ERROR_NONE);
377
+ } ();
378
+
379
+ if (hresult != Core::ERROR_NONE) {
380
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
381
+ writer.Number<uint32_t>(hresult);
382
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 6, hresult);
383
+ }
384
+ },
385
+
386
+ // (7) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
387
+ //
388
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
389
+ Core::hresult hresult = Core::ERROR_NONE;
390
+
391
+ hresult = [&]() -> Core::hresult {
392
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
393
+
394
+ const Example::ISimpleInstanceObjects::IDevice* implementation = reinterpret_cast<const Example::ISimpleInstanceObjects::IDevice*>(message->Parameters().Implementation());
395
+ ASSERT(implementation != nullptr);
396
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
397
+
398
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
399
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
400
+ const uint8_t _pin = reader.Number<uint8_t>();
401
+
402
+ bool _high{};
403
+
404
+ Core::hresult result = implementation->Pin(_pin, _high);
405
+
406
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
407
+ writer.Number<Core::hresult>(result);
408
+ writer.Boolean(_high);
409
+
410
+ return (Core::ERROR_NONE);
411
+ } ();
412
+
413
+ if (hresult != Core::ERROR_NONE) {
414
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
415
+ writer.Number<uint32_t>(hresult);
416
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 7, hresult);
417
+ }
418
+ }
419
+ , nullptr
420
+ }; // ExampleSimpleInstanceObjectsDeviceStubMethods
421
+
422
+ //
423
+ // Example::ISimpleInstanceObjects::IDevice::INotification interface stub definitions
424
+ //
425
+ // Methods:
426
+ // (0) virtual void NameChanged(const string&) = 0
427
+ // (1) virtual void StateChanged(const Example::ISimpleInstanceObjects::state) = 0
428
+ // (2) virtual void PinChanged(const uint8_t, const bool) = 0
429
+ //
430
+
431
+ static ProxyStub::MethodHandler ExampleSimpleInstanceObjectsDeviceNotificationStubMethods[] = {
432
+ // (0) virtual void NameChanged(const string&) = 0
433
+ //
434
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
435
+ Core::hresult hresult = Core::ERROR_NONE;
436
+
437
+ hresult = [&]() -> Core::hresult {
438
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
439
+
440
+ Example::ISimpleInstanceObjects::IDevice::INotification* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice::INotification*>(message->Parameters().Implementation());
441
+ ASSERT(implementation != nullptr);
442
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
443
+
444
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
445
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
446
+ const uint16_t _statePeekedLen__ = reader.PeekNumber<uint16_t>();
447
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _statePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
448
+ const string _state = reader.Text();
449
+
450
+ implementation->NameChanged(static_cast<const string&>(_state));
451
+
452
+ return (Core::ERROR_NONE);
453
+ } ();
454
+
455
+ if (hresult != Core::ERROR_NONE) {
456
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::INotification::ID, 0, hresult);
457
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
458
+ }
459
+ },
460
+
461
+ // (1) virtual void StateChanged(const Example::ISimpleInstanceObjects::state) = 0
462
+ //
463
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
464
+ Core::hresult hresult = Core::ERROR_NONE;
465
+
466
+ hresult = [&]() -> Core::hresult {
467
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
468
+
469
+ Example::ISimpleInstanceObjects::IDevice::INotification* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice::INotification*>(message->Parameters().Implementation());
470
+ ASSERT(implementation != nullptr);
471
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
472
+
473
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
474
+ if (reader.Length() < (Core::RealSize<Example::ISimpleInstanceObjects::state>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
475
+ const Example::ISimpleInstanceObjects::state _state = reader.Number<Example::ISimpleInstanceObjects::state>();
476
+
477
+ implementation->StateChanged(_state);
478
+
479
+ return (Core::ERROR_NONE);
480
+ } ();
481
+
482
+ if (hresult != Core::ERROR_NONE) {
483
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::INotification::ID, 1, hresult);
484
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
485
+ }
486
+ },
487
+
488
+ // (2) virtual void PinChanged(const uint8_t, const bool) = 0
489
+ //
490
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
491
+ Core::hresult hresult = Core::ERROR_NONE;
492
+
493
+ hresult = [&]() -> Core::hresult {
494
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
495
+
496
+ Example::ISimpleInstanceObjects::IDevice::INotification* implementation = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice::INotification*>(message->Parameters().Implementation());
497
+ ASSERT(implementation != nullptr);
498
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), Example::ISimpleInstanceObjects::IDevice::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
499
+
500
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
501
+ if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
502
+ const uint8_t _pin = reader.Number<uint8_t>();
503
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
504
+ const bool _high = reader.Boolean();
505
+
506
+ implementation->PinChanged(_pin, _high);
507
+
508
+ return (Core::ERROR_NONE);
509
+ } ();
510
+
511
+ if (hresult != Core::ERROR_NONE) {
512
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::INotification::ID, 2, hresult);
513
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
514
+ }
515
+ }
516
+ , nullptr
517
+ }; // ExampleSimpleInstanceObjectsDeviceNotificationStubMethods
518
+
519
+ // -----------------------------------------------------------------
520
+ // PROXIES
521
+ // -----------------------------------------------------------------
522
+
523
+ //
524
+ // Example::ISimpleInstanceObjects interface proxy definitions
525
+ //
526
+ // Methods:
527
+ // (0) virtual Core::hresult Acquire(const string&, Example::ISimpleInstanceObjects::IDevice*&) = 0
528
+ // (1) virtual Core::hresult Relinquish(Example::ISimpleInstanceObjects::IDevice* const) = 0
529
+ //
530
+
531
+ class ExampleSimpleInstanceObjectsProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleInstanceObjects> {
532
+ public:
533
+ ExampleSimpleInstanceObjectsProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
534
+ : BaseClass(channel, implementation, otherSideInformed)
535
+ {
536
+ }
537
+
538
+ Core::hresult Acquire(const string& _name, Example::ISimpleInstanceObjects::IDevice*& _device) override
539
+ {
540
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
541
+
542
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
543
+ writer.Text(_name);
544
+
545
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
546
+ if (hresult == Core::ERROR_NONE) {
547
+ hresult = [&]() -> Core::hresult {
548
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
549
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
550
+ hresult = reader.Number<Core::hresult>();
551
+ if ((hresult & COM_ERROR) == 0) {
552
+ _device = reinterpret_cast<Example::ISimpleInstanceObjects::IDevice*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), Example::ISimpleInstanceObjects::IDevice::ID));
553
+ }
554
+
555
+ return (hresult);
556
+ } ();
557
+ } else {
558
+ ASSERT((hresult & COM_ERROR) != 0);
559
+ }
560
+
561
+ if ((hresult & COM_ERROR) != 0) {
562
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::ID, 0, hresult);
563
+ }
564
+
565
+ return (hresult);
566
+ }
567
+
568
+ Core::hresult Relinquish(Example::ISimpleInstanceObjects::IDevice* const _device) override
569
+ {
570
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
571
+
572
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
573
+ writer.Number<Core::instance_id>(RPC::instance_cast(_device));
574
+
575
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_device), Example::ISimpleInstanceObjects::IDevice::ID }, { 0, 0 } };
576
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
577
+
578
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
579
+ if (hresult == Core::ERROR_NONE) {
580
+ hresult = [&]() -> Core::hresult {
581
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
582
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
583
+ hresult = reader.Number<Core::hresult>();
584
+
585
+ const uint32_t completeResult__ = _Complete(reader);
586
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
587
+
588
+ return (hresult);
589
+ } ();
590
+ } else {
591
+ ASSERT((hresult & COM_ERROR) != 0);
592
+ }
593
+
594
+ if ((hresult & COM_ERROR) != 0) {
595
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::ID, 1, hresult);
596
+ }
597
+
598
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
599
+
600
+ return (hresult);
601
+ }
602
+
603
+ private:
604
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
605
+ {
606
+ uint32_t result = Core::ERROR_NONE;
607
+
608
+ while (reader.HasData() == true) {
609
+ const size_t entrySize = (sizeof(Core::instance_id) + sizeof(uint32_t) + sizeof(RPC::Data::Output::mode));
610
+ if (reader.Length() < entrySize) { result = (COM_ERROR | Core::ERROR_READ_ERROR); break; }
611
+
612
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
613
+ ASSERT(implementation != 0);
614
+
615
+ const uint32_t id = reader.Number<uint32_t>();
616
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
617
+
618
+ if (RPC::Administrator::Instance().IsValid(static_cast<const ProxyStub::UnknownProxy&>(*this).Channel(), implementation, id) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
619
+
620
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
621
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
622
+ }
623
+
624
+ return (result);
625
+ }
626
+
627
+ }; // class ExampleSimpleInstanceObjectsProxy
628
+
629
+ //
630
+ // Example::ISimpleInstanceObjects::IDevice interface proxy definitions
631
+ //
632
+ // Methods:
633
+ // (0) virtual Core::hresult Register(Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
634
+ // (1) virtual Core::hresult Unregister(const Example::ISimpleInstanceObjects::IDevice::INotification* const, const Core::OptionalType<uint8_t>&) = 0
635
+ // (2) virtual Core::hresult Name(string&) const = 0
636
+ // (3) virtual Core::hresult Name(const string&) = 0
637
+ // (4) virtual Core::hresult Enable() = 0
638
+ // (5) virtual Core::hresult Disable() = 0
639
+ // (6) virtual Core::hresult Pin(const uint8_t, const bool) = 0
640
+ // (7) virtual Core::hresult Pin(const uint8_t, bool&) const = 0
641
+ //
642
+
643
+ class ExampleSimpleInstanceObjectsDeviceProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleInstanceObjects::IDevice> {
644
+ public:
645
+ ExampleSimpleInstanceObjectsDeviceProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
646
+ : BaseClass(channel, implementation, otherSideInformed)
647
+ {
648
+ }
649
+
650
+ Core::hresult Register(Example::ISimpleInstanceObjects::IDevice::INotification* const _notification, const Core::OptionalType<uint8_t>& _pin) override
651
+ {
652
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
653
+
654
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
655
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notification));
656
+ writer.Boolean(_pin.IsSet());
657
+ if (_pin.IsSet() == true) {
658
+ writer.Number<uint8_t>(_pin.Value());
659
+ }
660
+
661
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notification), Example::ISimpleInstanceObjects::IDevice::INotification::ID }, { 0, 0 } };
662
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
663
+
664
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
665
+ if (hresult == Core::ERROR_NONE) {
666
+ hresult = [&]() -> Core::hresult {
667
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
668
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
669
+ hresult = reader.Number<Core::hresult>();
670
+
671
+ const uint32_t completeResult__ = _Complete(reader);
672
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
673
+
674
+ return (hresult);
675
+ } ();
676
+ } else {
677
+ ASSERT((hresult & COM_ERROR) != 0);
678
+ }
679
+
680
+ if ((hresult & COM_ERROR) != 0) {
681
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 0, hresult);
682
+ }
683
+
684
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
685
+
686
+ return (hresult);
687
+ }
688
+
689
+ Core::hresult Unregister(const Example::ISimpleInstanceObjects::IDevice::INotification* const _notificaiton, const Core::OptionalType<uint8_t>& _pin) override
690
+ {
691
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
692
+
693
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
694
+ writer.Number<Core::instance_id>(RPC::instance_cast(_notificaiton));
695
+ writer.Boolean(_pin.IsSet());
696
+ if (_pin.IsSet() == true) {
697
+ writer.Number<uint8_t>(_pin.Value());
698
+ }
699
+
700
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_notificaiton), Example::ISimpleInstanceObjects::IDevice::INotification::ID }, { 0, 0 } };
701
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
702
+
703
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
704
+ if (hresult == Core::ERROR_NONE) {
705
+ hresult = [&]() -> Core::hresult {
706
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
707
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
708
+ hresult = reader.Number<Core::hresult>();
709
+
710
+ const uint32_t completeResult__ = _Complete(reader);
711
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
712
+
713
+ return (hresult);
714
+ } ();
715
+ } else {
716
+ ASSERT((hresult & COM_ERROR) != 0);
717
+ }
718
+
719
+ if ((hresult & COM_ERROR) != 0) {
720
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 1, hresult);
721
+ }
722
+
723
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
724
+
725
+ return (hresult);
726
+ }
727
+
728
+ Core::hresult Name(string& _name) const override
729
+ {
730
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
731
+
732
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
733
+ if (hresult == Core::ERROR_NONE) {
734
+ hresult = [&]() -> Core::hresult {
735
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
736
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
737
+ hresult = reader.Number<Core::hresult>();
738
+ if ((hresult & COM_ERROR) == 0) {
739
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
740
+ const uint16_t _namePeekedLen__ = reader.PeekNumber<uint16_t>();
741
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _namePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
742
+ _name = reader.Text();
743
+ }
744
+
745
+ return (hresult);
746
+ } ();
747
+ } else {
748
+ ASSERT((hresult & COM_ERROR) != 0);
749
+ }
750
+
751
+ if ((hresult & COM_ERROR) != 0) {
752
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 2, hresult);
753
+ }
754
+
755
+ return (hresult);
756
+ }
757
+
758
+ Core::hresult Name(const string& _name) override
759
+ {
760
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
761
+
762
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
763
+ writer.Text(_name);
764
+
765
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
766
+ if (hresult == Core::ERROR_NONE) {
767
+ hresult = [&]() -> Core::hresult {
768
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
769
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
770
+ hresult = reader.Number<Core::hresult>();
771
+
772
+ return (hresult);
773
+ } ();
774
+ } else {
775
+ ASSERT((hresult & COM_ERROR) != 0);
776
+ }
777
+
778
+ if ((hresult & COM_ERROR) != 0) {
779
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 3, hresult);
780
+ }
781
+
782
+ return (hresult);
783
+ }
784
+
785
+ Core::hresult Enable() override
786
+ {
787
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
788
+
789
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
790
+ if (hresult == Core::ERROR_NONE) {
791
+ hresult = [&]() -> Core::hresult {
792
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
793
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
794
+ hresult = reader.Number<Core::hresult>();
795
+
796
+ return (hresult);
797
+ } ();
798
+ } else {
799
+ ASSERT((hresult & COM_ERROR) != 0);
800
+ }
801
+
802
+ if ((hresult & COM_ERROR) != 0) {
803
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 4, hresult);
804
+ }
805
+
806
+ return (hresult);
807
+ }
808
+
809
+ Core::hresult Disable() override
810
+ {
811
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
812
+
813
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
814
+ if (hresult == Core::ERROR_NONE) {
815
+ hresult = [&]() -> Core::hresult {
816
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
817
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
818
+ hresult = reader.Number<Core::hresult>();
819
+
820
+ return (hresult);
821
+ } ();
822
+ } else {
823
+ ASSERT((hresult & COM_ERROR) != 0);
824
+ }
825
+
826
+ if ((hresult & COM_ERROR) != 0) {
827
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 5, hresult);
828
+ }
829
+
830
+ return (hresult);
831
+ }
832
+
833
+ Core::hresult Pin(const uint8_t _pin, const bool _high) override
834
+ {
835
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(6));
836
+
837
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
838
+ writer.Number<uint8_t>(_pin);
839
+ writer.Boolean(_high);
840
+
841
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
842
+ if (hresult == Core::ERROR_NONE) {
843
+ hresult = [&]() -> Core::hresult {
844
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
845
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
846
+ hresult = reader.Number<Core::hresult>();
847
+
848
+ return (hresult);
849
+ } ();
850
+ } else {
851
+ ASSERT((hresult & COM_ERROR) != 0);
852
+ }
853
+
854
+ if ((hresult & COM_ERROR) != 0) {
855
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 6, hresult);
856
+ }
857
+
858
+ return (hresult);
859
+ }
860
+
861
+ Core::hresult Pin(const uint8_t _pin, bool& _high) const override
862
+ {
863
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(7));
864
+
865
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
866
+ writer.Number<uint8_t>(_pin);
867
+
868
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
869
+ if (hresult == Core::ERROR_NONE) {
870
+ hresult = [&]() -> Core::hresult {
871
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
872
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
873
+ hresult = reader.Number<Core::hresult>();
874
+ if ((hresult & COM_ERROR) == 0) {
875
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
876
+ _high = reader.Boolean();
877
+ }
878
+
879
+ return (hresult);
880
+ } ();
881
+ } else {
882
+ ASSERT((hresult & COM_ERROR) != 0);
883
+ }
884
+
885
+ if ((hresult & COM_ERROR) != 0) {
886
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::ID, 7, hresult);
887
+ }
888
+
889
+ return (hresult);
890
+ }
891
+
892
+ private:
893
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
894
+ {
895
+ uint32_t result = Core::ERROR_NONE;
896
+
897
+ while (reader.HasData() == true) {
898
+ const size_t entrySize = (sizeof(Core::instance_id) + sizeof(uint32_t) + sizeof(RPC::Data::Output::mode));
899
+ if (reader.Length() < entrySize) { result = (COM_ERROR | Core::ERROR_READ_ERROR); break; }
900
+
901
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
902
+ ASSERT(implementation != 0);
903
+
904
+ const uint32_t id = reader.Number<uint32_t>();
905
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
906
+
907
+ if (RPC::Administrator::Instance().IsValid(static_cast<const ProxyStub::UnknownProxy&>(*this).Channel(), implementation, id) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
908
+
909
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
910
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
911
+ }
912
+
913
+ return (result);
914
+ }
915
+
916
+ }; // class ExampleSimpleInstanceObjectsDeviceProxy
917
+
918
+ //
919
+ // Example::ISimpleInstanceObjects::IDevice::INotification interface proxy definitions
920
+ //
921
+ // Methods:
922
+ // (0) virtual void NameChanged(const string&) = 0
923
+ // (1) virtual void StateChanged(const Example::ISimpleInstanceObjects::state) = 0
924
+ // (2) virtual void PinChanged(const uint8_t, const bool) = 0
925
+ //
926
+
927
+ class ExampleSimpleInstanceObjectsDeviceNotificationProxy final : public ProxyStub::UnknownProxyType<Example::ISimpleInstanceObjects::IDevice::INotification> {
928
+ public:
929
+ ExampleSimpleInstanceObjectsDeviceNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
930
+ : BaseClass(channel, implementation, otherSideInformed)
931
+ {
932
+ }
933
+
934
+ void NameChanged(const string& _state) override
935
+ {
936
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
937
+
938
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
939
+ writer.Text(_state);
940
+
941
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
942
+ if (hresult == Core::ERROR_NONE) {
943
+ hresult = [&]() -> Core::hresult {
944
+
945
+ return (Core::ERROR_NONE);
946
+ } ();
947
+ } else {
948
+ ASSERT((hresult & COM_ERROR) != 0);
949
+ }
950
+
951
+ if ((hresult & COM_ERROR) != 0) {
952
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::INotification::ID, 0, hresult);
953
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
954
+ }
955
+ }
956
+
957
+ void StateChanged(const Example::ISimpleInstanceObjects::state _state) override
958
+ {
959
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
960
+
961
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
962
+ writer.Number<Example::ISimpleInstanceObjects::state>(_state);
963
+
964
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
965
+ if (hresult == Core::ERROR_NONE) {
966
+ hresult = [&]() -> Core::hresult {
967
+
968
+ return (Core::ERROR_NONE);
969
+ } ();
970
+ } else {
971
+ ASSERT((hresult & COM_ERROR) != 0);
972
+ }
973
+
974
+ if ((hresult & COM_ERROR) != 0) {
975
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::INotification::ID, 1, hresult);
976
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
977
+ }
978
+ }
979
+
980
+ void PinChanged(const uint8_t _pin, const bool _high) override
981
+ {
982
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
983
+
984
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
985
+ writer.Number<uint8_t>(_pin);
986
+ writer.Boolean(_high);
987
+
988
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
989
+ if (hresult == Core::ERROR_NONE) {
990
+ hresult = [&]() -> Core::hresult {
991
+
992
+ return (Core::ERROR_NONE);
993
+ } ();
994
+ } else {
995
+ ASSERT((hresult & COM_ERROR) != 0);
996
+ }
997
+
998
+ if ((hresult & COM_ERROR) != 0) {
999
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", Example::ISimpleInstanceObjects::IDevice::INotification::ID, 2, hresult);
1000
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1001
+ }
1002
+ }
1003
+
1004
+ }; // class ExampleSimpleInstanceObjectsDeviceNotificationProxy
1005
+
1006
+ POP_WARNING()
1007
+ POP_WARNING()
1008
+
1009
+ // -----------------------------------------------------------------
1010
+ // REGISTRATION
1011
+ // -----------------------------------------------------------------
1012
+ namespace {
1013
+
1014
+ typedef ProxyStub::UnknownStubType<Example::ISimpleInstanceObjects, ExampleSimpleInstanceObjectsStubMethods> ExampleSimpleInstanceObjectsStub;
1015
+ typedef ProxyStub::UnknownStubType<Example::ISimpleInstanceObjects::IDevice, ExampleSimpleInstanceObjectsDeviceStubMethods> ExampleSimpleInstanceObjectsDeviceStub;
1016
+ typedef ProxyStub::UnknownStubType<Example::ISimpleInstanceObjects::IDevice::INotification, ExampleSimpleInstanceObjectsDeviceNotificationStubMethods> ExampleSimpleInstanceObjectsDeviceNotificationStub;
1017
+
1018
+ static class Instantiation {
1019
+ public:
1020
+ Instantiation()
1021
+ {
1022
+ const RPC::SecureProxyStubType security = static_cast<RPC::SecureProxyStubType>(static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_SECURE) | static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_COHERENT));
1023
+
1024
+ RPC::Administrator::Instance().Announce<Example::ISimpleInstanceObjects, ExampleSimpleInstanceObjectsProxy, ExampleSimpleInstanceObjectsStub>(security);
1025
+ RPC::Administrator::Instance().Announce<Example::ISimpleInstanceObjects::IDevice, ExampleSimpleInstanceObjectsDeviceProxy, ExampleSimpleInstanceObjectsDeviceStub>(security);
1026
+ RPC::Administrator::Instance().Announce<Example::ISimpleInstanceObjects::IDevice::INotification, ExampleSimpleInstanceObjectsDeviceNotificationProxy, ExampleSimpleInstanceObjectsDeviceNotificationStub>(security);
1027
+ }
1028
+ ~Instantiation()
1029
+ {
1030
+ RPC::Administrator::Instance().Recall<Example::ISimpleInstanceObjects>();
1031
+ RPC::Administrator::Instance().Recall<Example::ISimpleInstanceObjects::IDevice>();
1032
+ RPC::Administrator::Instance().Recall<Example::ISimpleInstanceObjects::IDevice::INotification>();
1033
+ }
1034
+ } ProxyStubRegistration;
1035
+
1036
+ } // namespace
1037
+
1038
+ } // namespace ProxyStubs
1039
+
1040
+ }
{baseline/home/runner/work/ThunderTools/ThunderTools/ghpages_baseline/ProxyStubGenerator/master/latest_raw → generated/generated}/Release/ThunderInterfaces/interfaces/generated/ProxyStubs_OCDM.cpp RENAMED
@@ -1073,11 +1073,11 @@ namespace ProxyStubs {
1073
1073
 
1074
1074
  Exchange::OCDM_RESULT result = implementation->StoreLicenseData(_licenseData, _licenseDataSize, _secureStopId);
1075
1075
 
1076
1076
  RPC::Data::Frame::Writer writer(message->Response().Writer());
1077
1077
  writer.Number<Exchange::OCDM_RESULT>(result);
1078
- writer.Buffer<uint8_t>(16, _secureStopId);
1078
+ writer.Copy(16, _secureStopId);
1079
1079
 
1080
1080
  return (Core::ERROR_NONE);
1081
1081
  } ();
1082
1082
 
1083
1083
  if (hresult != Core::ERROR_NONE) {
@@ -2896,11 +2896,11 @@ namespace ProxyStubs {
2896
2896
  if (reader.Length() < (Core::RealSize<Exchange::OCDM_RESULT>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2897
2897
  result = reader.Number<Exchange::OCDM_RESULT>();
2898
2898
  if (reader.Length() < (Core::RealSize<uint8_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2899
2899
  const uint8_t _secureStopIdPeekedLen__ = reader.PeekNumber<uint8_t>();
2900
2900
  if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint8_t>()) + _secureStopIdPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
2901
- reader.Buffer<uint8_t>(16, _secureStopId);
2901
+ reader.Copy(16, _secureStopId);
2902
2902
 
2903
2903
  return (Core::ERROR_NONE);
2904
2904
  } ();
2905
2905
  } else {
2906
2906
  ASSERT((hresult & COM_ERROR) != 0);
generated/generated/Release/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestAutomation.cpp ADDED
@@ -0,0 +1,1267 @@
1
+ //
2
+ // generated automatically from "ITestAutomation.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class QualityAssurance::IMemory
6
+ // - class QualityAssurance::IComRpc
7
+ // - class QualityAssurance::IComRpc::IComRpcInternal
8
+ // - class QualityAssurance::ITestTextOptions
9
+ // - class QualityAssurance::ITestTextOptions::INotification
10
+ // - class QualityAssurance::ITestTextOptions::ITestLegacy
11
+ // - class QualityAssurance::ITestTextOptions::ITestLegacy::INotification
12
+ // - class QualityAssurance::ITestTextOptions::ITestKeep
13
+ // - class QualityAssurance::ITestTextOptions::ITestKeep::INotification
14
+ // - class QualityAssurance::ITestTextOptions::ITestCustom
15
+ // - class QualityAssurance::ITestTextOptions::ITestCustom::INotification
16
+ // - class QualityAssurance::ITestUtils
17
+ //
18
+ // secure code enabled:
19
+ // - instance verification enabled
20
+ // - range verification enabled
21
+ // - frame coherency verification enabled
22
+ //
23
+
24
+ #include "Module.h"
25
+ #include "ITestAutomation.h"
26
+
27
+ #include <com/com.h>
28
+
29
+ namespace Thunder {
30
+
31
+ namespace ProxyStubs {
32
+
33
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
34
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
35
+
36
+ // -----------------------------------------------------------------
37
+ // STUBS
38
+ // -----------------------------------------------------------------
39
+
40
+ //
41
+ // QualityAssurance::IMemory interface stub definitions
42
+ //
43
+ // Methods:
44
+ // (0) virtual Core::hresult AllocateMemory(const uint32_t) = 0
45
+ // (1) virtual Core::hresult FreeAllocatedMemory() = 0
46
+ //
47
+
48
+ static ProxyStub::MethodHandler QualityAssuranceMemoryStubMethods[] = {
49
+ // (0) virtual Core::hresult AllocateMemory(const uint32_t) = 0
50
+ //
51
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
52
+ Core::hresult hresult = Core::ERROR_NONE;
53
+
54
+ hresult = [&]() -> Core::hresult {
55
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
56
+
57
+ QualityAssurance::IMemory* implementation = reinterpret_cast<QualityAssurance::IMemory*>(message->Parameters().Implementation());
58
+ ASSERT(implementation != nullptr);
59
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::IMemory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
60
+
61
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
62
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
63
+ const uint32_t _size = reader.Number<uint32_t>();
64
+
65
+ Core::hresult result = implementation->AllocateMemory(_size);
66
+
67
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
68
+ writer.Number<Core::hresult>(result);
69
+
70
+ return (Core::ERROR_NONE);
71
+ } ();
72
+
73
+ if (hresult != Core::ERROR_NONE) {
74
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
75
+ writer.Number<uint32_t>(hresult);
76
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::IMemory::ID, 0, hresult);
77
+ }
78
+ },
79
+
80
+ // (1) virtual Core::hresult FreeAllocatedMemory() = 0
81
+ //
82
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
83
+ Core::hresult hresult = Core::ERROR_NONE;
84
+
85
+ hresult = [&]() -> Core::hresult {
86
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
87
+
88
+ QualityAssurance::IMemory* implementation = reinterpret_cast<QualityAssurance::IMemory*>(message->Parameters().Implementation());
89
+ ASSERT(implementation != nullptr);
90
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::IMemory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
91
+
92
+ Core::hresult result = implementation->FreeAllocatedMemory();
93
+
94
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
95
+ writer.Number<Core::hresult>(result);
96
+
97
+ return (Core::ERROR_NONE);
98
+ } ();
99
+
100
+ if (hresult != Core::ERROR_NONE) {
101
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
102
+ writer.Number<uint32_t>(hresult);
103
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::IMemory::ID, 1, hresult);
104
+ }
105
+ }
106
+ , nullptr
107
+ }; // QualityAssuranceMemoryStubMethods
108
+
109
+ //
110
+ // QualityAssurance::IComRpc interface stub definitions
111
+ //
112
+ // Methods:
113
+ // (0) virtual Core::hresult TestBigString(const uint32_t) = 0
114
+ //
115
+
116
+ static ProxyStub::MethodHandler QualityAssuranceComRpcStubMethods[] = {
117
+ // (0) virtual Core::hresult TestBigString(const uint32_t) = 0
118
+ //
119
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
120
+ Core::hresult hresult = Core::ERROR_NONE;
121
+
122
+ hresult = [&]() -> Core::hresult {
123
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
124
+
125
+ QualityAssurance::IComRpc* implementation = reinterpret_cast<QualityAssurance::IComRpc*>(message->Parameters().Implementation());
126
+ ASSERT(implementation != nullptr);
127
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::IComRpc::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
128
+
129
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
130
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
131
+ const uint32_t _length = reader.Number<uint32_t>();
132
+
133
+ Core::hresult result = implementation->TestBigString(_length);
134
+
135
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
136
+ writer.Number<Core::hresult>(result);
137
+
138
+ return (Core::ERROR_NONE);
139
+ } ();
140
+
141
+ if (hresult != Core::ERROR_NONE) {
142
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
143
+ writer.Number<uint32_t>(hresult);
144
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::IComRpc::ID, 0, hresult);
145
+ }
146
+ }
147
+ , nullptr
148
+ }; // QualityAssuranceComRpcStubMethods
149
+
150
+ //
151
+ // QualityAssurance::IComRpc::IComRpcInternal interface stub definitions
152
+ //
153
+ // Methods:
154
+ // (0) virtual Core::hresult BigStringTest(const string&) = 0
155
+ //
156
+
157
+ static ProxyStub::MethodHandler QualityAssuranceComRpcComRpcInternalStubMethods[] = {
158
+ // (0) virtual Core::hresult BigStringTest(const string&) = 0
159
+ //
160
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
161
+ Core::hresult hresult = Core::ERROR_NONE;
162
+
163
+ hresult = [&]() -> Core::hresult {
164
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
165
+
166
+ QualityAssurance::IComRpc::IComRpcInternal* implementation = reinterpret_cast<QualityAssurance::IComRpc::IComRpcInternal*>(message->Parameters().Implementation());
167
+ ASSERT(implementation != nullptr);
168
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::IComRpc::IComRpcInternal::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
169
+
170
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
171
+ if (reader.Length() < (Core::RealSize<Core::UInt24>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
172
+ const Core::UInt24 _testStringPeekedLen__ = reader.PeekNumber<Core::UInt24>();
173
+ ASSERT((_testStringPeekedLen__ >= 0) && (_testStringPeekedLen__ <= 4194303));
174
+ if (!((_testStringPeekedLen__ >= 0) && (_testStringPeekedLen__ <= 4194303))) { return (COM_ERROR | Core::ERROR_INVALID_RANGE); }
175
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<Core::UInt24>()) + _testStringPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
176
+ const string _testString = reader.Text<Core::UInt24>();
177
+
178
+ Core::hresult result = implementation->BigStringTest(static_cast<const string&>(_testString));
179
+
180
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
181
+ writer.Number<Core::hresult>(result);
182
+
183
+ return (Core::ERROR_NONE);
184
+ } ();
185
+
186
+ if (hresult != Core::ERROR_NONE) {
187
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
188
+ writer.Number<uint32_t>(hresult);
189
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::IComRpc::IComRpcInternal::ID, 0, hresult);
190
+ }
191
+ }
192
+ , nullptr
193
+ }; // QualityAssuranceComRpcComRpcInternalStubMethods
194
+
195
+ //
196
+ // QualityAssurance::ITestTextOptions interface stub definitions
197
+ //
198
+ // Methods:
199
+ // (0) virtual Core::hresult TestStandard(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
200
+ //
201
+
202
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsStubMethods[] = {
203
+ // (0) virtual Core::hresult TestStandard(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
204
+ //
205
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
206
+ Core::hresult hresult = Core::ERROR_NONE;
207
+
208
+ hresult = [&]() -> Core::hresult {
209
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
210
+
211
+ QualityAssurance::ITestTextOptions* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions*>(message->Parameters().Implementation());
212
+ ASSERT(implementation != nullptr);
213
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestTextOptions::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
214
+
215
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
216
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
217
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
218
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
219
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
220
+ QualityAssurance::ITestTextOptions::TestDetails _thirdTestParam{};
221
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
222
+ const uint16_t _thirdTestParam_testDetailsFirstPeekedLen__ = reader.PeekNumber<uint16_t>();
223
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsFirstPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
224
+ _thirdTestParam.testDetailsFirst = reader.Text();
225
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
226
+ const uint16_t _thirdTestParam_testDetailsSecondPeekedLen__ = reader.PeekNumber<uint16_t>();
227
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsSecondPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
228
+ _thirdTestParam.testDetailsSecond = reader.Text();
229
+ if (reader.Length() < (Core::RealSize<QualityAssurance::ITestTextOptions::EnumTextOptions>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
230
+ const QualityAssurance::ITestTextOptions::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::EnumTextOptions>();
231
+
232
+ Core::hresult result = implementation->TestStandard(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::TestDetails&>(_thirdTestParam), _fourthTestParam);
233
+
234
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
235
+ writer.Number<Core::hresult>(result);
236
+
237
+ return (Core::ERROR_NONE);
238
+ } ();
239
+
240
+ if (hresult != Core::ERROR_NONE) {
241
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
242
+ writer.Number<uint32_t>(hresult);
243
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ID, 0, hresult);
244
+ }
245
+ }
246
+ , nullptr
247
+ }; // QualityAssuranceTestTextOptionsStubMethods
248
+
249
+ //
250
+ // QualityAssurance::ITestTextOptions::INotification interface stub definitions
251
+ //
252
+ // Methods:
253
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
254
+ //
255
+
256
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsNotificationStubMethods[] = {
257
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
258
+ //
259
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
260
+ Core::hresult hresult = Core::ERROR_NONE;
261
+
262
+ hresult = [&]() -> Core::hresult {
263
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
264
+
265
+ QualityAssurance::ITestTextOptions::INotification* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::INotification*>(message->Parameters().Implementation());
266
+ ASSERT(implementation != nullptr);
267
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestTextOptions::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
268
+
269
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
270
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
271
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
272
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
273
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
274
+ QualityAssurance::ITestTextOptions::TestDetails _thirdTestParam{};
275
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
276
+ const uint16_t _thirdTestParam_testDetailsFirstPeekedLen__ = reader.PeekNumber<uint16_t>();
277
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsFirstPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
278
+ _thirdTestParam.testDetailsFirst = reader.Text();
279
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
280
+ const uint16_t _thirdTestParam_testDetailsSecondPeekedLen__ = reader.PeekNumber<uint16_t>();
281
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsSecondPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
282
+ _thirdTestParam.testDetailsSecond = reader.Text();
283
+ if (reader.Length() < (Core::RealSize<QualityAssurance::ITestTextOptions::EnumTextOptions>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
284
+ const QualityAssurance::ITestTextOptions::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::EnumTextOptions>();
285
+
286
+ implementation->TestEvent(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::TestDetails&>(_thirdTestParam), _fourthTestParam);
287
+
288
+ return (Core::ERROR_NONE);
289
+ } ();
290
+
291
+ if (hresult != Core::ERROR_NONE) {
292
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::INotification::ID, 0, hresult);
293
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
294
+ }
295
+ }
296
+ , nullptr
297
+ }; // QualityAssuranceTestTextOptionsNotificationStubMethods
298
+
299
+ //
300
+ // QualityAssurance::ITestTextOptions::ITestLegacy interface stub definitions
301
+ //
302
+ // Methods:
303
+ // (0) virtual Core::hresult TestLegacy(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
304
+ //
305
+
306
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestLegacyStubMethods[] = {
307
+ // (0) virtual Core::hresult TestLegacy(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
308
+ //
309
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
310
+ Core::hresult hresult = Core::ERROR_NONE;
311
+
312
+ hresult = [&]() -> Core::hresult {
313
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
314
+
315
+ QualityAssurance::ITestTextOptions::ITestLegacy* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestLegacy*>(message->Parameters().Implementation());
316
+ ASSERT(implementation != nullptr);
317
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestTextOptions::ITestLegacy::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
318
+
319
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
320
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
321
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
322
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
323
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
324
+ QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails _thirdTestParam{};
325
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
326
+ const uint16_t _thirdTestParam_testDetailsFirstPeekedLen__ = reader.PeekNumber<uint16_t>();
327
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsFirstPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
328
+ _thirdTestParam.testDetailsFirst = reader.Text();
329
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
330
+ const uint16_t _thirdTestParam_testDetailsSecondPeekedLen__ = reader.PeekNumber<uint16_t>();
331
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsSecondPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
332
+ _thirdTestParam.testDetailsSecond = reader.Text();
333
+ if (reader.Length() < (Core::RealSize<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
334
+ const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>();
335
+
336
+ Core::hresult result = implementation->TestLegacy(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&>(_thirdTestParam), _fourthTestParam);
337
+
338
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
339
+ writer.Number<Core::hresult>(result);
340
+
341
+ return (Core::ERROR_NONE);
342
+ } ();
343
+
344
+ if (hresult != Core::ERROR_NONE) {
345
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
346
+ writer.Number<uint32_t>(hresult);
347
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestLegacy::ID, 0, hresult);
348
+ }
349
+ }
350
+ , nullptr
351
+ }; // QualityAssuranceTestTextOptionsTestLegacyStubMethods
352
+
353
+ //
354
+ // QualityAssurance::ITestTextOptions::ITestLegacy::INotification interface stub definitions
355
+ //
356
+ // Methods:
357
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
358
+ //
359
+
360
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestLegacyNotificationStubMethods[] = {
361
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
362
+ //
363
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
364
+ Core::hresult hresult = Core::ERROR_NONE;
365
+
366
+ hresult = [&]() -> Core::hresult {
367
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
368
+
369
+ QualityAssurance::ITestTextOptions::ITestLegacy::INotification* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestLegacy::INotification*>(message->Parameters().Implementation());
370
+ ASSERT(implementation != nullptr);
371
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestTextOptions::ITestLegacy::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
372
+
373
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
374
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
375
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
376
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
377
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
378
+ QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails _thirdTestParam{};
379
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
380
+ const uint16_t _thirdTestParam_testDetailsFirstPeekedLen__ = reader.PeekNumber<uint16_t>();
381
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsFirstPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
382
+ _thirdTestParam.testDetailsFirst = reader.Text();
383
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
384
+ const uint16_t _thirdTestParam_testDetailsSecondPeekedLen__ = reader.PeekNumber<uint16_t>();
385
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsSecondPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
386
+ _thirdTestParam.testDetailsSecond = reader.Text();
387
+ if (reader.Length() < (Core::RealSize<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
388
+ const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>();
389
+
390
+ implementation->TestEvent(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&>(_thirdTestParam), _fourthTestParam);
391
+
392
+ return (Core::ERROR_NONE);
393
+ } ();
394
+
395
+ if (hresult != Core::ERROR_NONE) {
396
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestLegacy::INotification::ID, 0, hresult);
397
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
398
+ }
399
+ }
400
+ , nullptr
401
+ }; // QualityAssuranceTestTextOptionsTestLegacyNotificationStubMethods
402
+
403
+ //
404
+ // QualityAssurance::ITestTextOptions::ITestKeep interface stub definitions
405
+ //
406
+ // Methods:
407
+ // (0) virtual Core::hresult TestKeeP(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
408
+ //
409
+
410
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestKeepStubMethods[] = {
411
+ // (0) virtual Core::hresult TestKeeP(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
412
+ //
413
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
414
+ Core::hresult hresult = Core::ERROR_NONE;
415
+
416
+ hresult = [&]() -> Core::hresult {
417
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
418
+
419
+ QualityAssurance::ITestTextOptions::ITestKeep* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestKeep*>(message->Parameters().Implementation());
420
+ ASSERT(implementation != nullptr);
421
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestTextOptions::ITestKeep::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
422
+
423
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
424
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
425
+ const uint32_t _firstTestParaM = reader.Number<uint32_t>();
426
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
427
+ const uint32_t _secondTestParaM = reader.Number<uint32_t>();
428
+ QualityAssurance::ITestTextOptions::ITestKeep::TestDetails _thirdTestParaM{};
429
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
430
+ const uint16_t _thirdTestParaM_testDetailsFirstPeekedLen__ = reader.PeekNumber<uint16_t>();
431
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParaM_testDetailsFirstPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
432
+ _thirdTestParaM.testDetailsFirst = reader.Text();
433
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
434
+ const uint16_t _thirdTestParaM_testDetailsSecondPeekedLen__ = reader.PeekNumber<uint16_t>();
435
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParaM_testDetailsSecondPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
436
+ _thirdTestParaM.testDetailsSecond = reader.Text();
437
+ if (reader.Length() < (Core::RealSize<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
438
+ const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions _fourthTestParaM = reader.Number<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>();
439
+
440
+ Core::hresult result = implementation->TestKeeP(_firstTestParaM, _secondTestParaM, static_cast<const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&>(_thirdTestParaM), _fourthTestParaM);
441
+
442
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
443
+ writer.Number<Core::hresult>(result);
444
+
445
+ return (Core::ERROR_NONE);
446
+ } ();
447
+
448
+ if (hresult != Core::ERROR_NONE) {
449
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
450
+ writer.Number<uint32_t>(hresult);
451
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestKeep::ID, 0, hresult);
452
+ }
453
+ }
454
+ , nullptr
455
+ }; // QualityAssuranceTestTextOptionsTestKeepStubMethods
456
+
457
+ //
458
+ // QualityAssurance::ITestTextOptions::ITestKeep::INotification interface stub definitions
459
+ //
460
+ // Methods:
461
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
462
+ //
463
+
464
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestKeepNotificationStubMethods[] = {
465
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
466
+ //
467
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
468
+ Core::hresult hresult = Core::ERROR_NONE;
469
+
470
+ hresult = [&]() -> Core::hresult {
471
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
472
+
473
+ QualityAssurance::ITestTextOptions::ITestKeep::INotification* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestKeep::INotification*>(message->Parameters().Implementation());
474
+ ASSERT(implementation != nullptr);
475
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestTextOptions::ITestKeep::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
476
+
477
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
478
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
479
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
480
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
481
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
482
+ QualityAssurance::ITestTextOptions::ITestKeep::TestDetails _thirdTestParam{};
483
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
484
+ const uint16_t _thirdTestParam_testDetailsFirstPeekedLen__ = reader.PeekNumber<uint16_t>();
485
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsFirstPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
486
+ _thirdTestParam.testDetailsFirst = reader.Text();
487
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
488
+ const uint16_t _thirdTestParam_testDetailsSecondPeekedLen__ = reader.PeekNumber<uint16_t>();
489
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsSecondPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
490
+ _thirdTestParam.testDetailsSecond = reader.Text();
491
+ if (reader.Length() < (Core::RealSize<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
492
+ const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>();
493
+
494
+ implementation->TestEvent(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&>(_thirdTestParam), _fourthTestParam);
495
+
496
+ return (Core::ERROR_NONE);
497
+ } ();
498
+
499
+ if (hresult != Core::ERROR_NONE) {
500
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestKeep::INotification::ID, 0, hresult);
501
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
502
+ }
503
+ }
504
+ , nullptr
505
+ }; // QualityAssuranceTestTextOptionsTestKeepNotificationStubMethods
506
+
507
+ //
508
+ // QualityAssurance::ITestTextOptions::ITestCustom interface stub definitions
509
+ //
510
+ // Methods:
511
+ // (0) virtual Core::hresult TestCustom(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
512
+ //
513
+
514
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestCustomStubMethods[] = {
515
+ // (0) virtual Core::hresult TestCustom(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
516
+ //
517
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
518
+ Core::hresult hresult = Core::ERROR_NONE;
519
+
520
+ hresult = [&]() -> Core::hresult {
521
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
522
+
523
+ QualityAssurance::ITestTextOptions::ITestCustom* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestCustom*>(message->Parameters().Implementation());
524
+ ASSERT(implementation != nullptr);
525
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestTextOptions::ITestCustom::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
526
+
527
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
528
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
529
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
530
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
531
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
532
+ QualityAssurance::ITestTextOptions::ITestCustom::TestDetails _thirdTestParam{};
533
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
534
+ const uint16_t _thirdTestParam_testDetailsFirstPeekedLen__ = reader.PeekNumber<uint16_t>();
535
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsFirstPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
536
+ _thirdTestParam.testDetailsFirst = reader.Text();
537
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
538
+ const uint16_t _thirdTestParam_testDetailsSecondPeekedLen__ = reader.PeekNumber<uint16_t>();
539
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsSecondPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
540
+ _thirdTestParam.testDetailsSecond = reader.Text();
541
+ if (reader.Length() < (Core::RealSize<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
542
+ const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>();
543
+
544
+ Core::hresult result = implementation->TestCustom(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&>(_thirdTestParam), _fourthTestParam);
545
+
546
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
547
+ writer.Number<Core::hresult>(result);
548
+
549
+ return (Core::ERROR_NONE);
550
+ } ();
551
+
552
+ if (hresult != Core::ERROR_NONE) {
553
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
554
+ writer.Number<uint32_t>(hresult);
555
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestCustom::ID, 0, hresult);
556
+ }
557
+ }
558
+ , nullptr
559
+ }; // QualityAssuranceTestTextOptionsTestCustomStubMethods
560
+
561
+ //
562
+ // QualityAssurance::ITestTextOptions::ITestCustom::INotification interface stub definitions
563
+ //
564
+ // Methods:
565
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
566
+ //
567
+
568
+ static ProxyStub::MethodHandler QualityAssuranceTestTextOptionsTestCustomNotificationStubMethods[] = {
569
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
570
+ //
571
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
572
+ Core::hresult hresult = Core::ERROR_NONE;
573
+
574
+ hresult = [&]() -> Core::hresult {
575
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
576
+
577
+ QualityAssurance::ITestTextOptions::ITestCustom::INotification* implementation = reinterpret_cast<QualityAssurance::ITestTextOptions::ITestCustom::INotification*>(message->Parameters().Implementation());
578
+ ASSERT(implementation != nullptr);
579
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestTextOptions::ITestCustom::INotification::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
580
+
581
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
582
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
583
+ const uint32_t _firstTestParam = reader.Number<uint32_t>();
584
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
585
+ const uint32_t _secondTestParam = reader.Number<uint32_t>();
586
+ QualityAssurance::ITestTextOptions::ITestCustom::TestDetails _thirdTestParam{};
587
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
588
+ const uint16_t _thirdTestParam_testDetailsFirstPeekedLen__ = reader.PeekNumber<uint16_t>();
589
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsFirstPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
590
+ _thirdTestParam.testDetailsFirst = reader.Text();
591
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
592
+ const uint16_t _thirdTestParam_testDetailsSecondPeekedLen__ = reader.PeekNumber<uint16_t>();
593
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _thirdTestParam_testDetailsSecondPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
594
+ _thirdTestParam.testDetailsSecond = reader.Text();
595
+ if (reader.Length() < (Core::RealSize<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
596
+ const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions _fourthTestParam = reader.Number<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>();
597
+
598
+ implementation->TestEvent(_firstTestParam, _secondTestParam, static_cast<const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&>(_thirdTestParam), _fourthTestParam);
599
+
600
+ return (Core::ERROR_NONE);
601
+ } ();
602
+
603
+ if (hresult != Core::ERROR_NONE) {
604
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestCustom::INotification::ID, 0, hresult);
605
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
606
+ }
607
+ }
608
+ , nullptr
609
+ }; // QualityAssuranceTestTextOptionsTestCustomNotificationStubMethods
610
+
611
+ //
612
+ // QualityAssurance::ITestUtils interface stub definitions
613
+ //
614
+ // Methods:
615
+ // (0) virtual Core::hresult Crash() const = 0
616
+ //
617
+
618
+ static ProxyStub::MethodHandler QualityAssuranceTestUtilsStubMethods[] = {
619
+ // (0) virtual Core::hresult Crash() const = 0
620
+ //
621
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
622
+ Core::hresult hresult = Core::ERROR_NONE;
623
+
624
+ hresult = [&]() -> Core::hresult {
625
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
626
+
627
+ const QualityAssurance::ITestUtils* implementation = reinterpret_cast<const QualityAssurance::ITestUtils*>(message->Parameters().Implementation());
628
+ ASSERT(implementation != nullptr);
629
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtils::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
630
+
631
+ Core::hresult result = implementation->Crash();
632
+
633
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
634
+ writer.Number<Core::hresult>(result);
635
+
636
+ return (Core::ERROR_NONE);
637
+ } ();
638
+
639
+ if (hresult != Core::ERROR_NONE) {
640
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
641
+ writer.Number<uint32_t>(hresult);
642
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtils::ID, 0, hresult);
643
+ }
644
+ }
645
+ , nullptr
646
+ }; // QualityAssuranceTestUtilsStubMethods
647
+
648
+ // -----------------------------------------------------------------
649
+ // PROXIES
650
+ // -----------------------------------------------------------------
651
+
652
+ //
653
+ // QualityAssurance::IMemory interface proxy definitions
654
+ //
655
+ // Methods:
656
+ // (0) virtual Core::hresult AllocateMemory(const uint32_t) = 0
657
+ // (1) virtual Core::hresult FreeAllocatedMemory() = 0
658
+ //
659
+
660
+ class QualityAssuranceMemoryProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::IMemory> {
661
+ public:
662
+ QualityAssuranceMemoryProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
663
+ : BaseClass(channel, implementation, otherSideInformed)
664
+ {
665
+ }
666
+
667
+ Core::hresult AllocateMemory(const uint32_t _size) override
668
+ {
669
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
670
+
671
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
672
+ writer.Number<uint32_t>(_size);
673
+
674
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
675
+ if (hresult == Core::ERROR_NONE) {
676
+ hresult = [&]() -> Core::hresult {
677
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
678
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
679
+ hresult = reader.Number<Core::hresult>();
680
+
681
+ return (hresult);
682
+ } ();
683
+ } else {
684
+ ASSERT((hresult & COM_ERROR) != 0);
685
+ }
686
+
687
+ if ((hresult & COM_ERROR) != 0) {
688
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::IMemory::ID, 0, hresult);
689
+ }
690
+
691
+ return (hresult);
692
+ }
693
+
694
+ Core::hresult FreeAllocatedMemory() override
695
+ {
696
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
697
+
698
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
699
+ if (hresult == Core::ERROR_NONE) {
700
+ hresult = [&]() -> Core::hresult {
701
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
702
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
703
+ hresult = reader.Number<Core::hresult>();
704
+
705
+ return (hresult);
706
+ } ();
707
+ } else {
708
+ ASSERT((hresult & COM_ERROR) != 0);
709
+ }
710
+
711
+ if ((hresult & COM_ERROR) != 0) {
712
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::IMemory::ID, 1, hresult);
713
+ }
714
+
715
+ return (hresult);
716
+ }
717
+
718
+ }; // class QualityAssuranceMemoryProxy
719
+
720
+ //
721
+ // QualityAssurance::IComRpc interface proxy definitions
722
+ //
723
+ // Methods:
724
+ // (0) virtual Core::hresult TestBigString(const uint32_t) = 0
725
+ //
726
+
727
+ class QualityAssuranceComRpcProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::IComRpc> {
728
+ public:
729
+ QualityAssuranceComRpcProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
730
+ : BaseClass(channel, implementation, otherSideInformed)
731
+ {
732
+ }
733
+
734
+ Core::hresult TestBigString(const uint32_t _length) override
735
+ {
736
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
737
+
738
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
739
+ writer.Number<uint32_t>(_length);
740
+
741
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
742
+ if (hresult == Core::ERROR_NONE) {
743
+ hresult = [&]() -> Core::hresult {
744
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
745
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
746
+ hresult = reader.Number<Core::hresult>();
747
+
748
+ return (hresult);
749
+ } ();
750
+ } else {
751
+ ASSERT((hresult & COM_ERROR) != 0);
752
+ }
753
+
754
+ if ((hresult & COM_ERROR) != 0) {
755
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::IComRpc::ID, 0, hresult);
756
+ }
757
+
758
+ return (hresult);
759
+ }
760
+
761
+ }; // class QualityAssuranceComRpcProxy
762
+
763
+ //
764
+ // QualityAssurance::IComRpc::IComRpcInternal interface proxy definitions
765
+ //
766
+ // Methods:
767
+ // (0) virtual Core::hresult BigStringTest(const string&) = 0
768
+ //
769
+
770
+ class QualityAssuranceComRpcComRpcInternalProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::IComRpc::IComRpcInternal> {
771
+ public:
772
+ QualityAssuranceComRpcComRpcInternalProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
773
+ : BaseClass(channel, implementation, otherSideInformed)
774
+ {
775
+ }
776
+
777
+ Core::hresult BigStringTest(const string& _testString) override
778
+ {
779
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
780
+
781
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
782
+ writer.Text<Core::UInt24>(_testString);
783
+
784
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
785
+ if (hresult == Core::ERROR_NONE) {
786
+ hresult = [&]() -> Core::hresult {
787
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
788
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
789
+ hresult = reader.Number<Core::hresult>();
790
+
791
+ return (hresult);
792
+ } ();
793
+ } else {
794
+ ASSERT((hresult & COM_ERROR) != 0);
795
+ }
796
+
797
+ if ((hresult & COM_ERROR) != 0) {
798
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::IComRpc::IComRpcInternal::ID, 0, hresult);
799
+ }
800
+
801
+ return (hresult);
802
+ }
803
+
804
+ }; // class QualityAssuranceComRpcComRpcInternalProxy
805
+
806
+ //
807
+ // QualityAssurance::ITestTextOptions interface proxy definitions
808
+ //
809
+ // Methods:
810
+ // (0) virtual Core::hresult TestStandard(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
811
+ //
812
+
813
+ class QualityAssuranceTestTextOptionsProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions> {
814
+ public:
815
+ QualityAssuranceTestTextOptionsProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
816
+ : BaseClass(channel, implementation, otherSideInformed)
817
+ {
818
+ }
819
+
820
+ Core::hresult TestStandard(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::EnumTextOptions _fourthTestParam) override
821
+ {
822
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
823
+
824
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
825
+ writer.Number<uint32_t>(_firstTestParam);
826
+ writer.Number<uint32_t>(_secondTestParam);
827
+ writer.Text(_thirdTestParam.testDetailsFirst);
828
+ writer.Text(_thirdTestParam.testDetailsSecond);
829
+ writer.Number<QualityAssurance::ITestTextOptions::EnumTextOptions>(_fourthTestParam);
830
+
831
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
832
+ if (hresult == Core::ERROR_NONE) {
833
+ hresult = [&]() -> Core::hresult {
834
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
835
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
836
+ hresult = reader.Number<Core::hresult>();
837
+
838
+ return (hresult);
839
+ } ();
840
+ } else {
841
+ ASSERT((hresult & COM_ERROR) != 0);
842
+ }
843
+
844
+ if ((hresult & COM_ERROR) != 0) {
845
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ID, 0, hresult);
846
+ }
847
+
848
+ return (hresult);
849
+ }
850
+
851
+ }; // class QualityAssuranceTestTextOptionsProxy
852
+
853
+ //
854
+ // QualityAssurance::ITestTextOptions::INotification interface proxy definitions
855
+ //
856
+ // Methods:
857
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::TestDetails&, const QualityAssurance::ITestTextOptions::EnumTextOptions) = 0
858
+ //
859
+
860
+ class QualityAssuranceTestTextOptionsNotificationProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::INotification> {
861
+ public:
862
+ QualityAssuranceTestTextOptionsNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
863
+ : BaseClass(channel, implementation, otherSideInformed)
864
+ {
865
+ }
866
+
867
+ void TestEvent(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::EnumTextOptions _fourthTestParam) override
868
+ {
869
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
870
+
871
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
872
+ writer.Number<uint32_t>(_firstTestParam);
873
+ writer.Number<uint32_t>(_secondTestParam);
874
+ writer.Text(_thirdTestParam.testDetailsFirst);
875
+ writer.Text(_thirdTestParam.testDetailsSecond);
876
+ writer.Number<QualityAssurance::ITestTextOptions::EnumTextOptions>(_fourthTestParam);
877
+
878
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
879
+ if (hresult == Core::ERROR_NONE) {
880
+ hresult = [&]() -> Core::hresult {
881
+
882
+ return (Core::ERROR_NONE);
883
+ } ();
884
+ } else {
885
+ ASSERT((hresult & COM_ERROR) != 0);
886
+ }
887
+
888
+ if ((hresult & COM_ERROR) != 0) {
889
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::INotification::ID, 0, hresult);
890
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
891
+ }
892
+ }
893
+
894
+ }; // class QualityAssuranceTestTextOptionsNotificationProxy
895
+
896
+ //
897
+ // QualityAssurance::ITestTextOptions::ITestLegacy interface proxy definitions
898
+ //
899
+ // Methods:
900
+ // (0) virtual Core::hresult TestLegacy(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
901
+ //
902
+
903
+ class QualityAssuranceTestTextOptionsTestLegacyProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestLegacy> {
904
+ public:
905
+ QualityAssuranceTestTextOptionsTestLegacyProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
906
+ : BaseClass(channel, implementation, otherSideInformed)
907
+ {
908
+ }
909
+
910
+ Core::hresult TestLegacy(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions _fourthTestParam) override
911
+ {
912
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
913
+
914
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
915
+ writer.Number<uint32_t>(_firstTestParam);
916
+ writer.Number<uint32_t>(_secondTestParam);
917
+ writer.Text(_thirdTestParam.testDetailsFirst);
918
+ writer.Text(_thirdTestParam.testDetailsSecond);
919
+ writer.Number<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>(_fourthTestParam);
920
+
921
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
922
+ if (hresult == Core::ERROR_NONE) {
923
+ hresult = [&]() -> Core::hresult {
924
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
925
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
926
+ hresult = reader.Number<Core::hresult>();
927
+
928
+ return (hresult);
929
+ } ();
930
+ } else {
931
+ ASSERT((hresult & COM_ERROR) != 0);
932
+ }
933
+
934
+ if ((hresult & COM_ERROR) != 0) {
935
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestLegacy::ID, 0, hresult);
936
+ }
937
+
938
+ return (hresult);
939
+ }
940
+
941
+ }; // class QualityAssuranceTestTextOptionsTestLegacyProxy
942
+
943
+ //
944
+ // QualityAssurance::ITestTextOptions::ITestLegacy::INotification interface proxy definitions
945
+ //
946
+ // Methods:
947
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails&, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions) = 0
948
+ //
949
+
950
+ class QualityAssuranceTestTextOptionsTestLegacyNotificationProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestLegacy::INotification> {
951
+ public:
952
+ QualityAssuranceTestTextOptionsTestLegacyNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
953
+ : BaseClass(channel, implementation, otherSideInformed)
954
+ {
955
+ }
956
+
957
+ void TestEvent(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestLegacy::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions _fourthTestParam) override
958
+ {
959
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
960
+
961
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
962
+ writer.Number<uint32_t>(_firstTestParam);
963
+ writer.Number<uint32_t>(_secondTestParam);
964
+ writer.Text(_thirdTestParam.testDetailsFirst);
965
+ writer.Text(_thirdTestParam.testDetailsSecond);
966
+ writer.Number<QualityAssurance::ITestTextOptions::ITestLegacy::EnumTextOptions>(_fourthTestParam);
967
+
968
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
969
+ if (hresult == Core::ERROR_NONE) {
970
+ hresult = [&]() -> Core::hresult {
971
+
972
+ return (Core::ERROR_NONE);
973
+ } ();
974
+ } else {
975
+ ASSERT((hresult & COM_ERROR) != 0);
976
+ }
977
+
978
+ if ((hresult & COM_ERROR) != 0) {
979
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestLegacy::INotification::ID, 0, hresult);
980
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
981
+ }
982
+ }
983
+
984
+ }; // class QualityAssuranceTestTextOptionsTestLegacyNotificationProxy
985
+
986
+ //
987
+ // QualityAssurance::ITestTextOptions::ITestKeep interface proxy definitions
988
+ //
989
+ // Methods:
990
+ // (0) virtual Core::hresult TestKeeP(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
991
+ //
992
+
993
+ class QualityAssuranceTestTextOptionsTestKeepProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestKeep> {
994
+ public:
995
+ QualityAssuranceTestTextOptionsTestKeepProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
996
+ : BaseClass(channel, implementation, otherSideInformed)
997
+ {
998
+ }
999
+
1000
+ Core::hresult TestKeeP(const uint32_t _firstTestParaM, const uint32_t _secondTestParaM, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails& _thirdTestParaM, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions _fourthTestParaM) override
1001
+ {
1002
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1003
+
1004
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1005
+ writer.Number<uint32_t>(_firstTestParaM);
1006
+ writer.Number<uint32_t>(_secondTestParaM);
1007
+ writer.Text(_thirdTestParaM.testDetailsFirst);
1008
+ writer.Text(_thirdTestParaM.testDetailsSecond);
1009
+ writer.Number<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>(_fourthTestParaM);
1010
+
1011
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1012
+ if (hresult == Core::ERROR_NONE) {
1013
+ hresult = [&]() -> Core::hresult {
1014
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1015
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1016
+ hresult = reader.Number<Core::hresult>();
1017
+
1018
+ return (hresult);
1019
+ } ();
1020
+ } else {
1021
+ ASSERT((hresult & COM_ERROR) != 0);
1022
+ }
1023
+
1024
+ if ((hresult & COM_ERROR) != 0) {
1025
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestKeep::ID, 0, hresult);
1026
+ }
1027
+
1028
+ return (hresult);
1029
+ }
1030
+
1031
+ }; // class QualityAssuranceTestTextOptionsTestKeepProxy
1032
+
1033
+ //
1034
+ // QualityAssurance::ITestTextOptions::ITestKeep::INotification interface proxy definitions
1035
+ //
1036
+ // Methods:
1037
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails&, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions) = 0
1038
+ //
1039
+
1040
+ class QualityAssuranceTestTextOptionsTestKeepNotificationProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestKeep::INotification> {
1041
+ public:
1042
+ QualityAssuranceTestTextOptionsTestKeepNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1043
+ : BaseClass(channel, implementation, otherSideInformed)
1044
+ {
1045
+ }
1046
+
1047
+ void TestEvent(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestKeep::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions _fourthTestParam) override
1048
+ {
1049
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1050
+
1051
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1052
+ writer.Number<uint32_t>(_firstTestParam);
1053
+ writer.Number<uint32_t>(_secondTestParam);
1054
+ writer.Text(_thirdTestParam.testDetailsFirst);
1055
+ writer.Text(_thirdTestParam.testDetailsSecond);
1056
+ writer.Number<QualityAssurance::ITestTextOptions::ITestKeep::EnumTextOptions>(_fourthTestParam);
1057
+
1058
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1059
+ if (hresult == Core::ERROR_NONE) {
1060
+ hresult = [&]() -> Core::hresult {
1061
+
1062
+ return (Core::ERROR_NONE);
1063
+ } ();
1064
+ } else {
1065
+ ASSERT((hresult & COM_ERROR) != 0);
1066
+ }
1067
+
1068
+ if ((hresult & COM_ERROR) != 0) {
1069
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestKeep::INotification::ID, 0, hresult);
1070
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1071
+ }
1072
+ }
1073
+
1074
+ }; // class QualityAssuranceTestTextOptionsTestKeepNotificationProxy
1075
+
1076
+ //
1077
+ // QualityAssurance::ITestTextOptions::ITestCustom interface proxy definitions
1078
+ //
1079
+ // Methods:
1080
+ // (0) virtual Core::hresult TestCustom(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
1081
+ //
1082
+
1083
+ class QualityAssuranceTestTextOptionsTestCustomProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestCustom> {
1084
+ public:
1085
+ QualityAssuranceTestTextOptionsTestCustomProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1086
+ : BaseClass(channel, implementation, otherSideInformed)
1087
+ {
1088
+ }
1089
+
1090
+ Core::hresult TestCustom(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions _fourthTestParam) override
1091
+ {
1092
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1093
+
1094
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1095
+ writer.Number<uint32_t>(_firstTestParam);
1096
+ writer.Number<uint32_t>(_secondTestParam);
1097
+ writer.Text(_thirdTestParam.testDetailsFirst);
1098
+ writer.Text(_thirdTestParam.testDetailsSecond);
1099
+ writer.Number<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>(_fourthTestParam);
1100
+
1101
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1102
+ if (hresult == Core::ERROR_NONE) {
1103
+ hresult = [&]() -> Core::hresult {
1104
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1105
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1106
+ hresult = reader.Number<Core::hresult>();
1107
+
1108
+ return (hresult);
1109
+ } ();
1110
+ } else {
1111
+ ASSERT((hresult & COM_ERROR) != 0);
1112
+ }
1113
+
1114
+ if ((hresult & COM_ERROR) != 0) {
1115
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestCustom::ID, 0, hresult);
1116
+ }
1117
+
1118
+ return (hresult);
1119
+ }
1120
+
1121
+ }; // class QualityAssuranceTestTextOptionsTestCustomProxy
1122
+
1123
+ //
1124
+ // QualityAssurance::ITestTextOptions::ITestCustom::INotification interface proxy definitions
1125
+ //
1126
+ // Methods:
1127
+ // (0) virtual void TestEvent(const uint32_t, const uint32_t, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails&, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions) = 0
1128
+ //
1129
+
1130
+ class QualityAssuranceTestTextOptionsTestCustomNotificationProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestTextOptions::ITestCustom::INotification> {
1131
+ public:
1132
+ QualityAssuranceTestTextOptionsTestCustomNotificationProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1133
+ : BaseClass(channel, implementation, otherSideInformed)
1134
+ {
1135
+ }
1136
+
1137
+ void TestEvent(const uint32_t _firstTestParam, const uint32_t _secondTestParam, const QualityAssurance::ITestTextOptions::ITestCustom::TestDetails& _thirdTestParam, const QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions _fourthTestParam) override
1138
+ {
1139
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1140
+
1141
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1142
+ writer.Number<uint32_t>(_firstTestParam);
1143
+ writer.Number<uint32_t>(_secondTestParam);
1144
+ writer.Text(_thirdTestParam.testDetailsFirst);
1145
+ writer.Text(_thirdTestParam.testDetailsSecond);
1146
+ writer.Number<QualityAssurance::ITestTextOptions::ITestCustom::EnumTextOptions>(_fourthTestParam);
1147
+
1148
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1149
+ if (hresult == Core::ERROR_NONE) {
1150
+ hresult = [&]() -> Core::hresult {
1151
+
1152
+ return (Core::ERROR_NONE);
1153
+ } ();
1154
+ } else {
1155
+ ASSERT((hresult & COM_ERROR) != 0);
1156
+ }
1157
+
1158
+ if ((hresult & COM_ERROR) != 0) {
1159
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestTextOptions::ITestCustom::INotification::ID, 0, hresult);
1160
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1161
+ }
1162
+ }
1163
+
1164
+ }; // class QualityAssuranceTestTextOptionsTestCustomNotificationProxy
1165
+
1166
+ //
1167
+ // QualityAssurance::ITestUtils interface proxy definitions
1168
+ //
1169
+ // Methods:
1170
+ // (0) virtual Core::hresult Crash() const = 0
1171
+ //
1172
+
1173
+ class QualityAssuranceTestUtilsProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestUtils> {
1174
+ public:
1175
+ QualityAssuranceTestUtilsProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1176
+ : BaseClass(channel, implementation, otherSideInformed)
1177
+ {
1178
+ }
1179
+
1180
+ Core::hresult Crash() const override
1181
+ {
1182
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1183
+
1184
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1185
+ if (hresult == Core::ERROR_NONE) {
1186
+ hresult = [&]() -> Core::hresult {
1187
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1188
+ if (reader.Length() < (Core::RealSize<Core::hresult>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1189
+ hresult = reader.Number<Core::hresult>();
1190
+
1191
+ return (hresult);
1192
+ } ();
1193
+ } else {
1194
+ ASSERT((hresult & COM_ERROR) != 0);
1195
+ }
1196
+
1197
+ if ((hresult & COM_ERROR) != 0) {
1198
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtils::ID, 0, hresult);
1199
+ }
1200
+
1201
+ return (hresult);
1202
+ }
1203
+
1204
+ }; // class QualityAssuranceTestUtilsProxy
1205
+
1206
+ POP_WARNING()
1207
+ POP_WARNING()
1208
+
1209
+ // -----------------------------------------------------------------
1210
+ // REGISTRATION
1211
+ // -----------------------------------------------------------------
1212
+ namespace {
1213
+
1214
+ typedef ProxyStub::UnknownStubType<QualityAssurance::IMemory, QualityAssuranceMemoryStubMethods> QualityAssuranceMemoryStub;
1215
+ typedef ProxyStub::UnknownStubType<QualityAssurance::IComRpc, QualityAssuranceComRpcStubMethods> QualityAssuranceComRpcStub;
1216
+ typedef ProxyStub::UnknownStubType<QualityAssurance::IComRpc::IComRpcInternal, QualityAssuranceComRpcComRpcInternalStubMethods> QualityAssuranceComRpcComRpcInternalStub;
1217
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions, QualityAssuranceTestTextOptionsStubMethods> QualityAssuranceTestTextOptionsStub;
1218
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::INotification, QualityAssuranceTestTextOptionsNotificationStubMethods> QualityAssuranceTestTextOptionsNotificationStub;
1219
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestLegacy, QualityAssuranceTestTextOptionsTestLegacyStubMethods> QualityAssuranceTestTextOptionsTestLegacyStub;
1220
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestLegacy::INotification, QualityAssuranceTestTextOptionsTestLegacyNotificationStubMethods> QualityAssuranceTestTextOptionsTestLegacyNotificationStub;
1221
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestKeep, QualityAssuranceTestTextOptionsTestKeepStubMethods> QualityAssuranceTestTextOptionsTestKeepStub;
1222
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestKeep::INotification, QualityAssuranceTestTextOptionsTestKeepNotificationStubMethods> QualityAssuranceTestTextOptionsTestKeepNotificationStub;
1223
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestCustom, QualityAssuranceTestTextOptionsTestCustomStubMethods> QualityAssuranceTestTextOptionsTestCustomStub;
1224
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestTextOptions::ITestCustom::INotification, QualityAssuranceTestTextOptionsTestCustomNotificationStubMethods> QualityAssuranceTestTextOptionsTestCustomNotificationStub;
1225
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestUtils, QualityAssuranceTestUtilsStubMethods> QualityAssuranceTestUtilsStub;
1226
+
1227
+ static class Instantiation {
1228
+ public:
1229
+ Instantiation()
1230
+ {
1231
+ const RPC::SecureProxyStubType security = static_cast<RPC::SecureProxyStubType>(static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_SECURE) | static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_COHERENT));
1232
+
1233
+ RPC::Administrator::Instance().Announce<QualityAssurance::IMemory, QualityAssuranceMemoryProxy, QualityAssuranceMemoryStub>(security);
1234
+ RPC::Administrator::Instance().Announce<QualityAssurance::IComRpc, QualityAssuranceComRpcProxy, QualityAssuranceComRpcStub>(security);
1235
+ RPC::Administrator::Instance().Announce<QualityAssurance::IComRpc::IComRpcInternal, QualityAssuranceComRpcComRpcInternalProxy, QualityAssuranceComRpcComRpcInternalStub>(security);
1236
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions, QualityAssuranceTestTextOptionsProxy, QualityAssuranceTestTextOptionsStub>(security);
1237
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::INotification, QualityAssuranceTestTextOptionsNotificationProxy, QualityAssuranceTestTextOptionsNotificationStub>(security);
1238
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestLegacy, QualityAssuranceTestTextOptionsTestLegacyProxy, QualityAssuranceTestTextOptionsTestLegacyStub>(security);
1239
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestLegacy::INotification, QualityAssuranceTestTextOptionsTestLegacyNotificationProxy, QualityAssuranceTestTextOptionsTestLegacyNotificationStub>(security);
1240
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestKeep, QualityAssuranceTestTextOptionsTestKeepProxy, QualityAssuranceTestTextOptionsTestKeepStub>(security);
1241
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestKeep::INotification, QualityAssuranceTestTextOptionsTestKeepNotificationProxy, QualityAssuranceTestTextOptionsTestKeepNotificationStub>(security);
1242
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestCustom, QualityAssuranceTestTextOptionsTestCustomProxy, QualityAssuranceTestTextOptionsTestCustomStub>(security);
1243
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestTextOptions::ITestCustom::INotification, QualityAssuranceTestTextOptionsTestCustomNotificationProxy, QualityAssuranceTestTextOptionsTestCustomNotificationStub>(security);
1244
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestUtils, QualityAssuranceTestUtilsProxy, QualityAssuranceTestUtilsStub>(security);
1245
+ }
1246
+ ~Instantiation()
1247
+ {
1248
+ RPC::Administrator::Instance().Recall<QualityAssurance::IMemory>();
1249
+ RPC::Administrator::Instance().Recall<QualityAssurance::IComRpc>();
1250
+ RPC::Administrator::Instance().Recall<QualityAssurance::IComRpc::IComRpcInternal>();
1251
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions>();
1252
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::INotification>();
1253
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestLegacy>();
1254
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestLegacy::INotification>();
1255
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestKeep>();
1256
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestKeep::INotification>();
1257
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestCustom>();
1258
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestTextOptions::ITestCustom::INotification>();
1259
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestUtils>();
1260
+ }
1261
+ } ProxyStubRegistration;
1262
+
1263
+ } // namespace
1264
+
1265
+ } // namespace ProxyStubs
1266
+
1267
+ }
generated/generated/Release/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestController.cpp ADDED
@@ -0,0 +1,1448 @@
1
+ //
2
+ // generated automatically from "ITestController.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class QualityAssurance::ITestController
6
+ // - class QualityAssurance::ITestController::ITest
7
+ // - class QualityAssurance::ITestController::ITest::IIterator
8
+ // - class QualityAssurance::ITestController::ICategory
9
+ // - class QualityAssurance::ITestController::ICategory::IIterator
10
+ //
11
+ // secure code enabled:
12
+ // - instance verification enabled
13
+ // - range verification enabled
14
+ // - frame coherency verification enabled
15
+ //
16
+
17
+ #include "Module.h"
18
+ #include "ITestController.h"
19
+
20
+ #include <com/com.h>
21
+
22
+ namespace Thunder {
23
+
24
+ namespace ProxyStubs {
25
+
26
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
27
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
28
+
29
+ // -----------------------------------------------------------------
30
+ // STUBS
31
+ // -----------------------------------------------------------------
32
+
33
+ //
34
+ // QualityAssurance::ITestController interface stub definitions
35
+ //
36
+ // Methods:
37
+ // (0) virtual void Setup() = 0
38
+ // (1) virtual void TearDown() = 0
39
+ // (2) virtual QualityAssurance::ITestController::ICategory::IIterator* Categories() const = 0
40
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category(const string&) const = 0
41
+ //
42
+
43
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerStubMethods[] = {
44
+ // (0) virtual void Setup() = 0
45
+ //
46
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
47
+ Core::hresult hresult = Core::ERROR_NONE;
48
+
49
+ hresult = [&]() -> Core::hresult {
50
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
51
+
52
+ QualityAssurance::ITestController* implementation = reinterpret_cast<QualityAssurance::ITestController*>(message->Parameters().Implementation());
53
+ ASSERT(implementation != nullptr);
54
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
55
+
56
+ implementation->Setup();
57
+
58
+ return (Core::ERROR_NONE);
59
+ } ();
60
+
61
+ if (hresult != Core::ERROR_NONE) {
62
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ID, 0, hresult);
63
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
64
+ }
65
+ },
66
+
67
+ // (1) virtual void TearDown() = 0
68
+ //
69
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
70
+ Core::hresult hresult = Core::ERROR_NONE;
71
+
72
+ hresult = [&]() -> Core::hresult {
73
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
74
+
75
+ QualityAssurance::ITestController* implementation = reinterpret_cast<QualityAssurance::ITestController*>(message->Parameters().Implementation());
76
+ ASSERT(implementation != nullptr);
77
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
78
+
79
+ implementation->TearDown();
80
+
81
+ return (Core::ERROR_NONE);
82
+ } ();
83
+
84
+ if (hresult != Core::ERROR_NONE) {
85
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ID, 1, hresult);
86
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
87
+ }
88
+ },
89
+
90
+ // (2) virtual QualityAssurance::ITestController::ICategory::IIterator* Categories() const = 0
91
+ //
92
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
93
+ Core::hresult hresult = Core::ERROR_NONE;
94
+
95
+ hresult = [&]() -> Core::hresult {
96
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
97
+
98
+ const QualityAssurance::ITestController* implementation = reinterpret_cast<const QualityAssurance::ITestController*>(message->Parameters().Implementation());
99
+ ASSERT(implementation != nullptr);
100
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
101
+
102
+ QualityAssurance::ITestController::ICategory::IIterator* result = implementation->Categories();
103
+
104
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
105
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
106
+
107
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
108
+
109
+ return (Core::ERROR_NONE);
110
+ } ();
111
+
112
+ if (hresult != Core::ERROR_NONE) {
113
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ID, 2, hresult);
114
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
115
+ }
116
+ },
117
+
118
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category(const string&) const = 0
119
+ //
120
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
121
+ Core::hresult hresult = Core::ERROR_NONE;
122
+
123
+ hresult = [&]() -> Core::hresult {
124
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
125
+
126
+ const QualityAssurance::ITestController* implementation = reinterpret_cast<const QualityAssurance::ITestController*>(message->Parameters().Implementation());
127
+ ASSERT(implementation != nullptr);
128
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
129
+
130
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
131
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
132
+ const uint16_t _categoryPeekedLen__ = reader.PeekNumber<uint16_t>();
133
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _categoryPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
134
+ const string _category = reader.Text();
135
+
136
+ QualityAssurance::ITestController::ICategory* result = implementation->Category(static_cast<const string&>(_category));
137
+
138
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
139
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
140
+
141
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
142
+
143
+ return (Core::ERROR_NONE);
144
+ } ();
145
+
146
+ if (hresult != Core::ERROR_NONE) {
147
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ID, 3, hresult);
148
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
149
+ }
150
+ }
151
+ , nullptr
152
+ }; // QualityAssuranceTestControllerStubMethods
153
+
154
+ //
155
+ // QualityAssurance::ITestController::ITest interface stub definitions
156
+ //
157
+ // Methods:
158
+ // (0) virtual string Execute(const string&) = 0
159
+ // (1) virtual string Description() const = 0
160
+ // (2) virtual string Name() const = 0
161
+ //
162
+
163
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerTestStubMethods[] = {
164
+ // (0) virtual string Execute(const string&) = 0
165
+ //
166
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
167
+ Core::hresult hresult = Core::ERROR_NONE;
168
+
169
+ hresult = [&]() -> Core::hresult {
170
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
171
+
172
+ QualityAssurance::ITestController::ITest* implementation = reinterpret_cast<QualityAssurance::ITestController::ITest*>(message->Parameters().Implementation());
173
+ ASSERT(implementation != nullptr);
174
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ITest::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
175
+
176
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
177
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
178
+ const uint16_t _paramsPeekedLen__ = reader.PeekNumber<uint16_t>();
179
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _paramsPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
180
+ const string _params = reader.Text();
181
+
182
+ string result = implementation->Execute(static_cast<const string&>(_params));
183
+
184
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
185
+ writer.Text(result);
186
+
187
+ return (Core::ERROR_NONE);
188
+ } ();
189
+
190
+ if (hresult != Core::ERROR_NONE) {
191
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::ID, 0, hresult);
192
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
193
+ }
194
+ },
195
+
196
+ // (1) virtual string Description() const = 0
197
+ //
198
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
199
+ Core::hresult hresult = Core::ERROR_NONE;
200
+
201
+ hresult = [&]() -> Core::hresult {
202
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
203
+
204
+ const QualityAssurance::ITestController::ITest* implementation = reinterpret_cast<const QualityAssurance::ITestController::ITest*>(message->Parameters().Implementation());
205
+ ASSERT(implementation != nullptr);
206
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ITest::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
207
+
208
+ string result = implementation->Description();
209
+
210
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
211
+ writer.Text(result);
212
+
213
+ return (Core::ERROR_NONE);
214
+ } ();
215
+
216
+ if (hresult != Core::ERROR_NONE) {
217
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::ID, 1, hresult);
218
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
219
+ }
220
+ },
221
+
222
+ // (2) virtual string Name() const = 0
223
+ //
224
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
225
+ Core::hresult hresult = Core::ERROR_NONE;
226
+
227
+ hresult = [&]() -> Core::hresult {
228
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
229
+
230
+ const QualityAssurance::ITestController::ITest* implementation = reinterpret_cast<const QualityAssurance::ITestController::ITest*>(message->Parameters().Implementation());
231
+ ASSERT(implementation != nullptr);
232
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ITest::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
233
+
234
+ string result = implementation->Name();
235
+
236
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
237
+ writer.Text(result);
238
+
239
+ return (Core::ERROR_NONE);
240
+ } ();
241
+
242
+ if (hresult != Core::ERROR_NONE) {
243
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::ID, 2, hresult);
244
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
245
+ }
246
+ }
247
+ , nullptr
248
+ }; // QualityAssuranceTestControllerTestStubMethods
249
+
250
+ //
251
+ // QualityAssurance::ITestController::ITest::IIterator interface stub definitions
252
+ //
253
+ // Methods:
254
+ // (0) virtual void Reset() = 0
255
+ // (1) virtual bool IsValid() const = 0
256
+ // (2) virtual bool Next() = 0
257
+ // (3) virtual QualityAssurance::ITestController::ITest* Test() const = 0
258
+ //
259
+
260
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerTestIteratorStubMethods[] = {
261
+ // (0) virtual void Reset() = 0
262
+ //
263
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
264
+ Core::hresult hresult = Core::ERROR_NONE;
265
+
266
+ hresult = [&]() -> Core::hresult {
267
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
268
+
269
+ QualityAssurance::ITestController::ITest::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestController::ITest::IIterator*>(message->Parameters().Implementation());
270
+ ASSERT(implementation != nullptr);
271
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ITest::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
272
+
273
+ implementation->Reset();
274
+
275
+ return (Core::ERROR_NONE);
276
+ } ();
277
+
278
+ if (hresult != Core::ERROR_NONE) {
279
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::IIterator::ID, 0, hresult);
280
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
281
+ }
282
+ },
283
+
284
+ // (1) virtual bool IsValid() const = 0
285
+ //
286
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
287
+ Core::hresult hresult = Core::ERROR_NONE;
288
+
289
+ hresult = [&]() -> Core::hresult {
290
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
291
+
292
+ const QualityAssurance::ITestController::ITest::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestController::ITest::IIterator*>(message->Parameters().Implementation());
293
+ ASSERT(implementation != nullptr);
294
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ITest::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
295
+
296
+ bool result = implementation->IsValid();
297
+
298
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
299
+ writer.Boolean(result);
300
+
301
+ return (Core::ERROR_NONE);
302
+ } ();
303
+
304
+ if (hresult != Core::ERROR_NONE) {
305
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::IIterator::ID, 1, hresult);
306
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
307
+ }
308
+ },
309
+
310
+ // (2) virtual bool Next() = 0
311
+ //
312
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
313
+ Core::hresult hresult = Core::ERROR_NONE;
314
+
315
+ hresult = [&]() -> Core::hresult {
316
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
317
+
318
+ QualityAssurance::ITestController::ITest::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestController::ITest::IIterator*>(message->Parameters().Implementation());
319
+ ASSERT(implementation != nullptr);
320
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ITest::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
321
+
322
+ bool result = implementation->Next();
323
+
324
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
325
+ writer.Boolean(result);
326
+
327
+ return (Core::ERROR_NONE);
328
+ } ();
329
+
330
+ if (hresult != Core::ERROR_NONE) {
331
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::IIterator::ID, 2, hresult);
332
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
333
+ }
334
+ },
335
+
336
+ // (3) virtual QualityAssurance::ITestController::ITest* Test() const = 0
337
+ //
338
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
339
+ Core::hresult hresult = Core::ERROR_NONE;
340
+
341
+ hresult = [&]() -> Core::hresult {
342
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
343
+
344
+ const QualityAssurance::ITestController::ITest::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestController::ITest::IIterator*>(message->Parameters().Implementation());
345
+ ASSERT(implementation != nullptr);
346
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ITest::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
347
+
348
+ QualityAssurance::ITestController::ITest* result = implementation->Test();
349
+
350
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
351
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
352
+
353
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
354
+
355
+ return (Core::ERROR_NONE);
356
+ } ();
357
+
358
+ if (hresult != Core::ERROR_NONE) {
359
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::IIterator::ID, 3, hresult);
360
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
361
+ }
362
+ }
363
+ , nullptr
364
+ }; // QualityAssuranceTestControllerTestIteratorStubMethods
365
+
366
+ //
367
+ // QualityAssurance::ITestController::ICategory interface stub definitions
368
+ //
369
+ // Methods:
370
+ // (0) virtual string Name() const = 0
371
+ // (1) virtual void Setup() = 0
372
+ // (2) virtual void TearDown() = 0
373
+ // (3) virtual void Register(QualityAssurance::ITestController::ITest*) = 0
374
+ // (4) virtual void Unregister(QualityAssurance::ITestController::ITest*) = 0
375
+ // (5) virtual QualityAssurance::ITestController::ITest::IIterator* Tests() const = 0
376
+ // (6) virtual QualityAssurance::ITestController::ITest* Test(const string&) const = 0
377
+ //
378
+
379
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerCategoryStubMethods[] = {
380
+ // (0) virtual string Name() const = 0
381
+ //
382
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
383
+ Core::hresult hresult = Core::ERROR_NONE;
384
+
385
+ hresult = [&]() -> Core::hresult {
386
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
387
+
388
+ const QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
389
+ ASSERT(implementation != nullptr);
390
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
391
+
392
+ string result = implementation->Name();
393
+
394
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
395
+ writer.Text(result);
396
+
397
+ return (Core::ERROR_NONE);
398
+ } ();
399
+
400
+ if (hresult != Core::ERROR_NONE) {
401
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 0, hresult);
402
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
403
+ }
404
+ },
405
+
406
+ // (1) virtual void Setup() = 0
407
+ //
408
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
409
+ Core::hresult hresult = Core::ERROR_NONE;
410
+
411
+ hresult = [&]() -> Core::hresult {
412
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
413
+
414
+ QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
415
+ ASSERT(implementation != nullptr);
416
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
417
+
418
+ implementation->Setup();
419
+
420
+ return (Core::ERROR_NONE);
421
+ } ();
422
+
423
+ if (hresult != Core::ERROR_NONE) {
424
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 1, hresult);
425
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
426
+ }
427
+ },
428
+
429
+ // (2) virtual void TearDown() = 0
430
+ //
431
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
432
+ Core::hresult hresult = Core::ERROR_NONE;
433
+
434
+ hresult = [&]() -> Core::hresult {
435
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
436
+
437
+ QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
438
+ ASSERT(implementation != nullptr);
439
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
440
+
441
+ implementation->TearDown();
442
+
443
+ return (Core::ERROR_NONE);
444
+ } ();
445
+
446
+ if (hresult != Core::ERROR_NONE) {
447
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 2, hresult);
448
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
449
+ }
450
+ },
451
+
452
+ // (3) virtual void Register(QualityAssurance::ITestController::ITest*) = 0
453
+ //
454
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
455
+ Core::hresult hresult = Core::ERROR_NONE;
456
+
457
+ hresult = [&]() -> Core::hresult {
458
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
459
+
460
+ QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
461
+ ASSERT(implementation != nullptr);
462
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
463
+
464
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
465
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
466
+ Core::instance_id _testInstanceId__ = reader.Number<Core::instance_id>();
467
+
468
+ QualityAssurance::ITestController::ITest* _test{};
469
+ ProxyStub::UnknownProxy* _testProxy__ = nullptr;
470
+ if (_testInstanceId__ != 0) {
471
+ _testProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _testInstanceId__, false, _test);
472
+ ASSERT((_test != nullptr) && (_testProxy__ != nullptr));
473
+ if ((_test == nullptr) || (_testProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
474
+ }
475
+
476
+ implementation->Register(_test);
477
+
478
+ if (_testProxy__ != nullptr) {
479
+ RPC::Administrator::Instance().Release(_testProxy__, message->Response());
480
+ }
481
+
482
+ return (Core::ERROR_NONE);
483
+ } ();
484
+
485
+ if (hresult != Core::ERROR_NONE) {
486
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 3, hresult);
487
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
488
+ }
489
+ },
490
+
491
+ // (4) virtual void Unregister(QualityAssurance::ITestController::ITest*) = 0
492
+ //
493
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
494
+ Core::hresult hresult = Core::ERROR_NONE;
495
+
496
+ hresult = [&]() -> Core::hresult {
497
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
498
+
499
+ QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
500
+ ASSERT(implementation != nullptr);
501
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
502
+
503
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
504
+ if (reader.Length() < (sizeof(Core::instance_id))) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
505
+ Core::instance_id _testInstanceId__ = reader.Number<Core::instance_id>();
506
+
507
+ QualityAssurance::ITestController::ITest* _test{};
508
+ ProxyStub::UnknownProxy* _testProxy__ = nullptr;
509
+ if (_testInstanceId__ != 0) {
510
+ _testProxy__ = RPC::Administrator::Instance().ProxyInstance(channel, _testInstanceId__, false, _test);
511
+ ASSERT((_test != nullptr) && (_testProxy__ != nullptr));
512
+ if ((_test == nullptr) || (_testProxy__ == nullptr)) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
513
+ }
514
+
515
+ implementation->Unregister(_test);
516
+
517
+ if (_testProxy__ != nullptr) {
518
+ RPC::Administrator::Instance().Release(_testProxy__, message->Response());
519
+ }
520
+
521
+ return (Core::ERROR_NONE);
522
+ } ();
523
+
524
+ if (hresult != Core::ERROR_NONE) {
525
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 4, hresult);
526
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
527
+ }
528
+ },
529
+
530
+ // (5) virtual QualityAssurance::ITestController::ITest::IIterator* Tests() const = 0
531
+ //
532
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
533
+ Core::hresult hresult = Core::ERROR_NONE;
534
+
535
+ hresult = [&]() -> Core::hresult {
536
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
537
+
538
+ const QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
539
+ ASSERT(implementation != nullptr);
540
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
541
+
542
+ QualityAssurance::ITestController::ITest::IIterator* result = implementation->Tests();
543
+
544
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
545
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
546
+
547
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
548
+
549
+ return (Core::ERROR_NONE);
550
+ } ();
551
+
552
+ if (hresult != Core::ERROR_NONE) {
553
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 5, hresult);
554
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
555
+ }
556
+ },
557
+
558
+ // (6) virtual QualityAssurance::ITestController::ITest* Test(const string&) const = 0
559
+ //
560
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
561
+ Core::hresult hresult = Core::ERROR_NONE;
562
+
563
+ hresult = [&]() -> Core::hresult {
564
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
565
+
566
+ const QualityAssurance::ITestController::ICategory* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory*>(message->Parameters().Implementation());
567
+ ASSERT(implementation != nullptr);
568
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
569
+
570
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
571
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
572
+ const uint16_t _namePeekedLen__ = reader.PeekNumber<uint16_t>();
573
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _namePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
574
+ const string _name = reader.Text();
575
+
576
+ QualityAssurance::ITestController::ITest* result = implementation->Test(static_cast<const string&>(_name));
577
+
578
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
579
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
580
+
581
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
582
+
583
+ return (Core::ERROR_NONE);
584
+ } ();
585
+
586
+ if (hresult != Core::ERROR_NONE) {
587
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 6, hresult);
588
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
589
+ }
590
+ }
591
+ , nullptr
592
+ }; // QualityAssuranceTestControllerCategoryStubMethods
593
+
594
+ //
595
+ // QualityAssurance::ITestController::ICategory::IIterator interface stub definitions
596
+ //
597
+ // Methods:
598
+ // (0) virtual void Reset() = 0
599
+ // (1) virtual bool IsValid() const = 0
600
+ // (2) virtual bool Next() = 0
601
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category() const = 0
602
+ //
603
+
604
+ static ProxyStub::MethodHandler QualityAssuranceTestControllerCategoryIteratorStubMethods[] = {
605
+ // (0) virtual void Reset() = 0
606
+ //
607
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
608
+ Core::hresult hresult = Core::ERROR_NONE;
609
+
610
+ hresult = [&]() -> Core::hresult {
611
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
612
+
613
+ QualityAssurance::ITestController::ICategory::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory::IIterator*>(message->Parameters().Implementation());
614
+ ASSERT(implementation != nullptr);
615
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
616
+
617
+ implementation->Reset();
618
+
619
+ return (Core::ERROR_NONE);
620
+ } ();
621
+
622
+ if (hresult != Core::ERROR_NONE) {
623
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::IIterator::ID, 0, hresult);
624
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
625
+ }
626
+ },
627
+
628
+ // (1) virtual bool IsValid() const = 0
629
+ //
630
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
631
+ Core::hresult hresult = Core::ERROR_NONE;
632
+
633
+ hresult = [&]() -> Core::hresult {
634
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
635
+
636
+ const QualityAssurance::ITestController::ICategory::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory::IIterator*>(message->Parameters().Implementation());
637
+ ASSERT(implementation != nullptr);
638
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
639
+
640
+ bool result = implementation->IsValid();
641
+
642
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
643
+ writer.Boolean(result);
644
+
645
+ return (Core::ERROR_NONE);
646
+ } ();
647
+
648
+ if (hresult != Core::ERROR_NONE) {
649
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::IIterator::ID, 1, hresult);
650
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
651
+ }
652
+ },
653
+
654
+ // (2) virtual bool Next() = 0
655
+ //
656
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
657
+ Core::hresult hresult = Core::ERROR_NONE;
658
+
659
+ hresult = [&]() -> Core::hresult {
660
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
661
+
662
+ QualityAssurance::ITestController::ICategory::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestController::ICategory::IIterator*>(message->Parameters().Implementation());
663
+ ASSERT(implementation != nullptr);
664
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
665
+
666
+ bool result = implementation->Next();
667
+
668
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
669
+ writer.Boolean(result);
670
+
671
+ return (Core::ERROR_NONE);
672
+ } ();
673
+
674
+ if (hresult != Core::ERROR_NONE) {
675
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::IIterator::ID, 2, hresult);
676
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
677
+ }
678
+ },
679
+
680
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category() const = 0
681
+ //
682
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
683
+ Core::hresult hresult = Core::ERROR_NONE;
684
+
685
+ hresult = [&]() -> Core::hresult {
686
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
687
+
688
+ const QualityAssurance::ITestController::ICategory::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestController::ICategory::IIterator*>(message->Parameters().Implementation());
689
+ ASSERT(implementation != nullptr);
690
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestController::ICategory::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
691
+
692
+ QualityAssurance::ITestController::ICategory* result = implementation->Category();
693
+
694
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
695
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
696
+
697
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
698
+
699
+ return (Core::ERROR_NONE);
700
+ } ();
701
+
702
+ if (hresult != Core::ERROR_NONE) {
703
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::IIterator::ID, 3, hresult);
704
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
705
+ }
706
+ }
707
+ , nullptr
708
+ }; // QualityAssuranceTestControllerCategoryIteratorStubMethods
709
+
710
+ // -----------------------------------------------------------------
711
+ // PROXIES
712
+ // -----------------------------------------------------------------
713
+
714
+ //
715
+ // QualityAssurance::ITestController interface proxy definitions
716
+ //
717
+ // Methods:
718
+ // (0) virtual void Setup() = 0
719
+ // (1) virtual void TearDown() = 0
720
+ // (2) virtual QualityAssurance::ITestController::ICategory::IIterator* Categories() const = 0
721
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category(const string&) const = 0
722
+ //
723
+
724
+ class QualityAssuranceTestControllerProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController> {
725
+ public:
726
+ QualityAssuranceTestControllerProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
727
+ : BaseClass(channel, implementation, otherSideInformed)
728
+ {
729
+ }
730
+
731
+ void Setup() override
732
+ {
733
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
734
+
735
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
736
+ if (hresult == Core::ERROR_NONE) {
737
+ hresult = [&]() -> Core::hresult {
738
+
739
+ return (Core::ERROR_NONE);
740
+ } ();
741
+ } else {
742
+ ASSERT((hresult & COM_ERROR) != 0);
743
+ }
744
+
745
+ if ((hresult & COM_ERROR) != 0) {
746
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ID, 0, hresult);
747
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
748
+ }
749
+ }
750
+
751
+ void TearDown() override
752
+ {
753
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
754
+
755
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
756
+ if (hresult == Core::ERROR_NONE) {
757
+ hresult = [&]() -> Core::hresult {
758
+
759
+ return (Core::ERROR_NONE);
760
+ } ();
761
+ } else {
762
+ ASSERT((hresult & COM_ERROR) != 0);
763
+ }
764
+
765
+ if ((hresult & COM_ERROR) != 0) {
766
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ID, 1, hresult);
767
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
768
+ }
769
+ }
770
+
771
+ QualityAssurance::ITestController::ICategory::IIterator* Categories() const override
772
+ {
773
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
774
+
775
+ QualityAssurance::ITestController::ICategory::IIterator* result{};
776
+
777
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
778
+ if (hresult == Core::ERROR_NONE) {
779
+ hresult = [&]() -> Core::hresult {
780
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
781
+ result = reinterpret_cast<QualityAssurance::ITestController::ICategory::IIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ICategory::IIterator::ID));
782
+
783
+ return (Core::ERROR_NONE);
784
+ } ();
785
+ } else {
786
+ ASSERT((hresult & COM_ERROR) != 0);
787
+ }
788
+
789
+ if ((hresult & COM_ERROR) != 0) {
790
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ID, 2, hresult);
791
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
792
+ }
793
+
794
+ return (result);
795
+ }
796
+
797
+ QualityAssurance::ITestController::ICategory* Category(const string& _category) const override
798
+ {
799
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
800
+
801
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
802
+ writer.Text(_category);
803
+
804
+ QualityAssurance::ITestController::ICategory* result{};
805
+
806
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
807
+ if (hresult == Core::ERROR_NONE) {
808
+ hresult = [&]() -> Core::hresult {
809
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
810
+ result = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ICategory::ID));
811
+
812
+ return (Core::ERROR_NONE);
813
+ } ();
814
+ } else {
815
+ ASSERT((hresult & COM_ERROR) != 0);
816
+ }
817
+
818
+ if ((hresult & COM_ERROR) != 0) {
819
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ID, 3, hresult);
820
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
821
+ }
822
+
823
+ return (result);
824
+ }
825
+
826
+ }; // class QualityAssuranceTestControllerProxy
827
+
828
+ //
829
+ // QualityAssurance::ITestController::ITest interface proxy definitions
830
+ //
831
+ // Methods:
832
+ // (0) virtual string Execute(const string&) = 0
833
+ // (1) virtual string Description() const = 0
834
+ // (2) virtual string Name() const = 0
835
+ //
836
+
837
+ class QualityAssuranceTestControllerTestProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController::ITest> {
838
+ public:
839
+ QualityAssuranceTestControllerTestProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
840
+ : BaseClass(channel, implementation, otherSideInformed)
841
+ {
842
+ }
843
+
844
+ string Execute(const string& _params) override
845
+ {
846
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
847
+
848
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
849
+ writer.Text(_params);
850
+
851
+ string result{};
852
+
853
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
854
+ if (hresult == Core::ERROR_NONE) {
855
+ hresult = [&]() -> Core::hresult {
856
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
857
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
858
+ const uint16_t resultPeekedLen__ = reader.PeekNumber<uint16_t>();
859
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
860
+ result = reader.Text();
861
+
862
+ return (Core::ERROR_NONE);
863
+ } ();
864
+ } else {
865
+ ASSERT((hresult & COM_ERROR) != 0);
866
+ }
867
+
868
+ if ((hresult & COM_ERROR) != 0) {
869
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::ID, 0, hresult);
870
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
871
+ }
872
+
873
+ return (result);
874
+ }
875
+
876
+ string Description() const override
877
+ {
878
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
879
+
880
+ string result{};
881
+
882
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
883
+ if (hresult == Core::ERROR_NONE) {
884
+ hresult = [&]() -> Core::hresult {
885
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
886
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
887
+ const uint16_t resultPeekedLen__ = reader.PeekNumber<uint16_t>();
888
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
889
+ result = reader.Text();
890
+
891
+ return (Core::ERROR_NONE);
892
+ } ();
893
+ } else {
894
+ ASSERT((hresult & COM_ERROR) != 0);
895
+ }
896
+
897
+ if ((hresult & COM_ERROR) != 0) {
898
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::ID, 1, hresult);
899
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
900
+ }
901
+
902
+ return (result);
903
+ }
904
+
905
+ string Name() const override
906
+ {
907
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
908
+
909
+ string result{};
910
+
911
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
912
+ if (hresult == Core::ERROR_NONE) {
913
+ hresult = [&]() -> Core::hresult {
914
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
915
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
916
+ const uint16_t resultPeekedLen__ = reader.PeekNumber<uint16_t>();
917
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
918
+ result = reader.Text();
919
+
920
+ return (Core::ERROR_NONE);
921
+ } ();
922
+ } else {
923
+ ASSERT((hresult & COM_ERROR) != 0);
924
+ }
925
+
926
+ if ((hresult & COM_ERROR) != 0) {
927
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::ID, 2, hresult);
928
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
929
+ }
930
+
931
+ return (result);
932
+ }
933
+
934
+ }; // class QualityAssuranceTestControllerTestProxy
935
+
936
+ //
937
+ // QualityAssurance::ITestController::ITest::IIterator interface proxy definitions
938
+ //
939
+ // Methods:
940
+ // (0) virtual void Reset() = 0
941
+ // (1) virtual bool IsValid() const = 0
942
+ // (2) virtual bool Next() = 0
943
+ // (3) virtual QualityAssurance::ITestController::ITest* Test() const = 0
944
+ //
945
+
946
+ class QualityAssuranceTestControllerTestIteratorProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController::ITest::IIterator> {
947
+ public:
948
+ QualityAssuranceTestControllerTestIteratorProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
949
+ : BaseClass(channel, implementation, otherSideInformed)
950
+ {
951
+ }
952
+
953
+ void Reset() override
954
+ {
955
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
956
+
957
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
958
+ if (hresult == Core::ERROR_NONE) {
959
+ hresult = [&]() -> Core::hresult {
960
+
961
+ return (Core::ERROR_NONE);
962
+ } ();
963
+ } else {
964
+ ASSERT((hresult & COM_ERROR) != 0);
965
+ }
966
+
967
+ if ((hresult & COM_ERROR) != 0) {
968
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::IIterator::ID, 0, hresult);
969
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
970
+ }
971
+ }
972
+
973
+ bool IsValid() const override
974
+ {
975
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
976
+
977
+ bool result{};
978
+
979
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
980
+ if (hresult == Core::ERROR_NONE) {
981
+ hresult = [&]() -> Core::hresult {
982
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
983
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
984
+ result = reader.Boolean();
985
+
986
+ return (Core::ERROR_NONE);
987
+ } ();
988
+ } else {
989
+ ASSERT((hresult & COM_ERROR) != 0);
990
+ }
991
+
992
+ if ((hresult & COM_ERROR) != 0) {
993
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::IIterator::ID, 1, hresult);
994
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
995
+ }
996
+
997
+ return (result);
998
+ }
999
+
1000
+ bool Next() override
1001
+ {
1002
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
1003
+
1004
+ bool result{};
1005
+
1006
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1007
+ if (hresult == Core::ERROR_NONE) {
1008
+ hresult = [&]() -> Core::hresult {
1009
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1010
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1011
+ result = reader.Boolean();
1012
+
1013
+ return (Core::ERROR_NONE);
1014
+ } ();
1015
+ } else {
1016
+ ASSERT((hresult & COM_ERROR) != 0);
1017
+ }
1018
+
1019
+ if ((hresult & COM_ERROR) != 0) {
1020
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::IIterator::ID, 2, hresult);
1021
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1022
+ }
1023
+
1024
+ return (result);
1025
+ }
1026
+
1027
+ QualityAssurance::ITestController::ITest* Test() const override
1028
+ {
1029
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
1030
+
1031
+ QualityAssurance::ITestController::ITest* result{};
1032
+
1033
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1034
+ if (hresult == Core::ERROR_NONE) {
1035
+ hresult = [&]() -> Core::hresult {
1036
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1037
+ result = reinterpret_cast<QualityAssurance::ITestController::ITest*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ITest::ID));
1038
+
1039
+ return (Core::ERROR_NONE);
1040
+ } ();
1041
+ } else {
1042
+ ASSERT((hresult & COM_ERROR) != 0);
1043
+ }
1044
+
1045
+ if ((hresult & COM_ERROR) != 0) {
1046
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ITest::IIterator::ID, 3, hresult);
1047
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1048
+ }
1049
+
1050
+ return (result);
1051
+ }
1052
+
1053
+ }; // class QualityAssuranceTestControllerTestIteratorProxy
1054
+
1055
+ //
1056
+ // QualityAssurance::ITestController::ICategory interface proxy definitions
1057
+ //
1058
+ // Methods:
1059
+ // (0) virtual string Name() const = 0
1060
+ // (1) virtual void Setup() = 0
1061
+ // (2) virtual void TearDown() = 0
1062
+ // (3) virtual void Register(QualityAssurance::ITestController::ITest*) = 0
1063
+ // (4) virtual void Unregister(QualityAssurance::ITestController::ITest*) = 0
1064
+ // (5) virtual QualityAssurance::ITestController::ITest::IIterator* Tests() const = 0
1065
+ // (6) virtual QualityAssurance::ITestController::ITest* Test(const string&) const = 0
1066
+ //
1067
+
1068
+ class QualityAssuranceTestControllerCategoryProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController::ICategory> {
1069
+ public:
1070
+ QualityAssuranceTestControllerCategoryProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1071
+ : BaseClass(channel, implementation, otherSideInformed)
1072
+ {
1073
+ }
1074
+
1075
+ string Name() const override
1076
+ {
1077
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1078
+
1079
+ string result{};
1080
+
1081
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1082
+ if (hresult == Core::ERROR_NONE) {
1083
+ hresult = [&]() -> Core::hresult {
1084
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1085
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1086
+ const uint16_t resultPeekedLen__ = reader.PeekNumber<uint16_t>();
1087
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1088
+ result = reader.Text();
1089
+
1090
+ return (Core::ERROR_NONE);
1091
+ } ();
1092
+ } else {
1093
+ ASSERT((hresult & COM_ERROR) != 0);
1094
+ }
1095
+
1096
+ if ((hresult & COM_ERROR) != 0) {
1097
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 0, hresult);
1098
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1099
+ }
1100
+
1101
+ return (result);
1102
+ }
1103
+
1104
+ void Setup() override
1105
+ {
1106
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
1107
+
1108
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1109
+ if (hresult == Core::ERROR_NONE) {
1110
+ hresult = [&]() -> Core::hresult {
1111
+
1112
+ return (Core::ERROR_NONE);
1113
+ } ();
1114
+ } else {
1115
+ ASSERT((hresult & COM_ERROR) != 0);
1116
+ }
1117
+
1118
+ if ((hresult & COM_ERROR) != 0) {
1119
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 1, hresult);
1120
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1121
+ }
1122
+ }
1123
+
1124
+ void TearDown() override
1125
+ {
1126
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
1127
+
1128
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1129
+ if (hresult == Core::ERROR_NONE) {
1130
+ hresult = [&]() -> Core::hresult {
1131
+
1132
+ return (Core::ERROR_NONE);
1133
+ } ();
1134
+ } else {
1135
+ ASSERT((hresult & COM_ERROR) != 0);
1136
+ }
1137
+
1138
+ if ((hresult & COM_ERROR) != 0) {
1139
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 2, hresult);
1140
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1141
+ }
1142
+ }
1143
+
1144
+ void Register(QualityAssurance::ITestController::ITest* _test) override
1145
+ {
1146
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
1147
+
1148
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1149
+ writer.Number<Core::instance_id>(RPC::instance_cast(_test));
1150
+
1151
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_test), QualityAssurance::ITestController::ITest::ID }, { 0, 0 } };
1152
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
1153
+
1154
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1155
+ if (hresult == Core::ERROR_NONE) {
1156
+ hresult = [&]() -> Core::hresult {
1157
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1158
+
1159
+ const uint32_t completeResult__ = _Complete(reader);
1160
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
1161
+
1162
+ return (Core::ERROR_NONE);
1163
+ } ();
1164
+ } else {
1165
+ ASSERT((hresult & COM_ERROR) != 0);
1166
+ }
1167
+
1168
+ if ((hresult & COM_ERROR) != 0) {
1169
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 3, hresult);
1170
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1171
+ }
1172
+
1173
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
1174
+ }
1175
+
1176
+ void Unregister(QualityAssurance::ITestController::ITest* _test) override
1177
+ {
1178
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(4));
1179
+
1180
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1181
+ writer.Number<Core::instance_id>(RPC::instance_cast(_test));
1182
+
1183
+ const RPC::InstanceRecord passedInstances[] = { { RPC::instance_cast(_test), QualityAssurance::ITestController::ITest::ID }, { 0, 0 } };
1184
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(passedInstances);
1185
+
1186
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1187
+ if (hresult == Core::ERROR_NONE) {
1188
+ hresult = [&]() -> Core::hresult {
1189
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1190
+
1191
+ const uint32_t completeResult__ = _Complete(reader);
1192
+ if (completeResult__ != Core::ERROR_NONE) { return (completeResult__); }
1193
+
1194
+ return (Core::ERROR_NONE);
1195
+ } ();
1196
+ } else {
1197
+ ASSERT((hresult & COM_ERROR) != 0);
1198
+ }
1199
+
1200
+ if ((hresult & COM_ERROR) != 0) {
1201
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 4, hresult);
1202
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1203
+ }
1204
+
1205
+ static_cast<const ProxyStub::UnknownProxy&>(*this).Channel()->CustomData(nullptr);
1206
+ }
1207
+
1208
+ QualityAssurance::ITestController::ITest::IIterator* Tests() const override
1209
+ {
1210
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(5));
1211
+
1212
+ QualityAssurance::ITestController::ITest::IIterator* result{};
1213
+
1214
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1215
+ if (hresult == Core::ERROR_NONE) {
1216
+ hresult = [&]() -> Core::hresult {
1217
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1218
+ result = reinterpret_cast<QualityAssurance::ITestController::ITest::IIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ITest::IIterator::ID));
1219
+
1220
+ return (Core::ERROR_NONE);
1221
+ } ();
1222
+ } else {
1223
+ ASSERT((hresult & COM_ERROR) != 0);
1224
+ }
1225
+
1226
+ if ((hresult & COM_ERROR) != 0) {
1227
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 5, hresult);
1228
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1229
+ }
1230
+
1231
+ return (result);
1232
+ }
1233
+
1234
+ QualityAssurance::ITestController::ITest* Test(const string& _name) const override
1235
+ {
1236
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(6));
1237
+
1238
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
1239
+ writer.Text(_name);
1240
+
1241
+ QualityAssurance::ITestController::ITest* result{};
1242
+
1243
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1244
+ if (hresult == Core::ERROR_NONE) {
1245
+ hresult = [&]() -> Core::hresult {
1246
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1247
+ result = reinterpret_cast<QualityAssurance::ITestController::ITest*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ITest::ID));
1248
+
1249
+ return (Core::ERROR_NONE);
1250
+ } ();
1251
+ } else {
1252
+ ASSERT((hresult & COM_ERROR) != 0);
1253
+ }
1254
+
1255
+ if ((hresult & COM_ERROR) != 0) {
1256
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::ID, 6, hresult);
1257
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1258
+ }
1259
+
1260
+ return (result);
1261
+ }
1262
+
1263
+ private:
1264
+ uint32_t _Complete(RPC::Data::Frame::Reader& reader) const
1265
+ {
1266
+ uint32_t result = Core::ERROR_NONE;
1267
+
1268
+ while (reader.HasData() == true) {
1269
+ const size_t entrySize = (sizeof(Core::instance_id) + sizeof(uint32_t) + sizeof(RPC::Data::Output::mode));
1270
+ if (reader.Length() < entrySize) { result = (COM_ERROR | Core::ERROR_READ_ERROR); break; }
1271
+
1272
+ const Core::instance_id implementation = reader.Number<Core::instance_id>();
1273
+ ASSERT(implementation != 0);
1274
+
1275
+ const uint32_t id = reader.Number<uint32_t>();
1276
+ const RPC::Data::Output::mode how = reader.Number<RPC::Data::Output::mode>();
1277
+
1278
+ if (RPC::Administrator::Instance().IsValid(static_cast<const ProxyStub::UnknownProxy&>(*this).Channel(), implementation, id) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
1279
+
1280
+ result = static_cast<const ProxyStub::UnknownProxy&>(*this).Complete(implementation, id, how);
1281
+ if (result != Core::ERROR_NONE) { return (COM_ERROR | result); }
1282
+ }
1283
+
1284
+ return (result);
1285
+ }
1286
+
1287
+ }; // class QualityAssuranceTestControllerCategoryProxy
1288
+
1289
+ //
1290
+ // QualityAssurance::ITestController::ICategory::IIterator interface proxy definitions
1291
+ //
1292
+ // Methods:
1293
+ // (0) virtual void Reset() = 0
1294
+ // (1) virtual bool IsValid() const = 0
1295
+ // (2) virtual bool Next() = 0
1296
+ // (3) virtual QualityAssurance::ITestController::ICategory* Category() const = 0
1297
+ //
1298
+
1299
+ class QualityAssuranceTestControllerCategoryIteratorProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestController::ICategory::IIterator> {
1300
+ public:
1301
+ QualityAssuranceTestControllerCategoryIteratorProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
1302
+ : BaseClass(channel, implementation, otherSideInformed)
1303
+ {
1304
+ }
1305
+
1306
+ void Reset() override
1307
+ {
1308
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
1309
+
1310
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1311
+ if (hresult == Core::ERROR_NONE) {
1312
+ hresult = [&]() -> Core::hresult {
1313
+
1314
+ return (Core::ERROR_NONE);
1315
+ } ();
1316
+ } else {
1317
+ ASSERT((hresult & COM_ERROR) != 0);
1318
+ }
1319
+
1320
+ if ((hresult & COM_ERROR) != 0) {
1321
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::IIterator::ID, 0, hresult);
1322
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1323
+ }
1324
+ }
1325
+
1326
+ bool IsValid() const override
1327
+ {
1328
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
1329
+
1330
+ bool result{};
1331
+
1332
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1333
+ if (hresult == Core::ERROR_NONE) {
1334
+ hresult = [&]() -> Core::hresult {
1335
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1336
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1337
+ result = reader.Boolean();
1338
+
1339
+ return (Core::ERROR_NONE);
1340
+ } ();
1341
+ } else {
1342
+ ASSERT((hresult & COM_ERROR) != 0);
1343
+ }
1344
+
1345
+ if ((hresult & COM_ERROR) != 0) {
1346
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::IIterator::ID, 1, hresult);
1347
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1348
+ }
1349
+
1350
+ return (result);
1351
+ }
1352
+
1353
+ bool Next() override
1354
+ {
1355
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
1356
+
1357
+ bool result{};
1358
+
1359
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1360
+ if (hresult == Core::ERROR_NONE) {
1361
+ hresult = [&]() -> Core::hresult {
1362
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1363
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
1364
+ result = reader.Boolean();
1365
+
1366
+ return (Core::ERROR_NONE);
1367
+ } ();
1368
+ } else {
1369
+ ASSERT((hresult & COM_ERROR) != 0);
1370
+ }
1371
+
1372
+ if ((hresult & COM_ERROR) != 0) {
1373
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::IIterator::ID, 2, hresult);
1374
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1375
+ }
1376
+
1377
+ return (result);
1378
+ }
1379
+
1380
+ QualityAssurance::ITestController::ICategory* Category() const override
1381
+ {
1382
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
1383
+
1384
+ QualityAssurance::ITestController::ICategory* result{};
1385
+
1386
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
1387
+ if (hresult == Core::ERROR_NONE) {
1388
+ hresult = [&]() -> Core::hresult {
1389
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
1390
+ result = reinterpret_cast<QualityAssurance::ITestController::ICategory*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestController::ICategory::ID));
1391
+
1392
+ return (Core::ERROR_NONE);
1393
+ } ();
1394
+ } else {
1395
+ ASSERT((hresult & COM_ERROR) != 0);
1396
+ }
1397
+
1398
+ if ((hresult & COM_ERROR) != 0) {
1399
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestController::ICategory::IIterator::ID, 3, hresult);
1400
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
1401
+ }
1402
+
1403
+ return (result);
1404
+ }
1405
+
1406
+ }; // class QualityAssuranceTestControllerCategoryIteratorProxy
1407
+
1408
+ POP_WARNING()
1409
+ POP_WARNING()
1410
+
1411
+ // -----------------------------------------------------------------
1412
+ // REGISTRATION
1413
+ // -----------------------------------------------------------------
1414
+ namespace {
1415
+
1416
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController, QualityAssuranceTestControllerStubMethods> QualityAssuranceTestControllerStub;
1417
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController::ITest, QualityAssuranceTestControllerTestStubMethods> QualityAssuranceTestControllerTestStub;
1418
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController::ITest::IIterator, QualityAssuranceTestControllerTestIteratorStubMethods> QualityAssuranceTestControllerTestIteratorStub;
1419
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController::ICategory, QualityAssuranceTestControllerCategoryStubMethods> QualityAssuranceTestControllerCategoryStub;
1420
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestController::ICategory::IIterator, QualityAssuranceTestControllerCategoryIteratorStubMethods> QualityAssuranceTestControllerCategoryIteratorStub;
1421
+
1422
+ static class Instantiation {
1423
+ public:
1424
+ Instantiation()
1425
+ {
1426
+ const RPC::SecureProxyStubType security = static_cast<RPC::SecureProxyStubType>(static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_SECURE) | static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_COHERENT));
1427
+
1428
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController, QualityAssuranceTestControllerProxy, QualityAssuranceTestControllerStub>(security);
1429
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController::ITest, QualityAssuranceTestControllerTestProxy, QualityAssuranceTestControllerTestStub>(security);
1430
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController::ITest::IIterator, QualityAssuranceTestControllerTestIteratorProxy, QualityAssuranceTestControllerTestIteratorStub>(security);
1431
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController::ICategory, QualityAssuranceTestControllerCategoryProxy, QualityAssuranceTestControllerCategoryStub>(security);
1432
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestController::ICategory::IIterator, QualityAssuranceTestControllerCategoryIteratorProxy, QualityAssuranceTestControllerCategoryIteratorStub>(security);
1433
+ }
1434
+ ~Instantiation()
1435
+ {
1436
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController>();
1437
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController::ITest>();
1438
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController::ITest::IIterator>();
1439
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController::ICategory>();
1440
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestController::ICategory::IIterator>();
1441
+ }
1442
+ } ProxyStubRegistration;
1443
+
1444
+ } // namespace
1445
+
1446
+ } // namespace ProxyStubs
1447
+
1448
+ }
generated/generated/Release/ThunderInterfaces/qa_interfaces/qa_generated/ProxyStubs_TestUtility.cpp ADDED
@@ -0,0 +1,772 @@
1
+ //
2
+ // generated automatically from "ITestUtility.h"
3
+ //
4
+ // implements COM-RPC proxy stubs for:
5
+ // - class QualityAssurance::ITestUtility
6
+ // - class QualityAssurance::ITestUtility::ICommand
7
+ // - class QualityAssurance::ITestUtility::ICommand::IIterator
8
+ //
9
+ // secure code enabled:
10
+ // - instance verification enabled
11
+ // - range verification enabled
12
+ // - frame coherency verification enabled
13
+ //
14
+
15
+ #include "Module.h"
16
+ #include "ITestUtility.h"
17
+
18
+ #include <com/com.h>
19
+
20
+ namespace Thunder {
21
+
22
+ namespace ProxyStubs {
23
+
24
+ PUSH_WARNING(DISABLE_WARNING_DEPRECATED_USE)
25
+ PUSH_WARNING(DISABLE_WARNING_TYPE_LIMITS)
26
+
27
+ // -----------------------------------------------------------------
28
+ // STUBS
29
+ // -----------------------------------------------------------------
30
+
31
+ //
32
+ // QualityAssurance::ITestUtility interface stub definitions
33
+ //
34
+ // Methods:
35
+ // (0) virtual QualityAssurance::ITestUtility::ICommand::IIterator* Commands() const = 0
36
+ // (1) virtual QualityAssurance::ITestUtility::ICommand* Command(const string&) const = 0
37
+ // (2) virtual uint32_t ShutdownTimeout(const uint32_t) = 0
38
+ //
39
+
40
+ static ProxyStub::MethodHandler QualityAssuranceTestUtilityStubMethods[] = {
41
+ // (0) virtual QualityAssurance::ITestUtility::ICommand::IIterator* Commands() const = 0
42
+ //
43
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
44
+ Core::hresult hresult = Core::ERROR_NONE;
45
+
46
+ hresult = [&]() -> Core::hresult {
47
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
48
+
49
+ const QualityAssurance::ITestUtility* implementation = reinterpret_cast<const QualityAssurance::ITestUtility*>(message->Parameters().Implementation());
50
+ ASSERT(implementation != nullptr);
51
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
52
+
53
+ QualityAssurance::ITestUtility::ICommand::IIterator* result = implementation->Commands();
54
+
55
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
56
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
57
+
58
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
59
+
60
+ return (Core::ERROR_NONE);
61
+ } ();
62
+
63
+ if (hresult != Core::ERROR_NONE) {
64
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ID, 0, hresult);
65
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
66
+ }
67
+ },
68
+
69
+ // (1) virtual QualityAssurance::ITestUtility::ICommand* Command(const string&) const = 0
70
+ //
71
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
72
+ Core::hresult hresult = Core::ERROR_NONE;
73
+
74
+ hresult = [&]() -> Core::hresult {
75
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
76
+
77
+ const QualityAssurance::ITestUtility* implementation = reinterpret_cast<const QualityAssurance::ITestUtility*>(message->Parameters().Implementation());
78
+ ASSERT(implementation != nullptr);
79
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
80
+
81
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
82
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
83
+ const uint16_t _namePeekedLen__ = reader.PeekNumber<uint16_t>();
84
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _namePeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
85
+ const string _name = reader.Text();
86
+
87
+ QualityAssurance::ITestUtility::ICommand* result = implementation->Command(static_cast<const string&>(_name));
88
+
89
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
90
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
91
+
92
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
93
+
94
+ return (Core::ERROR_NONE);
95
+ } ();
96
+
97
+ if (hresult != Core::ERROR_NONE) {
98
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ID, 1, hresult);
99
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
100
+ }
101
+ },
102
+
103
+ // (2) virtual uint32_t ShutdownTimeout(const uint32_t) = 0
104
+ //
105
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
106
+ Core::hresult hresult = Core::ERROR_NONE;
107
+
108
+ hresult = [&]() -> Core::hresult {
109
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
110
+
111
+ QualityAssurance::ITestUtility* implementation = reinterpret_cast<QualityAssurance::ITestUtility*>(message->Parameters().Implementation());
112
+ ASSERT(implementation != nullptr);
113
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
114
+
115
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
116
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
117
+ const uint32_t _timeout = reader.Number<uint32_t>();
118
+
119
+ uint32_t result = implementation->ShutdownTimeout(_timeout);
120
+
121
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
122
+ writer.Number<uint32_t>(result);
123
+
124
+ return (Core::ERROR_NONE);
125
+ } ();
126
+
127
+ if (hresult != Core::ERROR_NONE) {
128
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ID, 2, hresult);
129
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
130
+ }
131
+ }
132
+ , nullptr
133
+ }; // QualityAssuranceTestUtilityStubMethods
134
+
135
+ //
136
+ // QualityAssurance::ITestUtility::ICommand interface stub definitions
137
+ //
138
+ // Methods:
139
+ // (0) virtual string Execute(const string&) = 0
140
+ // (1) virtual string Description() const = 0
141
+ // (2) virtual string Signature() const = 0
142
+ // (3) virtual string Name() const = 0
143
+ //
144
+
145
+ static ProxyStub::MethodHandler QualityAssuranceTestUtilityCommandStubMethods[] = {
146
+ // (0) virtual string Execute(const string&) = 0
147
+ //
148
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
149
+ Core::hresult hresult = Core::ERROR_NONE;
150
+
151
+ hresult = [&]() -> Core::hresult {
152
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
153
+
154
+ QualityAssurance::ITestUtility::ICommand* implementation = reinterpret_cast<QualityAssurance::ITestUtility::ICommand*>(message->Parameters().Implementation());
155
+ ASSERT(implementation != nullptr);
156
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ICommand::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
157
+
158
+ RPC::Data::Frame::Reader reader(message->Parameters().Reader());
159
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
160
+ const uint16_t _paramsPeekedLen__ = reader.PeekNumber<uint16_t>();
161
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + _paramsPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
162
+ const string _params = reader.Text();
163
+
164
+ string result = implementation->Execute(static_cast<const string&>(_params));
165
+
166
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
167
+ writer.Text(result);
168
+
169
+ return (Core::ERROR_NONE);
170
+ } ();
171
+
172
+ if (hresult != Core::ERROR_NONE) {
173
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::ID, 0, hresult);
174
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
175
+ }
176
+ },
177
+
178
+ // (1) virtual string Description() const = 0
179
+ //
180
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
181
+ Core::hresult hresult = Core::ERROR_NONE;
182
+
183
+ hresult = [&]() -> Core::hresult {
184
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
185
+
186
+ const QualityAssurance::ITestUtility::ICommand* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand*>(message->Parameters().Implementation());
187
+ ASSERT(implementation != nullptr);
188
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ICommand::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
189
+
190
+ string result = implementation->Description();
191
+
192
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
193
+ writer.Text(result);
194
+
195
+ return (Core::ERROR_NONE);
196
+ } ();
197
+
198
+ if (hresult != Core::ERROR_NONE) {
199
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::ID, 1, hresult);
200
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
201
+ }
202
+ },
203
+
204
+ // (2) virtual string Signature() const = 0
205
+ //
206
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
207
+ Core::hresult hresult = Core::ERROR_NONE;
208
+
209
+ hresult = [&]() -> Core::hresult {
210
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
211
+
212
+ const QualityAssurance::ITestUtility::ICommand* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand*>(message->Parameters().Implementation());
213
+ ASSERT(implementation != nullptr);
214
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ICommand::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
215
+
216
+ string result = implementation->Signature();
217
+
218
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
219
+ writer.Text(result);
220
+
221
+ return (Core::ERROR_NONE);
222
+ } ();
223
+
224
+ if (hresult != Core::ERROR_NONE) {
225
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::ID, 2, hresult);
226
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
227
+ }
228
+ },
229
+
230
+ // (3) virtual string Name() const = 0
231
+ //
232
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
233
+ Core::hresult hresult = Core::ERROR_NONE;
234
+
235
+ hresult = [&]() -> Core::hresult {
236
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
237
+
238
+ const QualityAssurance::ITestUtility::ICommand* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand*>(message->Parameters().Implementation());
239
+ ASSERT(implementation != nullptr);
240
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ICommand::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
241
+
242
+ string result = implementation->Name();
243
+
244
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
245
+ writer.Text(result);
246
+
247
+ return (Core::ERROR_NONE);
248
+ } ();
249
+
250
+ if (hresult != Core::ERROR_NONE) {
251
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::ID, 3, hresult);
252
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
253
+ }
254
+ }
255
+ , nullptr
256
+ }; // QualityAssuranceTestUtilityCommandStubMethods
257
+
258
+ //
259
+ // QualityAssurance::ITestUtility::ICommand::IIterator interface stub definitions
260
+ //
261
+ // Methods:
262
+ // (0) virtual void Reset() = 0
263
+ // (1) virtual bool IsValid() const = 0
264
+ // (2) virtual bool Next() = 0
265
+ // (3) virtual QualityAssurance::ITestUtility::ICommand* Command() const = 0
266
+ //
267
+
268
+ static ProxyStub::MethodHandler QualityAssuranceTestUtilityCommandIteratorStubMethods[] = {
269
+ // (0) virtual void Reset() = 0
270
+ //
271
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
272
+ Core::hresult hresult = Core::ERROR_NONE;
273
+
274
+ hresult = [&]() -> Core::hresult {
275
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
276
+
277
+ QualityAssurance::ITestUtility::ICommand::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestUtility::ICommand::IIterator*>(message->Parameters().Implementation());
278
+ ASSERT(implementation != nullptr);
279
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ICommand::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
280
+
281
+ implementation->Reset();
282
+
283
+ return (Core::ERROR_NONE);
284
+ } ();
285
+
286
+ if (hresult != Core::ERROR_NONE) {
287
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::IIterator::ID, 0, hresult);
288
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
289
+ }
290
+ },
291
+
292
+ // (1) virtual bool IsValid() const = 0
293
+ //
294
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
295
+ Core::hresult hresult = Core::ERROR_NONE;
296
+
297
+ hresult = [&]() -> Core::hresult {
298
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
299
+
300
+ const QualityAssurance::ITestUtility::ICommand::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand::IIterator*>(message->Parameters().Implementation());
301
+ ASSERT(implementation != nullptr);
302
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ICommand::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
303
+
304
+ bool result = implementation->IsValid();
305
+
306
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
307
+ writer.Boolean(result);
308
+
309
+ return (Core::ERROR_NONE);
310
+ } ();
311
+
312
+ if (hresult != Core::ERROR_NONE) {
313
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::IIterator::ID, 1, hresult);
314
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
315
+ }
316
+ },
317
+
318
+ // (2) virtual bool Next() = 0
319
+ //
320
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
321
+ Core::hresult hresult = Core::ERROR_NONE;
322
+
323
+ hresult = [&]() -> Core::hresult {
324
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
325
+
326
+ QualityAssurance::ITestUtility::ICommand::IIterator* implementation = reinterpret_cast<QualityAssurance::ITestUtility::ICommand::IIterator*>(message->Parameters().Implementation());
327
+ ASSERT(implementation != nullptr);
328
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ICommand::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
329
+
330
+ bool result = implementation->Next();
331
+
332
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
333
+ writer.Boolean(result);
334
+
335
+ return (Core::ERROR_NONE);
336
+ } ();
337
+
338
+ if (hresult != Core::ERROR_NONE) {
339
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::IIterator::ID, 2, hresult);
340
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
341
+ }
342
+ },
343
+
344
+ // (3) virtual QualityAssurance::ITestUtility::ICommand* Command() const = 0
345
+ //
346
+ [](Core::ProxyType<Core::IPCChannel>& channel, Core::ProxyType<RPC::InvokeMessage>& message) {
347
+ Core::hresult hresult = Core::ERROR_NONE;
348
+
349
+ hresult = [&]() -> Core::hresult {
350
+ if (message->Parameters().IsValid() == false) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
351
+
352
+ const QualityAssurance::ITestUtility::ICommand::IIterator* implementation = reinterpret_cast<const QualityAssurance::ITestUtility::ICommand::IIterator*>(message->Parameters().Implementation());
353
+ ASSERT(implementation != nullptr);
354
+ if (RPC::Administrator::Instance().IsValid(channel, RPC::instance_cast(implementation), QualityAssurance::ITestUtility::ICommand::IIterator::ID) == false) { return (COM_ERROR | Core::ERROR_NOT_EXIST); }
355
+
356
+ QualityAssurance::ITestUtility::ICommand* result = implementation->Command();
357
+
358
+ RPC::Data::Frame::Writer writer(message->Response().Writer());
359
+ writer.Number<Core::instance_id>(RPC::instance_cast(result));
360
+
361
+ RPC::Administrator::Instance().RegisterInterface(channel, result);
362
+
363
+ return (Core::ERROR_NONE);
364
+ } ();
365
+
366
+ if (hresult != Core::ERROR_NONE) {
367
+ fprintf(stderr, "COM-RPC stub 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::IIterator::ID, 3, hresult);
368
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
369
+ }
370
+ }
371
+ , nullptr
372
+ }; // QualityAssuranceTestUtilityCommandIteratorStubMethods
373
+
374
+ // -----------------------------------------------------------------
375
+ // PROXIES
376
+ // -----------------------------------------------------------------
377
+
378
+ //
379
+ // QualityAssurance::ITestUtility interface proxy definitions
380
+ //
381
+ // Methods:
382
+ // (0) virtual QualityAssurance::ITestUtility::ICommand::IIterator* Commands() const = 0
383
+ // (1) virtual QualityAssurance::ITestUtility::ICommand* Command(const string&) const = 0
384
+ // (2) virtual uint32_t ShutdownTimeout(const uint32_t) = 0
385
+ //
386
+
387
+ class QualityAssuranceTestUtilityProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestUtility> {
388
+ public:
389
+ QualityAssuranceTestUtilityProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
390
+ : BaseClass(channel, implementation, otherSideInformed)
391
+ {
392
+ }
393
+
394
+ QualityAssurance::ITestUtility::ICommand::IIterator* Commands() const override
395
+ {
396
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
397
+
398
+ QualityAssurance::ITestUtility::ICommand::IIterator* result{};
399
+
400
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
401
+ if (hresult == Core::ERROR_NONE) {
402
+ hresult = [&]() -> Core::hresult {
403
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
404
+ result = reinterpret_cast<QualityAssurance::ITestUtility::ICommand::IIterator*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestUtility::ICommand::IIterator::ID));
405
+
406
+ return (Core::ERROR_NONE);
407
+ } ();
408
+ } else {
409
+ ASSERT((hresult & COM_ERROR) != 0);
410
+ }
411
+
412
+ if ((hresult & COM_ERROR) != 0) {
413
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ID, 0, hresult);
414
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
415
+ }
416
+
417
+ return (result);
418
+ }
419
+
420
+ QualityAssurance::ITestUtility::ICommand* Command(const string& _name) const override
421
+ {
422
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
423
+
424
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
425
+ writer.Text(_name);
426
+
427
+ QualityAssurance::ITestUtility::ICommand* result{};
428
+
429
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
430
+ if (hresult == Core::ERROR_NONE) {
431
+ hresult = [&]() -> Core::hresult {
432
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
433
+ result = reinterpret_cast<QualityAssurance::ITestUtility::ICommand*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestUtility::ICommand::ID));
434
+
435
+ return (Core::ERROR_NONE);
436
+ } ();
437
+ } else {
438
+ ASSERT((hresult & COM_ERROR) != 0);
439
+ }
440
+
441
+ if ((hresult & COM_ERROR) != 0) {
442
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ID, 1, hresult);
443
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
444
+ }
445
+
446
+ return (result);
447
+ }
448
+
449
+ uint32_t ShutdownTimeout(const uint32_t _timeout) override
450
+ {
451
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
452
+
453
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
454
+ writer.Number<uint32_t>(_timeout);
455
+
456
+ uint32_t result{};
457
+
458
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
459
+ if (hresult == Core::ERROR_NONE) {
460
+ hresult = [&]() -> Core::hresult {
461
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
462
+ if (reader.Length() < (Core::RealSize<uint32_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
463
+ result = reader.Number<uint32_t>();
464
+
465
+ return (Core::ERROR_NONE);
466
+ } ();
467
+ } else {
468
+ ASSERT((hresult & COM_ERROR) != 0);
469
+ }
470
+
471
+ if ((hresult & COM_ERROR) != 0) {
472
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ID, 2, hresult);
473
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
474
+ }
475
+
476
+ return (result);
477
+ }
478
+
479
+ }; // class QualityAssuranceTestUtilityProxy
480
+
481
+ //
482
+ // QualityAssurance::ITestUtility::ICommand interface proxy definitions
483
+ //
484
+ // Methods:
485
+ // (0) virtual string Execute(const string&) = 0
486
+ // (1) virtual string Description() const = 0
487
+ // (2) virtual string Signature() const = 0
488
+ // (3) virtual string Name() const = 0
489
+ //
490
+
491
+ class QualityAssuranceTestUtilityCommandProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestUtility::ICommand> {
492
+ public:
493
+ QualityAssuranceTestUtilityCommandProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
494
+ : BaseClass(channel, implementation, otherSideInformed)
495
+ {
496
+ }
497
+
498
+ string Execute(const string& _params) override
499
+ {
500
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
501
+
502
+ RPC::Data::Frame::Writer writer(message->Parameters().Writer());
503
+ writer.Text(_params);
504
+
505
+ string result{};
506
+
507
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
508
+ if (hresult == Core::ERROR_NONE) {
509
+ hresult = [&]() -> Core::hresult {
510
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
511
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
512
+ const uint16_t resultPeekedLen__ = reader.PeekNumber<uint16_t>();
513
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
514
+ result = reader.Text();
515
+
516
+ return (Core::ERROR_NONE);
517
+ } ();
518
+ } else {
519
+ ASSERT((hresult & COM_ERROR) != 0);
520
+ }
521
+
522
+ if ((hresult & COM_ERROR) != 0) {
523
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::ID, 0, hresult);
524
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
525
+ }
526
+
527
+ return (result);
528
+ }
529
+
530
+ string Description() const override
531
+ {
532
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
533
+
534
+ string result{};
535
+
536
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
537
+ if (hresult == Core::ERROR_NONE) {
538
+ hresult = [&]() -> Core::hresult {
539
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
540
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
541
+ const uint16_t resultPeekedLen__ = reader.PeekNumber<uint16_t>();
542
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
543
+ result = reader.Text();
544
+
545
+ return (Core::ERROR_NONE);
546
+ } ();
547
+ } else {
548
+ ASSERT((hresult & COM_ERROR) != 0);
549
+ }
550
+
551
+ if ((hresult & COM_ERROR) != 0) {
552
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::ID, 1, hresult);
553
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
554
+ }
555
+
556
+ return (result);
557
+ }
558
+
559
+ string Signature() const override
560
+ {
561
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
562
+
563
+ string result{};
564
+
565
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
566
+ if (hresult == Core::ERROR_NONE) {
567
+ hresult = [&]() -> Core::hresult {
568
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
569
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
570
+ const uint16_t resultPeekedLen__ = reader.PeekNumber<uint16_t>();
571
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
572
+ result = reader.Text();
573
+
574
+ return (Core::ERROR_NONE);
575
+ } ();
576
+ } else {
577
+ ASSERT((hresult & COM_ERROR) != 0);
578
+ }
579
+
580
+ if ((hresult & COM_ERROR) != 0) {
581
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::ID, 2, hresult);
582
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
583
+ }
584
+
585
+ return (result);
586
+ }
587
+
588
+ string Name() const override
589
+ {
590
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
591
+
592
+ string result{};
593
+
594
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
595
+ if (hresult == Core::ERROR_NONE) {
596
+ hresult = [&]() -> Core::hresult {
597
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
598
+ if (reader.Length() < (Core::RealSize<uint16_t>())) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
599
+ const uint16_t resultPeekedLen__ = reader.PeekNumber<uint16_t>();
600
+ if (reader.Length() < (static_cast<uint32_t>(Core::RealSize<uint16_t>()) + resultPeekedLen__)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
601
+ result = reader.Text();
602
+
603
+ return (Core::ERROR_NONE);
604
+ } ();
605
+ } else {
606
+ ASSERT((hresult & COM_ERROR) != 0);
607
+ }
608
+
609
+ if ((hresult & COM_ERROR) != 0) {
610
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::ID, 3, hresult);
611
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
612
+ }
613
+
614
+ return (result);
615
+ }
616
+
617
+ }; // class QualityAssuranceTestUtilityCommandProxy
618
+
619
+ //
620
+ // QualityAssurance::ITestUtility::ICommand::IIterator interface proxy definitions
621
+ //
622
+ // Methods:
623
+ // (0) virtual void Reset() = 0
624
+ // (1) virtual bool IsValid() const = 0
625
+ // (2) virtual bool Next() = 0
626
+ // (3) virtual QualityAssurance::ITestUtility::ICommand* Command() const = 0
627
+ //
628
+
629
+ class QualityAssuranceTestUtilityCommandIteratorProxy final : public ProxyStub::UnknownProxyType<QualityAssurance::ITestUtility::ICommand::IIterator> {
630
+ public:
631
+ QualityAssuranceTestUtilityCommandIteratorProxy(const Core::ProxyType<Core::IPCChannel>& channel, const Core::instance_id implementation, const bool otherSideInformed)
632
+ : BaseClass(channel, implementation, otherSideInformed)
633
+ {
634
+ }
635
+
636
+ void Reset() override
637
+ {
638
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(0));
639
+
640
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
641
+ if (hresult == Core::ERROR_NONE) {
642
+ hresult = [&]() -> Core::hresult {
643
+
644
+ return (Core::ERROR_NONE);
645
+ } ();
646
+ } else {
647
+ ASSERT((hresult & COM_ERROR) != 0);
648
+ }
649
+
650
+ if ((hresult & COM_ERROR) != 0) {
651
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::IIterator::ID, 0, hresult);
652
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
653
+ }
654
+ }
655
+
656
+ bool IsValid() const override
657
+ {
658
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(1));
659
+
660
+ bool result{};
661
+
662
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
663
+ if (hresult == Core::ERROR_NONE) {
664
+ hresult = [&]() -> Core::hresult {
665
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
666
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
667
+ result = reader.Boolean();
668
+
669
+ return (Core::ERROR_NONE);
670
+ } ();
671
+ } else {
672
+ ASSERT((hresult & COM_ERROR) != 0);
673
+ }
674
+
675
+ if ((hresult & COM_ERROR) != 0) {
676
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::IIterator::ID, 1, hresult);
677
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
678
+ }
679
+
680
+ return (result);
681
+ }
682
+
683
+ bool Next() override
684
+ {
685
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(2));
686
+
687
+ bool result{};
688
+
689
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
690
+ if (hresult == Core::ERROR_NONE) {
691
+ hresult = [&]() -> Core::hresult {
692
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
693
+ if (reader.Length() < (1)) { return (COM_ERROR | Core::ERROR_READ_ERROR); }
694
+ result = reader.Boolean();
695
+
696
+ return (Core::ERROR_NONE);
697
+ } ();
698
+ } else {
699
+ ASSERT((hresult & COM_ERROR) != 0);
700
+ }
701
+
702
+ if ((hresult & COM_ERROR) != 0) {
703
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::IIterator::ID, 2, hresult);
704
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
705
+ }
706
+
707
+ return (result);
708
+ }
709
+
710
+ QualityAssurance::ITestUtility::ICommand* Command() const override
711
+ {
712
+ IPCMessage message(static_cast<const ProxyStub::UnknownProxy&>(*this).Message(3));
713
+
714
+ QualityAssurance::ITestUtility::ICommand* result{};
715
+
716
+ Core::hresult hresult = static_cast<const ProxyStub::UnknownProxy&>(*this).Invoke(message);
717
+ if (hresult == Core::ERROR_NONE) {
718
+ hresult = [&]() -> Core::hresult {
719
+ RPC::Data::Frame::Reader reader(message->Response().Reader());
720
+ result = reinterpret_cast<QualityAssurance::ITestUtility::ICommand*>(static_cast<const ProxyStub::UnknownProxy&>(*this).Interface(reader.Number<Core::instance_id>(), QualityAssurance::ITestUtility::ICommand::ID));
721
+
722
+ return (Core::ERROR_NONE);
723
+ } ();
724
+ } else {
725
+ ASSERT((hresult & COM_ERROR) != 0);
726
+ }
727
+
728
+ if ((hresult & COM_ERROR) != 0) {
729
+ fprintf(stderr, "COM-RPC call 0x%08x(%u) failed: 0x%08x\n", QualityAssurance::ITestUtility::ICommand::IIterator::ID, 3, hresult);
730
+ TRACE_L1("Warning: This COM-RPC failure will not propagate!");
731
+ }
732
+
733
+ return (result);
734
+ }
735
+
736
+ }; // class QualityAssuranceTestUtilityCommandIteratorProxy
737
+
738
+ POP_WARNING()
739
+ POP_WARNING()
740
+
741
+ // -----------------------------------------------------------------
742
+ // REGISTRATION
743
+ // -----------------------------------------------------------------
744
+ namespace {
745
+
746
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestUtility, QualityAssuranceTestUtilityStubMethods> QualityAssuranceTestUtilityStub;
747
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestUtility::ICommand, QualityAssuranceTestUtilityCommandStubMethods> QualityAssuranceTestUtilityCommandStub;
748
+ typedef ProxyStub::UnknownStubType<QualityAssurance::ITestUtility::ICommand::IIterator, QualityAssuranceTestUtilityCommandIteratorStubMethods> QualityAssuranceTestUtilityCommandIteratorStub;
749
+
750
+ static class Instantiation {
751
+ public:
752
+ Instantiation()
753
+ {
754
+ const RPC::SecureProxyStubType security = static_cast<RPC::SecureProxyStubType>(static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_SECURE) | static_cast<std::underlying_type<RPC::SecureProxyStubType>::type>(RPC::SecureProxyStubType::PROXYSTUBS_SECURITY_COHERENT));
755
+
756
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestUtility, QualityAssuranceTestUtilityProxy, QualityAssuranceTestUtilityStub>(security);
757
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestUtility::ICommand, QualityAssuranceTestUtilityCommandProxy, QualityAssuranceTestUtilityCommandStub>(security);
758
+ RPC::Administrator::Instance().Announce<QualityAssurance::ITestUtility::ICommand::IIterator, QualityAssuranceTestUtilityCommandIteratorProxy, QualityAssuranceTestUtilityCommandIteratorStub>(security);
759
+ }
760
+ ~Instantiation()
761
+ {
762
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestUtility>();
763
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestUtility::ICommand>();
764
+ RPC::Administrator::Instance().Recall<QualityAssurance::ITestUtility::ICommand::IIterator>();
765
+ }
766
+ } ProxyStubRegistration;
767
+
768
+ } // namespace
769
+
770
+ } // namespace ProxyStubs
771
+
772
+ }