Ice 3.8
C++ API Reference
Loading...
Searching...
No Matches
Descriptor.h
1// Copyright (c) ZeroC, Inc.
2
3// slice2cpp version 3.8.0-alpha.0
4// <auto-generated>Generated from Slice file 'Descriptor.ice'.</auto-generated>
5// clang-format off
6
7#ifndef IceGrid_Descriptor_h_
8#define IceGrid_Descriptor_h_
9
11#include <Ice/Ice.h>
12#include <Ice/BuiltinSequences.h>
13#include <Ice/Identity.h>
14#include <IceGrid/Config.h>
15
16#ifndef ICE_DISABLE_VERSION
17# if ICE_INT_VERSION != 30850
18# error Ice version mismatch: an exact match is required for beta generated code
19# endif
20#endif
21
22#ifndef ICEGRID_API
23# if defined(ICEGRID_API_EXPORTS)
24# define ICEGRID_API ICE_DECLSPEC_EXPORT
25# else
26# define ICEGRID_API ICE_DECLSPEC_IMPORT
27# endif
28#endif
29
30// NOLINTBEGIN(modernize-concat-nested-namespaces)
31
32namespace IceGrid
33{
34 /// A mapping of string to string.
35 using StringStringDict = std::map<std::string, std::string>;
36
37 struct PropertyDescriptor;
38
39 /// A sequence of PropertyDescriptor.
40 using PropertyDescriptorSeq = std::vector<PropertyDescriptor>;
41
43
44 /// A mapping of property set name to property set descriptor.
45 using PropertySetDescriptorDict = std::map<std::string, PropertySetDescriptor>;
46
47 struct ObjectDescriptor;
48
49 /// A sequence of ObjectDescriptor.
50 using ObjectDescriptorSeq = std::vector<ObjectDescriptor>;
51
52 struct AdapterDescriptor;
53
54 /// A sequence of AdapterDescriptor.
55 using AdapterDescriptorSeq = std::vector<AdapterDescriptor>;
56
57 struct [[deprecated("This descriptor is provided for schema compatibility. It is no longer used as of Ice 3.8.")]] DbEnvDescriptor;
58
59 /// A sequence of DbEnvDescriptor.
60 using DbEnvDescriptorSeq [[deprecated("This descriptor is provided for schema compatibility. It is no longer used as of Ice 3.8.")]] = std::vector<DbEnvDescriptor>;
61
63
64 /// A shared pointer to a CommunicatorDescriptor.
65 using CommunicatorDescriptorPtr = std::shared_ptr<CommunicatorDescriptor>;
66
67 struct [[deprecated("This descriptor is provided for schema compatibility. It is no longer used as of Ice 3.8.")]] DistributionDescriptor;
68
69 class ServerDescriptor;
70
71 /// A shared pointer to a ServerDescriptor.
72 using ServerDescriptorPtr = std::shared_ptr<ServerDescriptor>;
73
74 /// A sequence of ServerDescriptor.
75 using ServerDescriptorSeq = std::vector<ServerDescriptorPtr>;
76
78
79 /// A shared pointer to a ServiceDescriptor.
80 using ServiceDescriptorPtr = std::shared_ptr<ServiceDescriptor>;
81
82 /// A sequence of ServiceDescriptor.
83 using ServiceDescriptorSeq = std::vector<ServiceDescriptorPtr>;
84
86
87 /// A sequence of ServerInstanceDescriptor.
88 using ServerInstanceDescriptorSeq = std::vector<ServerInstanceDescriptor>;
89
90 struct TemplateDescriptor;
91
92 /// A mapping of template identifier to template descriptor.
93 using TemplateDescriptorDict = std::map<std::string, TemplateDescriptor>;
94
96
97 /// A sequence of ServiceInstanceDescriptor.
98 using ServiceInstanceDescriptorSeq = std::vector<ServiceInstanceDescriptor>;
99
100 class IceBoxDescriptor;
101
102 /// A shared pointer to an IceBoxDescriptor.
103 using IceBoxDescriptorPtr = std::shared_ptr<IceBoxDescriptor>;
104
105 struct NodeDescriptor;
106
107 /// Mapping of node name to node descriptor.
108 using NodeDescriptorDict = std::map<std::string, NodeDescriptor>;
109
111
112 /// A shared pointer to a LoadBalancingPolicy.
113 using LoadBalancingPolicyPtr = std::shared_ptr<LoadBalancingPolicy>;
114
116
117 /// A shared pointer to a RandomLoadBalancingPolicy.
118 using RandomLoadBalancingPolicyPtr = std::shared_ptr<RandomLoadBalancingPolicy>;
119
121
122 /// A shared pointer to an OrderedLoadBalancingPolicy.
123 using OrderedLoadBalancingPolicyPtr = std::shared_ptr<OrderedLoadBalancingPolicy>;
124
126
127 /// A shared pointer to a RoundRobinLoadBalancingPolicy.
128 using RoundRobinLoadBalancingPolicyPtr = std::shared_ptr<RoundRobinLoadBalancingPolicy>;
129
131
132 /// A shared pointer to an AdaptiveLoadBalancingPolicy.
133 using AdaptiveLoadBalancingPolicyPtr = std::shared_ptr<AdaptiveLoadBalancingPolicy>;
134
136
137 /// A sequence of ReplicaGroupDescriptor.
138 using ReplicaGroupDescriptorSeq = std::vector<ReplicaGroupDescriptor>;
139
141
142 /// A sequence of ApplicationDescriptor.
143 using ApplicationDescriptorSeq = std::vector<ApplicationDescriptor>;
144
145 class BoxedString;
146
147 /// A shared pointer to a BoxedString.
148 using BoxedStringPtr = std::shared_ptr<BoxedString>;
149
151
152 /// A sequence of NodeUpdateDescriptor.
153 using NodeUpdateDescriptorSeq = std::vector<NodeUpdateDescriptor>;
154
156
157 /// A shared pointer to a BoxedDistributionDescriptor.
158 using BoxedDistributionDescriptorPtr [[deprecated]] = std::shared_ptr<BoxedDistributionDescriptor>;
159
161}
162
163namespace IceGrid
164{
165 /// Describes an Ice property.
166 /// @headerfile IceGrid/IceGrid.h
168 {
169 /// The name of the property.
170 std::string name;
171
172 /// The value of the property.
173 std::string value;
174
175 /// Creates a tuple with all the fields of this struct.
176 /// @return A tuple with all the fields of this struct.
177 [[nodiscard]] std::tuple<const std::string&, const std::string&> ice_tuple() const
178 {
179 return std::tie(name, value);
180 }
181
182 /// Outputs the name and value of each field of this instance to the stream.
183 /// @param os The output stream.
184 ICEGRID_API void ice_printFields(std::ostream& os) const;
185 };
186
187 /// Outputs the description of a PropertyDescriptor to a stream, including all its fields.
188 /// @param os The output stream.
189 /// @param value The instance to output.
190 /// @return The output stream.
191 ICEGRID_API std::ostream& operator<<(std::ostream& os, const PropertyDescriptor& value);
192
193 /// A property set descriptor.
194 /// @headerfile IceGrid/IceGrid.h
196 {
197 /// References to named property sets.
199
200 /// The property set properties.
202
203 /// Creates a tuple with all the fields of this struct.
204 /// @return A tuple with all the fields of this struct.
205 [[nodiscard]] std::tuple<const ::Ice::StringSeq&, const ::IceGrid::PropertyDescriptorSeq&> ice_tuple() const
206 {
207 return std::tie(references, properties);
208 }
209
210 /// Outputs the name and value of each field of this instance to the stream.
211 /// @param os The output stream.
212 ICEGRID_API void ice_printFields(std::ostream& os) const;
213 };
214
215 /// Outputs the description of a PropertySetDescriptor to a stream, including all its fields.
216 /// @param os The output stream.
217 /// @param value The instance to output.
218 /// @return The output stream.
219 ICEGRID_API std::ostream& operator<<(std::ostream& os, const PropertySetDescriptor& value);
220
221 /// Describes a well-known Ice object.
222 /// @headerfile IceGrid/IceGrid.h
224 {
225 /// The identity of the object.
227
228 /// The object type.
229 std::string type;
230
231 /// The proxy options to use when creating a proxy for this well-known object. If empty, the proxy is created
232 /// with the proxy options specified on the object adapter or replica group.
233 std::string proxyOptions;
234
235 /// Creates a tuple with all the fields of this struct.
236 /// @return A tuple with all the fields of this struct.
237 [[nodiscard]] std::tuple<const ::Ice::Identity&, const std::string&, const std::string&> ice_tuple() const
238 {
239 return std::tie(id, type, proxyOptions);
240 }
241
242 /// Outputs the name and value of each field of this instance to the stream.
243 /// @param os The output stream.
244 ICEGRID_API void ice_printFields(std::ostream& os) const;
245 };
246
247 /// Outputs the description of an ObjectDescriptor to a stream, including all its fields.
248 /// @param os The output stream.
249 /// @param value The instance to output.
250 /// @return The output stream.
251 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ObjectDescriptor& value);
252
253 /// Describes an indirect object adapter.
254 /// @headerfile IceGrid/IceGrid.h
256 {
257 /// The object adapter name.
258 std::string name;
259
260 /// A description of this object adapter.
261 std::string description;
262
263 /// The adapter ID.
264 std::string id;
265
266 /// The replica group ID. It's empty when the adapter is not part of a replica group.
267 std::string replicaGroupId;
268
269 /// The adapter priority. Only relevant when the adapter is in a replica group.
270 std::string priority;
271
272 /// When `true`, the object adapter registers a process object.
274
275 /// When `true`, the lifetime of this object adapter is the same of the server lifetime. This information is
276 /// used by the IceGrid node to figure out the server state: the server is active when all its "server lifetime"
277 /// adapters are active.
279
280 /// The descriptors of well-known objects.
282
283 /// The descriptors of allocatable objects
285
286 /// Creates a tuple with all the fields of this struct.
287 /// @return A tuple with all the fields of this struct.
288 [[nodiscard]] std::tuple<const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, const bool&, const bool&, const ::IceGrid::ObjectDescriptorSeq&, const ::IceGrid::ObjectDescriptorSeq&> ice_tuple() const
289 {
291 }
292
293 /// Outputs the name and value of each field of this instance to the stream.
294 /// @param os The output stream.
295 ICEGRID_API void ice_printFields(std::ostream& os) const;
296 };
297
298 /// Outputs the description of an AdapterDescriptor to a stream, including all its fields.
299 /// @param os The output stream.
300 /// @param value The instance to output.
301 /// @return The output stream.
302 ICEGRID_API std::ostream& operator<<(std::ostream& os, const AdapterDescriptor& value);
303
304 /// A Freeze database environment descriptor (deprecated, no longer used).
305 /// @headerfile IceGrid/IceGrid.h
306 struct [[deprecated("This descriptor is provided for schema compatibility. It is no longer used as of Ice 3.8.")]] DbEnvDescriptor
307 {
308 /// The name of the database environment.
309 std::string name;
310
311 /// The description of this database environment.
312 std::string description;
313
314 /// The home of the database environment.
315 std::string dbHome;
316
317 /// The configuration properties of the database environment.
319
320 /// Creates a tuple with all the fields of this struct.
321 /// @return A tuple with all the fields of this struct.
322 [[nodiscard]] std::tuple<const std::string&, const std::string&, const std::string&, const ::IceGrid::PropertyDescriptorSeq&> ice_tuple() const
323 {
324 return std::tie(name, description, dbHome, properties);
325 }
326
327 /// Outputs the name and value of each field of this instance to the stream.
328 /// @param os The output stream.
329 ICEGRID_API void ice_printFields(std::ostream& os) const;
330 };
331
332 /// Outputs the description of a DbEnvDescriptor to a stream, including all its fields.
333 /// @param os The output stream.
334 /// @param value The instance to output.
335 /// @return The output stream.
336 ICEGRID_API std::ostream& operator<<(std::ostream& os, const DbEnvDescriptor& value);
337
338 /// Describes an Ice communicator.
339 /// @headerfile IceGrid/IceGrid.h
340 class ICEGRID_API CommunicatorDescriptor : public Ice::Value
341 {
342 public:
343 /// Default constructor.
344 CommunicatorDescriptor() noexcept = default;
345
346 /// One-shot constructor to initialize all data members.
347 /// @param adapters The indirect object adapters.
348 /// @param propertySet The property set.
349 /// @param dbEnvs The database environments.
350 /// @param logs The path of each log file.
351 /// @param description A description of this descriptor.
353 adapters(std::move(adapters)),
354 propertySet(std::move(propertySet)),
355 dbEnvs(std::move(dbEnvs)),
356 logs(std::move(logs)),
357 description(std::move(description))
358 {
359 }
360
361 /// Gets the type ID of the associated Slice class.
362 /// @return The string `"::IceGrid::CommunicatorDescriptor"`.
363 static const char* ice_staticId() noexcept;
364
365 [[nodiscard]] const char* ice_id() const noexcept override;
366
367 /// Creates a tuple with all the fields of this class.
368 /// @return A tuple with all the fields of this class.
369 [[nodiscard]] std::tuple<const ::IceGrid::AdapterDescriptorSeq&, const ::IceGrid::PropertySetDescriptor&, const ::IceGrid::DbEnvDescriptorSeq&, const ::Ice::StringSeq&, const std::string&> ice_tuple() const
370 {
371 return std::tie(adapters, propertySet, dbEnvs, logs, description);
372 }
373
374 /// Creates a shallow polymorphic copy of this instance.
375 /// @return The cloned value.
376 [[nodiscard]] CommunicatorDescriptorPtr ice_clone() const { return std::static_pointer_cast<CommunicatorDescriptor>(_iceCloneImpl()); }
377
378 void ice_printFields(std::ostream& os) const override;
379
380 /// The indirect object adapters.
382
383 /// The property set.
385
386 /// The database environments.
387 [[deprecated]] ::IceGrid::DbEnvDescriptorSeq dbEnvs;
388
389 /// The path of each log file.
391
392 /// A description of this descriptor.
393 std::string description;
394
395 protected:
396 /// Copy constructor.
398
399 /// @private
400 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
401
402 /// @private
403 void _iceWriteImpl(Ice::OutputStream*) const override;
404
405 /// @private
406 void _iceReadImpl(Ice::InputStream*) override;
407 };
408
409 /// Describes a distribution.
410 /// @headerfile IceGrid/IceGrid.h
411 struct [[deprecated("This descriptor is provided for schema compatibility. It is no longer used as of Ice 3.8.")]] DistributionDescriptor
412 {
413 /// The proxy of the IcePatch2 server.
414 std::string icepatch;
415
416 /// The source directories.
418
419 /// Creates a tuple with all the fields of this struct.
420 /// @return A tuple with all the fields of this struct.
421 [[nodiscard]] std::tuple<const std::string&, const ::Ice::StringSeq&> ice_tuple() const
422 {
423 return std::tie(icepatch, directories);
424 }
425
426 /// Outputs the name and value of each field of this instance to the stream.
427 /// @param os The output stream.
428 ICEGRID_API void ice_printFields(std::ostream& os) const;
429 };
430
431 /// Outputs the description of a DistributionDescriptor to a stream, including all its fields.
432 /// @param os The output stream.
433 /// @param value The instance to output.
434 /// @return The output stream.
435 ICEGRID_API std::ostream& operator<<(std::ostream& os, const DistributionDescriptor& value);
436
437 /// Describes an Ice server.
438 /// @headerfile IceGrid/IceGrid.h
439 class ICEGRID_API ServerDescriptor : public CommunicatorDescriptor
440 {
441 public:
442 /// Default constructor.
443 ServerDescriptor() noexcept = default;
444
445 /// One-shot constructor to initialize all data members.
446 /// @param adapters The indirect object adapters.
447 /// @param propertySet The property set.
448 /// @param dbEnvs The database environments.
449 /// @param logs The path of each log file.
450 /// @param description A description of this descriptor.
451 /// @param id The server ID.
452 /// @param exe The path of the server executable.
453 /// @param iceVersion The Ice version used by this server.
454 /// @param pwd The path to the server working directory.
455 /// @param options The command line options to pass to the server executable.
456 /// @param envs The server environment variables.
457 /// @param activation The server activation mode.
458 /// @param activationTimeout The activation timeout.
459 /// @param deactivationTimeout The deactivation timeout.
460 /// @param applicationDistrib Specifies if the server depends on the application distribution.
461 /// @param distrib The distribution descriptor.
462 /// @param allocatable Specifies if the server is allocatable.
463 /// @param user The user account used to run the server.
464 ServerDescriptor(::IceGrid::AdapterDescriptorSeq adapters, ::IceGrid::PropertySetDescriptor propertySet, ::IceGrid::DbEnvDescriptorSeq dbEnvs, ::Ice::StringSeq logs, std::string description, std::string id, std::string exe, std::string iceVersion, std::string pwd, ::Ice::StringSeq options, ::Ice::StringSeq envs, std::string activation, std::string activationTimeout, std::string deactivationTimeout, bool applicationDistrib, ::IceGrid::DistributionDescriptor distrib, bool allocatable, std::string user) noexcept :
465 CommunicatorDescriptor(std::move(adapters), std::move(propertySet), std::move(dbEnvs), std::move(logs), std::move(description)),
466 id(std::move(id)),
467 exe(std::move(exe)),
468 iceVersion(std::move(iceVersion)),
469 pwd(std::move(pwd)),
470 options(std::move(options)),
471 envs(std::move(envs)),
472 activation(std::move(activation)),
476 distrib(std::move(distrib)),
478 user(std::move(user))
479 {
480 }
481
482 /// Gets the type ID of the associated Slice class.
483 /// @return The string `"::IceGrid::ServerDescriptor"`.
484 static const char* ice_staticId() noexcept;
485
486 [[nodiscard]] const char* ice_id() const noexcept override;
487
488 /// Creates a tuple with all the fields of this class.
489 /// @return A tuple with all the fields of this class.
490 [[nodiscard]] std::tuple<const ::IceGrid::AdapterDescriptorSeq&, const ::IceGrid::PropertySetDescriptor&, const ::IceGrid::DbEnvDescriptorSeq&, const ::Ice::StringSeq&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, const ::Ice::StringSeq&, const ::Ice::StringSeq&, const std::string&, const std::string&, const std::string&, const bool&, const ::IceGrid::DistributionDescriptor&, const bool&, const std::string&> ice_tuple() const
491 {
493 }
494
495 /// Creates a shallow polymorphic copy of this instance.
496 /// @return The cloned value.
497 [[nodiscard]] ServerDescriptorPtr ice_clone() const { return std::static_pointer_cast<ServerDescriptor>(_iceCloneImpl()); }
498
499 void ice_printFields(std::ostream& os) const override;
500
501 /// The server ID.
502 std::string id;
503
504 /// The path of the server executable.
505 std::string exe;
506
507 /// The Ice version used by this server. This is only required if backward compatibility with servers using old
508 /// Ice versions is needed (otherwise the registry assumes the server is using the same Ice version as the
509 /// registry itself). For example `"3.7.5"`.
510 std::string iceVersion;
511
512 /// The path to the server working directory.
513 std::string pwd;
514
515 /// The command line options to pass to the server executable.
517
518 /// The server environment variables.
520
521 /// The server activation mode. Possible values are `"on-demand"` and `"manual"`.
522 std::string activation;
523
524 /// The activation timeout. It's an integer (in string format) that represents the number of seconds to wait for
525 /// activation.
526 std::string activationTimeout;
527
528 /// The deactivation timeout. It's an integer (in string format) that represents the number of seconds to wait
529 /// for deactivation.
531
532 /// Specifies if the server depends on the application distribution.
533 [[deprecated]] bool applicationDistrib{false};
534
535 /// The distribution descriptor.
537
538 /// Specifies if the server is allocatable.
540
541 /// The user account used to run the server.
542 std::string user;
543
544 protected:
545 /// Copy constructor.
547
548 /// @private
549 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
550
551 /// @private
552 void _iceWriteImpl(Ice::OutputStream*) const override;
553
554 /// @private
555 void _iceReadImpl(Ice::InputStream*) override;
556 };
557
558 /// Describes an IceBox service.
559 /// @headerfile IceGrid/IceGrid.h
560 class ICEGRID_API ServiceDescriptor : public CommunicatorDescriptor
561 {
562 public:
563 /// Default constructor.
564 ServiceDescriptor() noexcept = default;
565
566 /// One-shot constructor to initialize all data members.
567 /// @param adapters The indirect object adapters.
568 /// @param propertySet The property set.
569 /// @param dbEnvs The database environments.
570 /// @param logs The path of each log file.
571 /// @param description A description of this descriptor.
572 /// @param name The service name.
573 /// @param entry The entry point of the IceBox service.
574 ServiceDescriptor(::IceGrid::AdapterDescriptorSeq adapters, ::IceGrid::PropertySetDescriptor propertySet, ::IceGrid::DbEnvDescriptorSeq dbEnvs, ::Ice::StringSeq logs, std::string description, std::string name, std::string entry) noexcept :
575 CommunicatorDescriptor(std::move(adapters), std::move(propertySet), std::move(dbEnvs), std::move(logs), std::move(description)),
576 name(std::move(name)),
577 entry(std::move(entry))
578 {
579 }
580
581 /// Gets the type ID of the associated Slice class.
582 /// @return The string `"::IceGrid::ServiceDescriptor"`.
583 static const char* ice_staticId() noexcept;
584
585 [[nodiscard]] const char* ice_id() const noexcept override;
586
587 /// Creates a tuple with all the fields of this class.
588 /// @return A tuple with all the fields of this class.
589 [[nodiscard]] std::tuple<const ::IceGrid::AdapterDescriptorSeq&, const ::IceGrid::PropertySetDescriptor&, const ::IceGrid::DbEnvDescriptorSeq&, const ::Ice::StringSeq&, const std::string&, const std::string&, const std::string&> ice_tuple() const
590 {
591 return std::tie(adapters, propertySet, dbEnvs, logs, description, name, entry);
592 }
593
594 /// Creates a shallow polymorphic copy of this instance.
595 /// @return The cloned value.
596 [[nodiscard]] ServiceDescriptorPtr ice_clone() const { return std::static_pointer_cast<ServiceDescriptor>(_iceCloneImpl()); }
597
598 void ice_printFields(std::ostream& os) const override;
599
600 /// The service name.
601 std::string name;
602
603 /// The entry point of the IceBox service.
604 std::string entry;
605
606 protected:
607 /// Copy constructor.
609
610 /// @private
611 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
612
613 /// @private
614 void _iceWriteImpl(Ice::OutputStream*) const override;
615
616 /// @private
617 void _iceReadImpl(Ice::InputStream*) override;
618 };
619
620 /// Describes a template instantiation that creates a server.
621 /// @headerfile IceGrid/IceGrid.h
623 {
624 /// The template used by this instance. It's never empty.
625 std::string templateName;
626
627 /// The template parameter values.
629
630 /// The property set.
632
633 /// The services property sets.
634 /// It's only valid to set these property sets when the template is an IceBox server template.
636
637 /// Creates a tuple with all the fields of this struct.
638 /// @return A tuple with all the fields of this struct.
639 [[nodiscard]] std::tuple<const std::string&, const ::IceGrid::StringStringDict&, const ::IceGrid::PropertySetDescriptor&, const ::IceGrid::PropertySetDescriptorDict&> ice_tuple() const
640 {
642 }
643
644 /// Outputs the name and value of each field of this instance to the stream.
645 /// @param os The output stream.
646 ICEGRID_API void ice_printFields(std::ostream& os) const;
647 };
648
649 /// Outputs the description of a ServerInstanceDescriptor to a stream, including all its fields.
650 /// @param os The output stream.
651 /// @param value The instance to output.
652 /// @return The output stream.
653 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ServerInstanceDescriptor& value);
654
655 /// Describes a template for a server or an IceBox service.
656 /// @headerfile IceGrid/IceGrid.h
658 {
659 /// The communicator.
661
662 /// The parameters required to instantiate the template.
664
665 /// The parameters' default values.
667
668 /// Creates a tuple with all the fields of this struct.
669 /// @return A tuple with all the fields of this struct.
670 [[nodiscard]] std::tuple<const ::IceGrid::CommunicatorDescriptorPtr&, const ::Ice::StringSeq&, const ::IceGrid::StringStringDict&> ice_tuple() const
671 {
672 return std::tie(descriptor, parameters, parameterDefaults);
673 }
674
675 /// Outputs the name and value of each field of this instance to the stream.
676 /// @param os The output stream.
677 ICEGRID_API void ice_printFields(std::ostream& os) const;
678 };
679
680 /// Outputs the description of a TemplateDescriptor to a stream, including all its fields.
681 /// @param os The output stream.
682 /// @param value The instance to output.
683 /// @return The output stream.
684 ICEGRID_API std::ostream& operator<<(std::ostream& os, const TemplateDescriptor& value);
685
686 /// Describes an IceBox service.
687 /// @headerfile IceGrid/IceGrid.h
689 {
690 /// The template used by this instance. It's empty when this instance does not use a template.
691 std::string templateName;
692
693 /// The template parameter values.
695
696 /// The service definition if the instance isn't a template instance (i.e.: if the template attribute is empty).
698
699 /// The property set.
701
702 /// Creates a tuple with all the fields of this struct.
703 /// @return A tuple with all the fields of this struct.
704 [[nodiscard]] std::tuple<const std::string&, const ::IceGrid::StringStringDict&, const ::IceGrid::ServiceDescriptorPtr&, const ::IceGrid::PropertySetDescriptor&> ice_tuple() const
705 {
707 }
708
709 /// Outputs the name and value of each field of this instance to the stream.
710 /// @param os The output stream.
711 ICEGRID_API void ice_printFields(std::ostream& os) const;
712 };
713
714 /// Outputs the description of a ServiceInstanceDescriptor to a stream, including all its fields.
715 /// @param os The output stream.
716 /// @param value The instance to output.
717 /// @return The output stream.
718 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ServiceInstanceDescriptor& value);
719
720 /// Describes an IceBox server.
721 /// @headerfile IceGrid/IceGrid.h
722 class ICEGRID_API IceBoxDescriptor : public ServerDescriptor
723 {
724 public:
725 /// Default constructor.
726 IceBoxDescriptor() noexcept = default;
727
728 /// One-shot constructor to initialize all data members.
729 /// @param adapters The indirect object adapters.
730 /// @param propertySet The property set.
731 /// @param dbEnvs The database environments.
732 /// @param logs The path of each log file.
733 /// @param description A description of this descriptor.
734 /// @param id The server ID.
735 /// @param exe The path of the server executable.
736 /// @param iceVersion The Ice version used by this server.
737 /// @param pwd The path to the server working directory.
738 /// @param options The command line options to pass to the server executable.
739 /// @param envs The server environment variables.
740 /// @param activation The server activation mode.
741 /// @param activationTimeout The activation timeout.
742 /// @param deactivationTimeout The deactivation timeout.
743 /// @param applicationDistrib Specifies if the server depends on the application distribution.
744 /// @param distrib The distribution descriptor.
745 /// @param allocatable Specifies if the server is allocatable.
746 /// @param user The user account used to run the server.
747 /// @param services The service instances.
748 IceBoxDescriptor(::IceGrid::AdapterDescriptorSeq adapters, ::IceGrid::PropertySetDescriptor propertySet, ::IceGrid::DbEnvDescriptorSeq dbEnvs, ::Ice::StringSeq logs, std::string description, std::string id, std::string exe, std::string iceVersion, std::string pwd, ::Ice::StringSeq options, ::Ice::StringSeq envs, std::string activation, std::string activationTimeout, std::string deactivationTimeout, bool applicationDistrib, ::IceGrid::DistributionDescriptor distrib, bool allocatable, std::string user, ::IceGrid::ServiceInstanceDescriptorSeq services) noexcept :
749 ServerDescriptor(std::move(adapters), std::move(propertySet), std::move(dbEnvs), std::move(logs), std::move(description), std::move(id), std::move(exe), std::move(iceVersion), std::move(pwd), std::move(options), std::move(envs), std::move(activation), std::move(activationTimeout), std::move(deactivationTimeout), applicationDistrib, std::move(distrib), allocatable, std::move(user)),
750 services(std::move(services))
751 {
752 }
753
754 /// Gets the type ID of the associated Slice class.
755 /// @return The string `"::IceGrid::IceBoxDescriptor"`.
756 static const char* ice_staticId() noexcept;
757
758 [[nodiscard]] const char* ice_id() const noexcept override;
759
760 /// Creates a tuple with all the fields of this class.
761 /// @return A tuple with all the fields of this class.
762 [[nodiscard]] std::tuple<const ::IceGrid::AdapterDescriptorSeq&, const ::IceGrid::PropertySetDescriptor&, const ::IceGrid::DbEnvDescriptorSeq&, const ::Ice::StringSeq&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, const ::Ice::StringSeq&, const ::Ice::StringSeq&, const std::string&, const std::string&, const std::string&, const bool&, const ::IceGrid::DistributionDescriptor&, const bool&, const std::string&, const ::IceGrid::ServiceInstanceDescriptorSeq&> ice_tuple() const
763 {
765 }
766
767 /// Creates a shallow polymorphic copy of this instance.
768 /// @return The cloned value.
769 [[nodiscard]] IceBoxDescriptorPtr ice_clone() const { return std::static_pointer_cast<IceBoxDescriptor>(_iceCloneImpl()); }
770
771 void ice_printFields(std::ostream& os) const override;
772
773 /// The service instances.
775
776 protected:
777 /// Copy constructor.
779
780 /// @private
781 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
782
783 /// @private
784 void _iceWriteImpl(Ice::OutputStream*) const override;
785
786 /// @private
787 void _iceReadImpl(Ice::InputStream*) override;
788 };
789
790 /// Describes an IceGrid node.
791 /// @headerfile IceGrid/IceGrid.h
793 {
794 /// The variables defined for the node.
796
797 /// The server instances (template instances).
799
800 /// Servers that are not template instances.
802
803 /// Load factor of the node.
804 std::string loadFactor;
805
806 /// The description of this node.
807 std::string description;
808
809 /// Property set descriptors.
811
812 /// Creates a tuple with all the fields of this struct.
813 /// @return A tuple with all the fields of this struct.
814 [[nodiscard]] std::tuple<const ::IceGrid::StringStringDict&, const ::IceGrid::ServerInstanceDescriptorSeq&, const ::IceGrid::ServerDescriptorSeq&, const std::string&, const std::string&, const ::IceGrid::PropertySetDescriptorDict&> ice_tuple() const
815 {
817 }
818
819 /// Outputs the name and value of each field of this instance to the stream.
820 /// @param os The output stream.
821 ICEGRID_API void ice_printFields(std::ostream& os) const;
822 };
823
824 /// Outputs the description of a NodeDescriptor to a stream, including all its fields.
825 /// @param os The output stream.
826 /// @param value The instance to output.
827 /// @return The output stream.
828 ICEGRID_API std::ostream& operator<<(std::ostream& os, const NodeDescriptor& value);
829
830 /// The base class for load balancing policies.
831 /// @headerfile IceGrid/IceGrid.h
832 class ICEGRID_API LoadBalancingPolicy : public Ice::Value
833 {
834 public:
835 /// Default constructor.
836 LoadBalancingPolicy() noexcept = default;
837
838 /// One-shot constructor to initialize all data members.
839 /// @param nReplicas The number of replicas that will be used to gather the endpoints of a replica group.
840 explicit LoadBalancingPolicy(std::string nReplicas) noexcept :
841 nReplicas(std::move(nReplicas))
842 {
843 }
844
845 /// Gets the type ID of the associated Slice class.
846 /// @return The string `"::IceGrid::LoadBalancingPolicy"`.
847 static const char* ice_staticId() noexcept;
848
849 [[nodiscard]] const char* ice_id() const noexcept override;
850
851 /// Creates a tuple with all the fields of this class.
852 /// @return A tuple with all the fields of this class.
853 [[nodiscard]] std::tuple<const std::string&> ice_tuple() const
854 {
855 return std::tie(nReplicas);
856 }
857
858 /// Creates a shallow polymorphic copy of this instance.
859 /// @return The cloned value.
860 [[nodiscard]] LoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<LoadBalancingPolicy>(_iceCloneImpl()); }
861
862 void ice_printFields(std::ostream& os) const override;
863
864 /// The number of replicas that will be used to gather the endpoints of a replica group.
865 std::string nReplicas;
866
867 protected:
868 /// Copy constructor.
870
871 /// @private
872 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
873
874 /// @private
875 void _iceWriteImpl(Ice::OutputStream*) const override;
876
877 /// @private
878 void _iceReadImpl(Ice::InputStream*) override;
879 };
880
881 /// The load balancing policy that returns endpoints in a random order.
882 /// @headerfile IceGrid/IceGrid.h
884 {
886
887 /// Gets the type ID of the associated Slice class.
888 /// @return The string `"::IceGrid::RandomLoadBalancingPolicy"`.
889 static const char* ice_staticId() noexcept;
890
891 [[nodiscard]] const char* ice_id() const noexcept override;
892
893 /// Creates a shallow polymorphic copy of this instance.
894 /// @return The cloned value.
895 [[nodiscard]] RandomLoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<RandomLoadBalancingPolicy>(_iceCloneImpl()); }
896
897 protected:
898 /// Copy constructor.
900
901 /// @private
902 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
903
904 /// @private
905 void _iceWriteImpl(Ice::OutputStream*) const override;
906
907 /// @private
908 void _iceReadImpl(Ice::InputStream*) override;
909 };
910
911 /// The load balancing policy that returns endpoints in order.
912 /// @headerfile IceGrid/IceGrid.h
914 {
916
917 /// Gets the type ID of the associated Slice class.
918 /// @return The string `"::IceGrid::OrderedLoadBalancingPolicy"`.
919 static const char* ice_staticId() noexcept;
920
921 [[nodiscard]] const char* ice_id() const noexcept override;
922
923 /// Creates a shallow polymorphic copy of this instance.
924 /// @return The cloned value.
925 [[nodiscard]] OrderedLoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<OrderedLoadBalancingPolicy>(_iceCloneImpl()); }
926
927 protected:
928 /// Copy constructor.
930
931 /// @private
932 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
933
934 /// @private
935 void _iceWriteImpl(Ice::OutputStream*) const override;
936
937 /// @private
938 void _iceReadImpl(Ice::InputStream*) override;
939 };
940
941 /// The load balancing policy that returns endpoints using round-robin.
942 /// @headerfile IceGrid/IceGrid.h
944 {
946
947 /// Gets the type ID of the associated Slice class.
948 /// @return The string `"::IceGrid::RoundRobinLoadBalancingPolicy"`.
949 static const char* ice_staticId() noexcept;
950
951 [[nodiscard]] const char* ice_id() const noexcept override;
952
953 /// Creates a shallow polymorphic copy of this instance.
954 /// @return The cloned value.
955 [[nodiscard]] RoundRobinLoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<RoundRobinLoadBalancingPolicy>(_iceCloneImpl()); }
956
957 protected:
958 /// Copy constructor.
960
961 /// @private
962 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
963
964 /// @private
965 void _iceWriteImpl(Ice::OutputStream*) const override;
966
967 /// @private
968 void _iceReadImpl(Ice::InputStream*) override;
969 };
970
971 /// The load balancing policy that returns the endpoints of the server(s) with the lowest load average.
972 /// @headerfile IceGrid/IceGrid.h
974 {
975 public:
976 /// Default constructor.
977 AdaptiveLoadBalancingPolicy() noexcept = default;
978
979 /// One-shot constructor to initialize all data members.
980 /// @param nReplicas The number of replicas that will be used to gather the endpoints of a replica group.
981 /// @param loadSample The load sample to use for the load balancing.
982 AdaptiveLoadBalancingPolicy(std::string nReplicas, std::string loadSample) noexcept :
983 LoadBalancingPolicy(std::move(nReplicas)),
984 loadSample(std::move(loadSample))
985 {
986 }
987
988 /// Gets the type ID of the associated Slice class.
989 /// @return The string `"::IceGrid::AdaptiveLoadBalancingPolicy"`.
990 static const char* ice_staticId() noexcept;
991
992 [[nodiscard]] const char* ice_id() const noexcept override;
993
994 /// Creates a tuple with all the fields of this class.
995 /// @return A tuple with all the fields of this class.
996 [[nodiscard]] std::tuple<const std::string&, const std::string&> ice_tuple() const
997 {
998 return std::tie(nReplicas, loadSample);
999 }
1000
1001 /// Creates a shallow polymorphic copy of this instance.
1002 /// @return The cloned value.
1003 [[nodiscard]] AdaptiveLoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<AdaptiveLoadBalancingPolicy>(_iceCloneImpl()); }
1004
1005 void ice_printFields(std::ostream& os) const override;
1006
1007 /// The load sample to use for the load balancing. The allowed values for this attribute are "1", "5" and "15",
1008 /// representing respectively the load average over the past minute, the past 5 minutes and the past 15 minutes.
1009 std::string loadSample;
1010
1011 protected:
1012 /// Copy constructor.
1014
1015 /// @private
1016 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
1017
1018 /// @private
1019 void _iceWriteImpl(Ice::OutputStream*) const override;
1020
1021 /// @private
1022 void _iceReadImpl(Ice::InputStream*) override;
1023 };
1024
1025 /// Describes a replica group.
1026 /// @headerfile IceGrid/IceGrid.h
1028 {
1029 /// The replica group ID.
1030 std::string id;
1031
1032 /// The load balancing policy.
1034
1035 /// Default options for proxies created for the replica group.
1036 std::string proxyOptions;
1037
1038 /// The descriptors for the well-known objects.
1040
1041 /// The description of this replica group.
1042 std::string description;
1043
1044 /// The filter to use for this replica group.
1045 std::string filter;
1046
1047 /// Creates a tuple with all the fields of this struct.
1048 /// @return A tuple with all the fields of this struct.
1049 [[nodiscard]] std::tuple<const std::string&, const ::IceGrid::LoadBalancingPolicyPtr&, const std::string&, const ::IceGrid::ObjectDescriptorSeq&, const std::string&, const std::string&> ice_tuple() const
1050 {
1051 return std::tie(id, loadBalancing, proxyOptions, objects, description, filter);
1052 }
1053
1054 /// Outputs the name and value of each field of this instance to the stream.
1055 /// @param os The output stream.
1056 ICEGRID_API void ice_printFields(std::ostream& os) const;
1057 };
1058
1059 /// Outputs the description of a ReplicaGroupDescriptor to a stream, including all its fields.
1060 /// @param os The output stream.
1061 /// @param value The instance to output.
1062 /// @return The output stream.
1063 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ReplicaGroupDescriptor& value);
1064
1065 /// Describes an application.
1066 /// @headerfile IceGrid/IceGrid.h
1068 {
1069 /// The application name.
1070 std::string name;
1071
1072 /// The variables defined in the application descriptor.
1074
1075 /// The replica groups.
1077
1078 /// The server templates.
1080
1081 /// The service templates.
1083
1084 /// The node descriptors.
1086
1087 /// The application distribution.
1089
1090 /// The description of this application.
1091 std::string description;
1092
1093 /// Property set descriptors.
1095
1096 /// Creates a tuple with all the fields of this struct.
1097 /// @return A tuple with all the fields of this struct.
1098 [[nodiscard]] std::tuple<const std::string&, const ::IceGrid::StringStringDict&, const ::IceGrid::ReplicaGroupDescriptorSeq&, const ::IceGrid::TemplateDescriptorDict&, const ::IceGrid::TemplateDescriptorDict&, const ::IceGrid::NodeDescriptorDict&, const ::IceGrid::DistributionDescriptor&, const std::string&, const ::IceGrid::PropertySetDescriptorDict&> ice_tuple() const
1099 {
1101 }
1102
1103 /// Outputs the name and value of each field of this instance to the stream.
1104 /// @param os The output stream.
1105 ICEGRID_API void ice_printFields(std::ostream& os) const;
1106 };
1107
1108 /// Outputs the description of an ApplicationDescriptor to a stream, including all its fields.
1109 /// @param os The output stream.
1110 /// @param value The instance to output.
1111 /// @return The output stream.
1112 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ApplicationDescriptor& value);
1113
1114 /// A "boxed" string.
1115 /// @headerfile IceGrid/IceGrid.h
1116 class ICEGRID_API BoxedString : public Ice::Value
1117 {
1118 public:
1119 /// Default constructor.
1120 BoxedString() noexcept = default;
1121
1122 /// One-shot constructor to initialize all data members.
1123 /// @param value The value of the boxed string.
1124 explicit BoxedString(std::string value) noexcept :
1125 value(std::move(value))
1126 {
1127 }
1128
1129 /// Gets the type ID of the associated Slice class.
1130 /// @return The string `"::IceGrid::BoxedString"`.
1131 static const char* ice_staticId() noexcept;
1132
1133 [[nodiscard]] const char* ice_id() const noexcept override;
1134
1135 /// Creates a tuple with all the fields of this class.
1136 /// @return A tuple with all the fields of this class.
1137 [[nodiscard]] std::tuple<const std::string&> ice_tuple() const
1138 {
1139 return std::tie(value);
1140 }
1141
1142 /// Creates a shallow polymorphic copy of this instance.
1143 /// @return The cloned value.
1144 [[nodiscard]] BoxedStringPtr ice_clone() const { return std::static_pointer_cast<BoxedString>(_iceCloneImpl()); }
1145
1146 void ice_printFields(std::ostream& os) const override;
1147
1148 /// The value of the boxed string.
1149 std::string value;
1150
1151 protected:
1152 /// Copy constructor.
1153 BoxedString(const BoxedString&) = default;
1154
1155 /// @private
1156 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
1157
1158 /// @private
1159 void _iceWriteImpl(Ice::OutputStream*) const override;
1160
1161 /// @private
1162 void _iceReadImpl(Ice::InputStream*) override;
1163 };
1164
1165 /// Describes the updates to apply to a node in a deployed application.
1166 /// @headerfile IceGrid/IceGrid.h
1168 {
1169 /// The name of the node to update.
1170 std::string name;
1171
1172 /// The updated description (or null if the description wasn't updated.)
1174
1175 /// The variables to update.
1177
1178 /// The variables to remove.
1180
1181 /// The property sets to update.
1183
1184 /// The property sets to remove.
1186
1187 /// The server instances to update.
1189
1190 /// The servers which are not template instances to update.
1192
1193 /// The IDs of the servers to remove.
1195
1196 /// The updated load factor of the node (or null if the load factor was not updated).
1198
1199 /// Creates a tuple with all the fields of this struct.
1200 /// @return A tuple with all the fields of this struct.
1201 [[nodiscard]] std::tuple<const std::string&, const ::IceGrid::BoxedStringPtr&, const ::IceGrid::StringStringDict&, const ::Ice::StringSeq&, const ::IceGrid::PropertySetDescriptorDict&, const ::Ice::StringSeq&, const ::IceGrid::ServerInstanceDescriptorSeq&, const ::IceGrid::ServerDescriptorSeq&, const ::Ice::StringSeq&, const ::IceGrid::BoxedStringPtr&> ice_tuple() const
1202 {
1204 }
1205
1206 /// Outputs the name and value of each field of this instance to the stream.
1207 /// @param os The output stream.
1208 ICEGRID_API void ice_printFields(std::ostream& os) const;
1209 };
1210
1211 /// Outputs the description of a NodeUpdateDescriptor to a stream, including all its fields.
1212 /// @param os The output stream.
1213 /// @param value The instance to output.
1214 /// @return The output stream.
1215 ICEGRID_API std::ostream& operator<<(std::ostream& os, const NodeUpdateDescriptor& value);
1216
1217 /// A "boxed" distribution descriptor.
1218 /// @headerfile IceGrid/IceGrid.h
1219 class ICEGRID_API [[deprecated]] BoxedDistributionDescriptor : public Ice::Value
1220 {
1221 public:
1222 /// Default constructor.
1223 BoxedDistributionDescriptor() noexcept = default;
1224
1225 /// One-shot constructor to initialize all data members.
1226 /// @param value The value of the boxed distribution descriptor.
1228 value(std::move(value))
1229 {
1230 }
1231
1232 /// Gets the type ID of the associated Slice class.
1233 /// @return The string `"::IceGrid::BoxedDistributionDescriptor"`.
1234 static const char* ice_staticId() noexcept;
1235
1236 [[nodiscard]] const char* ice_id() const noexcept override;
1237
1238 /// Creates a tuple with all the fields of this class.
1239 /// @return A tuple with all the fields of this class.
1240 [[nodiscard]] std::tuple<const ::IceGrid::DistributionDescriptor&> ice_tuple() const
1241 {
1242 return std::tie(value);
1243 }
1244
1245 /// Creates a shallow polymorphic copy of this instance.
1246 /// @return The cloned value.
1247 [[nodiscard]] BoxedDistributionDescriptorPtr ice_clone() const { return std::static_pointer_cast<BoxedDistributionDescriptor>(_iceCloneImpl()); }
1248
1249 void ice_printFields(std::ostream& os) const override;
1250
1251 /// The value of the boxed distribution descriptor.
1253
1254 protected:
1255 /// Copy constructor.
1257
1258 /// @private
1259 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
1260
1261 /// @private
1262 void _iceWriteImpl(Ice::OutputStream*) const override;
1263
1264 /// @private
1265 void _iceReadImpl(Ice::InputStream*) override;
1266 };
1267
1268 /// An application update descriptor to describe the updates to apply to a deployed application.
1269 /// @headerfile IceGrid/IceGrid.h
1271 {
1272 /// The name of the application to update.
1273 std::string name;
1274
1275 /// The updated description (or null if the description wasn't updated).
1277
1278 /// The updated distribution application descriptor.
1279 [[deprecated]] ::IceGrid::BoxedDistributionDescriptorPtr distrib;
1280
1281 /// The variables to update.
1283
1284 /// The variables to remove.
1286
1287 /// The property sets to update.
1289
1290 /// The property sets to remove.
1292
1293 /// The replica groups to update.
1295
1296 /// The replica groups to remove.
1298
1299 /// The server templates to update.
1301
1302 /// The IDs of the server template to remove.
1304
1305 /// The service templates to update.
1307
1308 /// The IDs of the service template to remove.
1310
1311 /// The application nodes to update.
1313
1314 /// The nodes to remove.
1316
1317 /// Creates a tuple with all the fields of this struct.
1318 /// @return A tuple with all the fields of this struct.
1319 [[nodiscard]] std::tuple<const std::string&, const ::IceGrid::BoxedStringPtr&, const ::IceGrid::BoxedDistributionDescriptorPtr&, const ::IceGrid::StringStringDict&, const ::Ice::StringSeq&, const ::IceGrid::PropertySetDescriptorDict&, const ::Ice::StringSeq&, const ::IceGrid::ReplicaGroupDescriptorSeq&, const ::Ice::StringSeq&, const ::IceGrid::TemplateDescriptorDict&, const ::Ice::StringSeq&, const ::IceGrid::TemplateDescriptorDict&, const ::Ice::StringSeq&, const ::IceGrid::NodeUpdateDescriptorSeq&, const ::Ice::StringSeq&> ice_tuple() const
1320 {
1322 }
1323
1324 /// Outputs the name and value of each field of this instance to the stream.
1325 /// @param os The output stream.
1326 ICEGRID_API void ice_printFields(std::ostream& os) const;
1327 };
1328
1329 /// Outputs the description of an ApplicationUpdateDescriptor to a stream, including all its fields.
1330 /// @param os The output stream.
1331 /// @param value The instance to output.
1332 /// @return The output stream.
1333 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ApplicationUpdateDescriptor& value);
1334
1335 /// @cond INTERNAL
1336 using Ice::Tuple::operator<;
1337 using Ice::Tuple::operator<=;
1338 using Ice::Tuple::operator>;
1339 using Ice::Tuple::operator>=;
1340 using Ice::Tuple::operator==;
1341 using Ice::Tuple::operator!=;
1342 /// @endcond
1343}
1344
1345namespace Ice
1346{
1347 /// @cond INTERNAL
1348 template<>
1349 struct StreamableTraits<::IceGrid::PropertyDescriptor>
1350 {
1352 static constexpr int minWireSize = 2;
1353 static constexpr bool fixedLength = false;
1354 };
1355
1356 template<>
1357 struct StreamReader<::IceGrid::PropertyDescriptor>
1358 {
1359 /// Unmarshals a ::IceGrid::PropertyDescriptor from the input stream.
1360 static void read(InputStream* istr, ::IceGrid::PropertyDescriptor& v)
1361 {
1362 istr->readAll(v.name, v.value);
1363 }
1364 };
1365 /// @endcond
1366
1367 /// @cond INTERNAL
1368 template<>
1369 struct StreamableTraits<::IceGrid::PropertySetDescriptor>
1370 {
1372 static constexpr int minWireSize = 2;
1373 static constexpr bool fixedLength = false;
1374 };
1375
1376 template<>
1377 struct StreamReader<::IceGrid::PropertySetDescriptor>
1378 {
1379 /// Unmarshals a ::IceGrid::PropertySetDescriptor from the input stream.
1380 static void read(InputStream* istr, ::IceGrid::PropertySetDescriptor& v)
1381 {
1382 istr->readAll(v.references, v.properties);
1383 }
1384 };
1385 /// @endcond
1386
1387 /// @cond INTERNAL
1388 template<>
1389 struct StreamableTraits<::IceGrid::ObjectDescriptor>
1390 {
1392 static constexpr int minWireSize = 4;
1393 static constexpr bool fixedLength = false;
1394 };
1395
1396 template<>
1397 struct StreamReader<::IceGrid::ObjectDescriptor>
1398 {
1399 /// Unmarshals a ::IceGrid::ObjectDescriptor from the input stream.
1400 static void read(InputStream* istr, ::IceGrid::ObjectDescriptor& v)
1401 {
1402 istr->readAll(v.id, v.type, v.proxyOptions);
1403 }
1404 };
1405 /// @endcond
1406
1407 /// @cond INTERNAL
1408 template<>
1409 struct StreamableTraits<::IceGrid::AdapterDescriptor>
1410 {
1412 static constexpr int minWireSize = 9;
1413 static constexpr bool fixedLength = false;
1414 };
1415
1416 template<>
1417 struct StreamReader<::IceGrid::AdapterDescriptor>
1418 {
1419 /// Unmarshals a ::IceGrid::AdapterDescriptor from the input stream.
1420 static void read(InputStream* istr, ::IceGrid::AdapterDescriptor& v)
1421 {
1423 }
1424 };
1425 /// @endcond
1426
1427 /// @cond INTERNAL
1428 template<>
1429 struct StreamableTraits<::IceGrid::DbEnvDescriptor>
1430 {
1432 static constexpr int minWireSize = 4;
1433 static constexpr bool fixedLength = false;
1434 };
1435
1436 template<>
1437 struct StreamReader<::IceGrid::DbEnvDescriptor>
1438 {
1439 /// Unmarshals a ::IceGrid::DbEnvDescriptor from the input stream.
1440 static void read(InputStream* istr, ::IceGrid::DbEnvDescriptor& v)
1441 {
1442 istr->readAll(v.name, v.description, v.dbHome, v.properties);
1443 }
1444 };
1445 /// @endcond
1446
1447 /// @cond INTERNAL
1448 template<>
1449 struct StreamableTraits<::IceGrid::DistributionDescriptor>
1450 {
1452 static constexpr int minWireSize = 2;
1453 static constexpr bool fixedLength = false;
1454 };
1455
1456 template<>
1457 struct StreamReader<::IceGrid::DistributionDescriptor>
1458 {
1459 /// Unmarshals a ::IceGrid::DistributionDescriptor from the input stream.
1460 static void read(InputStream* istr, ::IceGrid::DistributionDescriptor& v)
1461 {
1462 istr->readAll(v.icepatch, v.directories);
1463 }
1464 };
1465 /// @endcond
1466
1467 /// @cond INTERNAL
1468 template<>
1469 struct StreamableTraits<::IceGrid::ServerInstanceDescriptor>
1470 {
1472 static constexpr int minWireSize = 5;
1473 static constexpr bool fixedLength = false;
1474 };
1475
1476 template<>
1477 struct StreamReader<::IceGrid::ServerInstanceDescriptor>
1478 {
1479 /// Unmarshals a ::IceGrid::ServerInstanceDescriptor from the input stream.
1480 static void read(InputStream* istr, ::IceGrid::ServerInstanceDescriptor& v)
1481 {
1483 }
1484 };
1485 /// @endcond
1486
1487 /// @cond INTERNAL
1488 template<>
1489 struct StreamableTraits<::IceGrid::TemplateDescriptor>
1490 {
1492 static constexpr int minWireSize = 3;
1493 static constexpr bool fixedLength = false;
1494 };
1495
1496 template<>
1497 struct StreamReader<::IceGrid::TemplateDescriptor>
1498 {
1499 /// Unmarshals a ::IceGrid::TemplateDescriptor from the input stream.
1500 static void read(InputStream* istr, ::IceGrid::TemplateDescriptor& v)
1501 {
1502 istr->readAll(v.descriptor, v.parameters, v.parameterDefaults);
1503 }
1504 };
1505 /// @endcond
1506
1507 /// @cond INTERNAL
1508 template<>
1509 struct StreamableTraits<::IceGrid::ServiceInstanceDescriptor>
1510 {
1512 static constexpr int minWireSize = 5;
1513 static constexpr bool fixedLength = false;
1514 };
1515
1516 template<>
1517 struct StreamReader<::IceGrid::ServiceInstanceDescriptor>
1518 {
1519 /// Unmarshals a ::IceGrid::ServiceInstanceDescriptor from the input stream.
1520 static void read(InputStream* istr, ::IceGrid::ServiceInstanceDescriptor& v)
1521 {
1522 istr->readAll(v.templateName, v.parameterValues, v.descriptor, v.propertySet);
1523 }
1524 };
1525 /// @endcond
1526
1527 /// @cond INTERNAL
1528 template<>
1529 struct StreamableTraits<::IceGrid::NodeDescriptor>
1530 {
1532 static constexpr int minWireSize = 6;
1533 static constexpr bool fixedLength = false;
1534 };
1535
1536 template<>
1537 struct StreamReader<::IceGrid::NodeDescriptor>
1538 {
1539 /// Unmarshals a ::IceGrid::NodeDescriptor from the input stream.
1540 static void read(InputStream* istr, ::IceGrid::NodeDescriptor& v)
1541 {
1542 istr->readAll(v.variables, v.serverInstances, v.servers, v.loadFactor, v.description, v.propertySets);
1543 }
1544 };
1545 /// @endcond
1546
1547 /// @cond INTERNAL
1548 template<>
1549 struct StreamableTraits<::IceGrid::ReplicaGroupDescriptor>
1550 {
1552 static constexpr int minWireSize = 6;
1553 static constexpr bool fixedLength = false;
1554 };
1555
1556 template<>
1557 struct StreamReader<::IceGrid::ReplicaGroupDescriptor>
1558 {
1559 /// Unmarshals a ::IceGrid::ReplicaGroupDescriptor from the input stream.
1560 static void read(InputStream* istr, ::IceGrid::ReplicaGroupDescriptor& v)
1561 {
1562 istr->readAll(v.id, v.loadBalancing, v.proxyOptions, v.objects, v.description, v.filter);
1563 }
1564 };
1565 /// @endcond
1566
1567 /// @cond INTERNAL
1568 template<>
1569 struct StreamableTraits<::IceGrid::ApplicationDescriptor>
1570 {
1572 static constexpr int minWireSize = 10;
1573 static constexpr bool fixedLength = false;
1574 };
1575
1576 template<>
1577 struct StreamReader<::IceGrid::ApplicationDescriptor>
1578 {
1579 /// Unmarshals a ::IceGrid::ApplicationDescriptor from the input stream.
1580 static void read(InputStream* istr, ::IceGrid::ApplicationDescriptor& v)
1581 {
1583 }
1584 };
1585 /// @endcond
1586
1587 /// @cond INTERNAL
1588 template<>
1589 struct StreamableTraits<::IceGrid::NodeUpdateDescriptor>
1590 {
1592 static constexpr int minWireSize = 10;
1593 static constexpr bool fixedLength = false;
1594 };
1595
1596 template<>
1597 struct StreamReader<::IceGrid::NodeUpdateDescriptor>
1598 {
1599 /// Unmarshals a ::IceGrid::NodeUpdateDescriptor from the input stream.
1600 static void read(InputStream* istr, ::IceGrid::NodeUpdateDescriptor& v)
1601 {
1603 }
1604 };
1605 /// @endcond
1606
1607 /// @cond INTERNAL
1608 template<>
1609 struct StreamableTraits<::IceGrid::ApplicationUpdateDescriptor>
1610 {
1612 static constexpr int minWireSize = 15;
1613 static constexpr bool fixedLength = false;
1614 };
1615
1616 template<>
1617 struct StreamReader<::IceGrid::ApplicationUpdateDescriptor>
1618 {
1619 /// Unmarshals a ::IceGrid::ApplicationUpdateDescriptor from the input stream.
1620 static void read(InputStream* istr, ::IceGrid::ApplicationUpdateDescriptor& v)
1621 {
1623 }
1624 };
1625 /// @endcond
1626}
1627
1628// NOLINTEND(modernize-concat-nested-namespaces)
1629
1630#include <Ice/PopDisableWarnings.h>
1631#endif
AdaptiveLoadBalancingPolicyPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
AdaptiveLoadBalancingPolicy(const AdaptiveLoadBalancingPolicy &)=default
Copy constructor.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
std::tuple< const std::string &, const std::string & > ice_tuple() const
Creates a tuple with all the fields of this class.
Definition Descriptor.h:996
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
std::string loadSample
The load sample to use for the load balancing.
AdaptiveLoadBalancingPolicy() noexcept=default
Default constructor.
The load balancing policy that returns the endpoints of the server(s) with the lowest load average.
Definition Descriptor.h:974
BoxedDistributionDescriptor() noexcept=default
Default constructor.
std::tuple< const ::IceGrid::DistributionDescriptor & > ice_tuple() const
Creates a tuple with all the fields of this class.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
::IceGrid::DistributionDescriptor value
The value of the boxed distribution descriptor.
BoxedDistributionDescriptor(const BoxedDistributionDescriptor &)=default
Copy constructor.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
BoxedDistributionDescriptorPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
A "boxed" distribution descriptor.
std::tuple< const std::string & > ice_tuple() const
Creates a tuple with all the fields of this class.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
std::string value
The value of the boxed string.
BoxedStringPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
BoxedString() noexcept=default
Default constructor.
BoxedString(const BoxedString &)=default
Copy constructor.
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
A "boxed" string.
::IceGrid::AdapterDescriptorSeq adapters
The indirect object adapters.
Definition Descriptor.h:381
std::string description
A description of this descriptor.
Definition Descriptor.h:393
CommunicatorDescriptorPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:376
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
::IceGrid::DbEnvDescriptorSeq dbEnvs
The database environments.
Definition Descriptor.h:387
::Ice::StringSeq logs
The path of each log file.
Definition Descriptor.h:390
CommunicatorDescriptor(const CommunicatorDescriptor &)=default
Copy constructor.
std::tuple< const ::IceGrid::AdapterDescriptorSeq &, const ::IceGrid::PropertySetDescriptor &, const ::IceGrid::DbEnvDescriptorSeq &, const ::Ice::StringSeq &, const std::string & > ice_tuple() const
Creates a tuple with all the fields of this class.
Definition Descriptor.h:369
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
CommunicatorDescriptor() noexcept=default
Default constructor.
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
::IceGrid::PropertySetDescriptor propertySet
The property set.
Definition Descriptor.h:384
Describes an Ice communicator.
Definition Descriptor.h:341
IceBoxDescriptor() noexcept=default
Default constructor.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
::IceGrid::ServiceInstanceDescriptorSeq services
The service instances.
Definition Descriptor.h:774
std::tuple< const ::IceGrid::AdapterDescriptorSeq &, const ::IceGrid::PropertySetDescriptor &, const ::IceGrid::DbEnvDescriptorSeq &, const ::Ice::StringSeq &, const std::string &, const std::string &, const std::string &, const std::string &, const std::string &, const ::Ice::StringSeq &, const ::Ice::StringSeq &, const std::string &, const std::string &, const std::string &, const bool &, const ::IceGrid::DistributionDescriptor &, const bool &, const std::string &, const ::IceGrid::ServiceInstanceDescriptorSeq & > ice_tuple() const
Creates a tuple with all the fields of this class.
Definition Descriptor.h:762
IceBoxDescriptorPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:769
IceBoxDescriptor(const IceBoxDescriptor &)=default
Copy constructor.
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
Describes an IceBox server.
Definition Descriptor.h:723
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
LoadBalancingPolicy(const LoadBalancingPolicy &)=default
Copy constructor.
LoadBalancingPolicyPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:860
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
LoadBalancingPolicy() noexcept=default
Default constructor.
std::string nReplicas
The number of replicas that will be used to gather the endpoints of a replica group.
Definition Descriptor.h:865
std::tuple< const std::string & > ice_tuple() const
Creates a tuple with all the fields of this class.
Definition Descriptor.h:853
The base class for load balancing policies.
Definition Descriptor.h:833
OrderedLoadBalancingPolicyPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:925
LoadBalancingPolicy() noexcept=default
Default constructor.
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
OrderedLoadBalancingPolicy(const OrderedLoadBalancingPolicy &)=default
Copy constructor.
The load balancing policy that returns endpoints in order.
Definition Descriptor.h:914
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
RandomLoadBalancingPolicy(const RandomLoadBalancingPolicy &)=default
Copy constructor.
LoadBalancingPolicy() noexcept=default
Default constructor.
RandomLoadBalancingPolicyPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:895
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
The load balancing policy that returns endpoints in a random order.
Definition Descriptor.h:884
LoadBalancingPolicy() noexcept=default
Default constructor.
RoundRobinLoadBalancingPolicy(const RoundRobinLoadBalancingPolicy &)=default
Copy constructor.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
RoundRobinLoadBalancingPolicyPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:955
The load balancing policy that returns endpoints using round-robin.
Definition Descriptor.h:944
::IceGrid::DistributionDescriptor distrib
The distribution descriptor.
Definition Descriptor.h:536
std::string exe
The path of the server executable.
Definition Descriptor.h:505
std::string iceVersion
The Ice version used by this server.
Definition Descriptor.h:510
bool allocatable
Specifies if the server is allocatable.
Definition Descriptor.h:539
::Ice::StringSeq envs
The server environment variables.
Definition Descriptor.h:519
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
std::string activationTimeout
The activation timeout.
Definition Descriptor.h:526
std::string deactivationTimeout
The deactivation timeout.
Definition Descriptor.h:530
ServerDescriptorPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:497
::Ice::StringSeq options
The command line options to pass to the server executable.
Definition Descriptor.h:516
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
ServerDescriptor() noexcept=default
Default constructor.
bool applicationDistrib
Specifies if the server depends on the application distribution.
Definition Descriptor.h:533
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
std::string user
The user account used to run the server.
Definition Descriptor.h:542
std::string pwd
The path to the server working directory.
Definition Descriptor.h:513
std::string activation
The server activation mode. Possible values are "on-demand" and "manual".
Definition Descriptor.h:522
ServerDescriptor(const ServerDescriptor &)=default
Copy constructor.
std::string id
The server ID.
Definition Descriptor.h:502
std::tuple< const ::IceGrid::AdapterDescriptorSeq &, const ::IceGrid::PropertySetDescriptor &, const ::IceGrid::DbEnvDescriptorSeq &, const ::Ice::StringSeq &, const std::string &, const std::string &, const std::string &, const std::string &, const std::string &, const ::Ice::StringSeq &, const ::Ice::StringSeq &, const std::string &, const std::string &, const std::string &, const bool &, const ::IceGrid::DistributionDescriptor &, const bool &, const std::string & > ice_tuple() const
Creates a tuple with all the fields of this class.
Definition Descriptor.h:490
Describes an Ice server.
Definition Descriptor.h:440
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
ServiceDescriptor() noexcept=default
Default constructor.
const char * ice_id() const noexcept override
Gets the Slice type ID of the most-derived class supported by this object.
std::string entry
The entry point of the IceBox service.
Definition Descriptor.h:604
ServiceDescriptor(const ServiceDescriptor &)=default
Copy constructor.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
std::string name
The service name.
Definition Descriptor.h:601
std::tuple< const ::IceGrid::AdapterDescriptorSeq &, const ::IceGrid::PropertySetDescriptor &, const ::IceGrid::DbEnvDescriptorSeq &, const ::Ice::StringSeq &, const std::string &, const std::string &, const std::string & > ice_tuple() const
Creates a tuple with all the fields of this class.
Definition Descriptor.h:589
ServiceDescriptorPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:596
Describes an IceBox service.
Definition Descriptor.h:561
Represents a byte buffer used for unmarshaling data encoded using the Slice encoding.
Definition InputStream.h:50
Represents a byte buffer used for marshaling data using the Slice encoding.
The base class for instances of Slice-defined classes.
Definition Value.h:22
std::shared_ptr< LoadBalancingPolicy > LoadBalancingPolicyPtr
A shared pointer to a LoadBalancingPolicy.
Definition Descriptor.h:113
std::vector< ServiceInstanceDescriptor > ServiceInstanceDescriptorSeq
A sequence of ServiceInstanceDescriptor.
Definition Descriptor.h:98
std::map< std::string, std::string > StringStringDict
A mapping of string to string.
Definition Descriptor.h:35
std::vector< ObjectDescriptor > ObjectDescriptorSeq
A sequence of ObjectDescriptor.
Definition Descriptor.h:50
std::map< std::string, NodeDescriptor > NodeDescriptorDict
Mapping of node name to node descriptor.
Definition Descriptor.h:108
std::ostream & operator<<(std::ostream &os, ServerState value)
Outputs the enumerator name or underlying value of a ServerState to a stream.
std::vector< ServerInstanceDescriptor > ServerInstanceDescriptorSeq
A sequence of ServerInstanceDescriptor.
Definition Descriptor.h:88
std::vector< ReplicaGroupDescriptor > ReplicaGroupDescriptorSeq
A sequence of ReplicaGroupDescriptor.
Definition Descriptor.h:138
std::shared_ptr< RoundRobinLoadBalancingPolicy > RoundRobinLoadBalancingPolicyPtr
A shared pointer to a RoundRobinLoadBalancingPolicy.
Definition Descriptor.h:128
std::shared_ptr< IceBoxDescriptor > IceBoxDescriptorPtr
A shared pointer to an IceBoxDescriptor.
Definition Descriptor.h:103
std::shared_ptr< AdaptiveLoadBalancingPolicy > AdaptiveLoadBalancingPolicyPtr
A shared pointer to an AdaptiveLoadBalancingPolicy.
Definition Descriptor.h:133
std::map< std::string, TemplateDescriptor > TemplateDescriptorDict
A mapping of template identifier to template descriptor.
Definition Descriptor.h:93
std::shared_ptr< ServiceDescriptor > ServiceDescriptorPtr
A shared pointer to a ServiceDescriptor.
Definition Descriptor.h:80
std::vector< ServerDescriptorPtr > ServerDescriptorSeq
A sequence of ServerDescriptor.
Definition Descriptor.h:75
std::vector< ServiceDescriptorPtr > ServiceDescriptorSeq
A sequence of ServiceDescriptor.
Definition Descriptor.h:83
std::shared_ptr< ServerDescriptor > ServerDescriptorPtr
A shared pointer to a ServerDescriptor.
Definition Descriptor.h:72
std::vector< NodeUpdateDescriptor > NodeUpdateDescriptorSeq
A sequence of NodeUpdateDescriptor.
Definition Descriptor.h:153
std::vector< ApplicationDescriptor > ApplicationDescriptorSeq
A sequence of ApplicationDescriptor.
Definition Descriptor.h:143
std::vector< PropertyDescriptor > PropertyDescriptorSeq
A sequence of PropertyDescriptor.
Definition Descriptor.h:40
std::shared_ptr< CommunicatorDescriptor > CommunicatorDescriptorPtr
A shared pointer to a CommunicatorDescriptor.
Definition Descriptor.h:65
std::shared_ptr< OrderedLoadBalancingPolicy > OrderedLoadBalancingPolicyPtr
A shared pointer to an OrderedLoadBalancingPolicy.
Definition Descriptor.h:123
std::vector< AdapterDescriptor > AdapterDescriptorSeq
A sequence of AdapterDescriptor.
Definition Descriptor.h:55
std::shared_ptr< RandomLoadBalancingPolicy > RandomLoadBalancingPolicyPtr
A shared pointer to a RandomLoadBalancingPolicy.
Definition Descriptor.h:118
std::shared_ptr< BoxedString > BoxedStringPtr
A shared pointer to a BoxedString.
Definition Descriptor.h:148
std::map< std::string, PropertySetDescriptor > PropertySetDescriptorDict
A mapping of property set name to property set descriptor.
Definition Descriptor.h:45
Deploy and manage Ice servers.
Definition Admin.h:34
int StreamHelperCategory
The stream helper category allows to select a StreamHelper specialization for a specific category of ...
std::vector< std::string > StringSeq
A sequence of strings.
constexpr StreamHelperCategory StreamHelperCategoryStruct
Generated struct types.
std::shared_ptr< Value > ValuePtr
A shared pointer to a Value.
Definition ValueF.h:13
The Ice RPC framework.
Definition SampleEvent.h:59
bool serverLifetime
When true, the lifetime of this object adapter is the same of the server lifetime.
Definition Descriptor.h:278
::IceGrid::ObjectDescriptorSeq allocatables
The descriptors of allocatable objects.
Definition Descriptor.h:284
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
std::string description
A description of this object adapter.
Definition Descriptor.h:261
std::tuple< const std::string &, const std::string &, const std::string &, const std::string &, const std::string &, const bool &, const bool &, const ::IceGrid::ObjectDescriptorSeq &, const ::IceGrid::ObjectDescriptorSeq & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:288
::IceGrid::ObjectDescriptorSeq objects
The descriptors of well-known objects.
Definition Descriptor.h:281
std::string id
The adapter ID.
Definition Descriptor.h:264
bool registerProcess
When true, the object adapter registers a process object.
Definition Descriptor.h:273
std::string replicaGroupId
The replica group ID. It's empty when the adapter is not part of a replica group.
Definition Descriptor.h:267
std::string priority
The adapter priority. Only relevant when the adapter is in a replica group.
Definition Descriptor.h:270
std::string name
The object adapter name.
Definition Descriptor.h:258
Describes an indirect object adapter.
Definition Descriptor.h:256
::IceGrid::DistributionDescriptor distrib
The application distribution.
std::string description
The description of this application.
::IceGrid::TemplateDescriptorDict serviceTemplates
The service templates.
::IceGrid::PropertySetDescriptorDict propertySets
Property set descriptors.
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
::IceGrid::TemplateDescriptorDict serverTemplates
The server templates.
std::tuple< const std::string &, const ::IceGrid::StringStringDict &, const ::IceGrid::ReplicaGroupDescriptorSeq &, const ::IceGrid::TemplateDescriptorDict &, const ::IceGrid::TemplateDescriptorDict &, const ::IceGrid::NodeDescriptorDict &, const ::IceGrid::DistributionDescriptor &, const std::string &, const ::IceGrid::PropertySetDescriptorDict & > ice_tuple() const
Creates a tuple with all the fields of this struct.
std::string name
The application name.
::IceGrid::NodeDescriptorDict nodes
The node descriptors.
::IceGrid::ReplicaGroupDescriptorSeq replicaGroups
The replica groups.
::IceGrid::StringStringDict variables
The variables defined in the application descriptor.
Describes an application.
::Ice::StringSeq removePropertySets
The property sets to remove.
::IceGrid::TemplateDescriptorDict serviceTemplates
The service templates to update.
::IceGrid::BoxedStringPtr description
The updated description (or null if the description wasn't updated).
::IceGrid::TemplateDescriptorDict serverTemplates
The server templates to update.
::IceGrid::PropertySetDescriptorDict propertySets
The property sets to update.
std::string name
The name of the application to update.
::Ice::StringSeq removeServiceTemplates
The IDs of the service template to remove.
::IceGrid::StringStringDict variables
The variables to update.
::IceGrid::ReplicaGroupDescriptorSeq replicaGroups
The replica groups to update.
::IceGrid::NodeUpdateDescriptorSeq nodes
The application nodes to update.
std::tuple< const std::string &, const ::IceGrid::BoxedStringPtr &, const ::IceGrid::BoxedDistributionDescriptorPtr &, const ::IceGrid::StringStringDict &, const ::Ice::StringSeq &, const ::IceGrid::PropertySetDescriptorDict &, const ::Ice::StringSeq &, const ::IceGrid::ReplicaGroupDescriptorSeq &, const ::Ice::StringSeq &, const ::IceGrid::TemplateDescriptorDict &, const ::Ice::StringSeq &, const ::IceGrid::TemplateDescriptorDict &, const ::Ice::StringSeq &, const ::IceGrid::NodeUpdateDescriptorSeq &, const ::Ice::StringSeq & > ice_tuple() const
Creates a tuple with all the fields of this struct.
::Ice::StringSeq removeReplicaGroups
The replica groups to remove.
::IceGrid::BoxedDistributionDescriptorPtr distrib
The updated distribution application descriptor.
::Ice::StringSeq removeServerTemplates
The IDs of the server template to remove.
::Ice::StringSeq removeNodes
The nodes to remove.
::Ice::StringSeq removeVariables
The variables to remove.
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
An application update descriptor to describe the updates to apply to a deployed application.
std::tuple< const std::string &, const std::string &, const std::string &, const ::IceGrid::PropertyDescriptorSeq & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:322
std::string name
The name of the database environment.
Definition Descriptor.h:309
std::string description
The description of this database environment.
Definition Descriptor.h:312
std::string dbHome
The home of the database environment.
Definition Descriptor.h:315
::IceGrid::PropertyDescriptorSeq properties
The configuration properties of the database environment.
Definition Descriptor.h:318
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
A Freeze database environment descriptor (deprecated, no longer used).
Definition Descriptor.h:307
std::string icepatch
The proxy of the IcePatch2 server.
Definition Descriptor.h:414
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
::Ice::StringSeq directories
The source directories.
Definition Descriptor.h:417
std::tuple< const std::string &, const ::Ice::StringSeq & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:421
Describes a distribution.
Definition Descriptor.h:412
::IceGrid::StringStringDict variables
The variables defined for the node.
Definition Descriptor.h:795
std::string description
The description of this node.
Definition Descriptor.h:807
std::tuple< const ::IceGrid::StringStringDict &, const ::IceGrid::ServerInstanceDescriptorSeq &, const ::IceGrid::ServerDescriptorSeq &, const std::string &, const std::string &, const ::IceGrid::PropertySetDescriptorDict & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:814
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
std::string loadFactor
Load factor of the node.
Definition Descriptor.h:804
::IceGrid::PropertySetDescriptorDict propertySets
Property set descriptors.
Definition Descriptor.h:810
::IceGrid::ServerDescriptorSeq servers
Servers that are not template instances.
Definition Descriptor.h:801
::IceGrid::ServerInstanceDescriptorSeq serverInstances
The server instances (template instances).
Definition Descriptor.h:798
Describes an IceGrid node.
Definition Descriptor.h:793
::IceGrid::StringStringDict variables
The variables to update.
std::tuple< const std::string &, const ::IceGrid::BoxedStringPtr &, const ::IceGrid::StringStringDict &, const ::Ice::StringSeq &, const ::IceGrid::PropertySetDescriptorDict &, const ::Ice::StringSeq &, const ::IceGrid::ServerInstanceDescriptorSeq &, const ::IceGrid::ServerDescriptorSeq &, const ::Ice::StringSeq &, const ::IceGrid::BoxedStringPtr & > ice_tuple() const
Creates a tuple with all the fields of this struct.
::IceGrid::PropertySetDescriptorDict propertySets
The property sets to update.
::IceGrid::BoxedStringPtr loadFactor
The updated load factor of the node (or null if the load factor was not updated).
::Ice::StringSeq removeVariables
The variables to remove.
std::string name
The name of the node to update.
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
::IceGrid::BoxedStringPtr description
The updated description (or null if the description wasn't updated.)
::Ice::StringSeq removePropertySets
The property sets to remove.
::IceGrid::ServerInstanceDescriptorSeq serverInstances
The server instances to update.
::Ice::StringSeq removeServers
The IDs of the servers to remove.
::IceGrid::ServerDescriptorSeq servers
The servers which are not template instances to update.
Describes the updates to apply to a node in a deployed application.
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
std::string proxyOptions
The proxy options to use when creating a proxy for this well-known object.
Definition Descriptor.h:233
std::string type
The object type.
Definition Descriptor.h:229
std::tuple< const ::Ice::Identity &, const std::string &, const std::string & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:237
::Ice::Identity id
The identity of the object.
Definition Descriptor.h:226
Describes a well-known Ice object.
Definition Descriptor.h:224
std::string name
The name of the property.
Definition Descriptor.h:170
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
std::tuple< const std::string &, const std::string & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:177
std::string value
The value of the property.
Definition Descriptor.h:173
Describes an Ice property.
Definition Descriptor.h:168
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
::Ice::StringSeq references
References to named property sets.
Definition Descriptor.h:198
std::tuple< const ::Ice::StringSeq &, const ::IceGrid::PropertyDescriptorSeq & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:205
::IceGrid::PropertyDescriptorSeq properties
The property set properties.
Definition Descriptor.h:201
A property set descriptor.
Definition Descriptor.h:196
::IceGrid::LoadBalancingPolicyPtr loadBalancing
The load balancing policy.
::IceGrid::ObjectDescriptorSeq objects
The descriptors for the well-known objects.
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
std::string id
The replica group ID.
std::tuple< const std::string &, const ::IceGrid::LoadBalancingPolicyPtr &, const std::string &, const ::IceGrid::ObjectDescriptorSeq &, const std::string &, const std::string & > ice_tuple() const
Creates a tuple with all the fields of this struct.
std::string filter
The filter to use for this replica group.
std::string proxyOptions
Default options for proxies created for the replica group.
std::string description
The description of this replica group.
Describes a replica group.
::IceGrid::PropertySetDescriptor propertySet
The property set.
Definition Descriptor.h:631
::IceGrid::StringStringDict parameterValues
The template parameter values.
Definition Descriptor.h:628
std::string templateName
The template used by this instance. It's never empty.
Definition Descriptor.h:625
std::tuple< const std::string &, const ::IceGrid::StringStringDict &, const ::IceGrid::PropertySetDescriptor &, const ::IceGrid::PropertySetDescriptorDict & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:639
::IceGrid::PropertySetDescriptorDict servicePropertySets
The services property sets.
Definition Descriptor.h:635
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
Describes a template instantiation that creates a server.
Definition Descriptor.h:623
std::string templateName
The template used by this instance. It's empty when this instance does not use a template.
Definition Descriptor.h:691
::IceGrid::ServiceDescriptorPtr descriptor
The service definition if the instance isn't a template instance (i.e.: if the template attribute is ...
Definition Descriptor.h:697
::IceGrid::PropertySetDescriptor propertySet
The property set.
Definition Descriptor.h:700
std::tuple< const std::string &, const ::IceGrid::StringStringDict &, const ::IceGrid::ServiceDescriptorPtr &, const ::IceGrid::PropertySetDescriptor & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:704
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
::IceGrid::StringStringDict parameterValues
The template parameter values.
Definition Descriptor.h:694
Describes an IceBox service.
Definition Descriptor.h:689
::IceGrid::StringStringDict parameterDefaults
The parameters' default values.
Definition Descriptor.h:666
::IceGrid::CommunicatorDescriptorPtr descriptor
The communicator.
Definition Descriptor.h:660
::Ice::StringSeq parameters
The parameters required to instantiate the template.
Definition Descriptor.h:663
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
std::tuple< const ::IceGrid::CommunicatorDescriptorPtr &, const ::Ice::StringSeq &, const ::IceGrid::StringStringDict & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:670
Describes a template for a server or an IceBox service.
Definition Descriptor.h:658
Represents the identity of an Ice object.
Definition Identity.h:40
static constexpr bool fixedLength
Indicates if the type is always encoded on a fixed number of bytes.
static constexpr int minWireSize
The minimum number of bytes needed to marshal this type.
static constexpr StreamHelperCategory helper
The category trait, used for selecting the appropriate StreamHelper.
Provides traits for a type that can be marshaled or unmarshaled to/from a stream of bytes using the S...