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.")]] DbEnvDescriptor;
58
59 /// A sequence of DbEnvDescriptor.
60 using DbEnvDescriptorSeq [[deprecated("This descriptor is provided for schema compatibility. It is no longer used.")]] = 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.")]] 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 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::PropertyDescriptor`.
167 /// @headerfile IceGrid/IceGrid.h
169 {
170 /// The name of the property.
171 std::string name;
172
173 /// The value of the property.
174 std::string value;
175
176 /// Creates a tuple with all the fields of this struct.
177 /// @return A tuple with all the fields of this struct.
178 [[nodiscard]] std::tuple<const std::string&, const std::string&> ice_tuple() const
179 {
180 return std::tie(name, value);
181 }
182
183 /// Outputs the name and value of each field of this instance to the stream.
184 /// @param os The output stream.
185 ICEGRID_API void ice_printFields(std::ostream& os) const;
186 };
187
188 /// Outputs the description of a PropertyDescriptor to a stream, including all its fields.
189 /// @param os The output stream.
190 /// @param value The instance to output.
191 /// @return The output stream.
192 ICEGRID_API std::ostream& operator<<(std::ostream& os, const PropertyDescriptor& value);
193
194 /// A property set descriptor.
195 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::PropertySetDescriptor`.
196 /// @headerfile IceGrid/IceGrid.h
198 {
199 /// References to named property sets.
201
202 /// The property set properties.
204
205 /// Creates a tuple with all the fields of this struct.
206 /// @return A tuple with all the fields of this struct.
207 [[nodiscard]] std::tuple<const ::Ice::StringSeq&, const ::IceGrid::PropertyDescriptorSeq&> ice_tuple() const
208 {
209 return std::tie(references, properties);
210 }
211
212 /// Outputs the name and value of each field of this instance to the stream.
213 /// @param os The output stream.
214 ICEGRID_API void ice_printFields(std::ostream& os) const;
215 };
216
217 /// Outputs the description of a PropertySetDescriptor to a stream, including all its fields.
218 /// @param os The output stream.
219 /// @param value The instance to output.
220 /// @return The output stream.
221 ICEGRID_API std::ostream& operator<<(std::ostream& os, const PropertySetDescriptor& value);
222
223 /// Describes a well-known Ice object.
224 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::ObjectDescriptor`.
225 /// @headerfile IceGrid/IceGrid.h
227 {
228 /// The identity of the object.
230
231 /// The object type.
232 std::string type;
233
234 /// The proxy options to use when creating a proxy for this well-known object. If empty, the proxy is created
235 /// with the proxy options specified on the object adapter or replica group.
236 std::string proxyOptions;
237
238 /// Creates a tuple with all the fields of this struct.
239 /// @return A tuple with all the fields of this struct.
240 [[nodiscard]] std::tuple<const ::Ice::Identity&, const std::string&, const std::string&> ice_tuple() const
241 {
242 return std::tie(id, type, proxyOptions);
243 }
244
245 /// Outputs the name and value of each field of this instance to the stream.
246 /// @param os The output stream.
247 ICEGRID_API void ice_printFields(std::ostream& os) const;
248 };
249
250 /// Outputs the description of an ObjectDescriptor to a stream, including all its fields.
251 /// @param os The output stream.
252 /// @param value The instance to output.
253 /// @return The output stream.
254 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ObjectDescriptor& value);
255
256 /// Describes an indirect object adapter.
257 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::AdapterDescriptor`.
258 /// @headerfile IceGrid/IceGrid.h
260 {
261 /// The object adapter name.
262 std::string name;
263
264 /// A description of this object adapter.
265 std::string description;
266
267 /// The adapter ID.
268 std::string id;
269
270 /// The replica group ID. It's empty when the adapter is not part of a replica group.
271 std::string replicaGroupId;
272
273 /// The adapter priority. Only relevant when the adapter is in a replica group.
274 std::string priority;
275
276 /// When `true`, the object adapter registers a process object.
277 [[deprecated("This field is provided for schema compatibility. It is no longer used.")]] bool registerProcess{false};
278
279 /// When `true`, the lifetime of this object adapter is the same of the server lifetime. This information is
280 /// used by the IceGrid node to figure out the server state: the server is active when all its "server lifetime"
281 /// adapters are active.
283
284 /// The descriptors of well-known objects.
286
287 /// The descriptors of allocatable objects.
289
290 /// Creates a tuple with all the fields of this struct.
291 /// @return A tuple with all the fields of this struct.
292 [[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
293 {
295 }
296
297 /// Outputs the name and value of each field of this instance to the stream.
298 /// @param os The output stream.
299 ICEGRID_API void ice_printFields(std::ostream& os) const;
300 };
301
302 /// Outputs the description of an AdapterDescriptor to a stream, including all its fields.
303 /// @param os The output stream.
304 /// @param value The instance to output.
305 /// @return The output stream.
306 ICEGRID_API std::ostream& operator<<(std::ostream& os, const AdapterDescriptor& value);
307
308 /// A Freeze database environment descriptor (deprecated, no longer used).
309 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::DbEnvDescriptor`.
310 /// @headerfile IceGrid/IceGrid.h
311 struct [[deprecated("This descriptor is provided for schema compatibility. It is no longer used.")]] DbEnvDescriptor
312 {
313 /// The name of the database environment.
314 std::string name;
315
316 /// The description of this database environment.
317 std::string description;
318
319 /// The home of the database environment.
320 std::string dbHome;
321
322 /// The configuration properties of the database environment.
324
325 /// Creates a tuple with all the fields of this struct.
326 /// @return A tuple with all the fields of this struct.
327 [[nodiscard]] std::tuple<const std::string&, const std::string&, const std::string&, const ::IceGrid::PropertyDescriptorSeq&> ice_tuple() const
328 {
329 return std::tie(name, description, dbHome, properties);
330 }
331
332 /// Outputs the name and value of each field of this instance to the stream.
333 /// @param os The output stream.
334 ICEGRID_API void ice_printFields(std::ostream& os) const;
335 };
336
337 /// Outputs the description of a DbEnvDescriptor to a stream, including all its fields.
338 /// @param os The output stream.
339 /// @param value The instance to output.
340 /// @return The output stream.
341 ICEGRID_API std::ostream& operator<<(std::ostream& os, const DbEnvDescriptor& value);
342
343 /// Describes an Ice communicator.
344 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::CommunicatorDescriptor`.
345 /// @headerfile IceGrid/IceGrid.h
346 class ICEGRID_API CommunicatorDescriptor : public Ice::Value
347 {
348 public:
349 /// Default constructor.
350 CommunicatorDescriptor() noexcept = default;
351
352 /// One-shot constructor to initialize all data members.
353 /// @param adapters The indirect object adapters.
354 /// @param propertySet The property set.
355 /// @param dbEnvs The database environments.
356 /// @param logs The path of each log file.
357 /// @param description A description of this descriptor.
359 adapters(std::move(adapters)),
360 propertySet(std::move(propertySet)),
361 dbEnvs(std::move(dbEnvs)),
362 logs(std::move(logs)),
363 description(std::move(description))
364 {
365 }
366
367 /// Gets the type ID of the associated Slice class.
368 /// @return The string `"::IceGrid::CommunicatorDescriptor"`.
369 static const char* ice_staticId() noexcept;
370
371 [[nodiscard]] const char* ice_id() const noexcept override;
372
373 /// Creates a tuple with all the fields of this class.
374 /// @return A tuple with all the fields of this class.
375 [[nodiscard]] std::tuple<const ::IceGrid::AdapterDescriptorSeq&, const ::IceGrid::PropertySetDescriptor&, const ::IceGrid::DbEnvDescriptorSeq&, const ::Ice::StringSeq&, const std::string&> ice_tuple() const
376 {
377 return std::tie(adapters, propertySet, dbEnvs, logs, description);
378 }
379
380 /// Creates a shallow polymorphic copy of this instance.
381 /// @return The cloned value.
382 [[nodiscard]] CommunicatorDescriptorPtr ice_clone() const { return std::static_pointer_cast<CommunicatorDescriptor>(_iceCloneImpl()); }
383
384 void ice_printFields(std::ostream& os) const override;
385
386 /// The indirect object adapters.
388
389 /// The property set.
391
392 /// The database environments.
393 [[deprecated]] ::IceGrid::DbEnvDescriptorSeq dbEnvs;
394
395 /// The path of each log file.
397
398 /// A description of this descriptor.
399 std::string description;
400
401 protected:
402 /// Copy constructor.
404
405 /// @private
406 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
407
408 /// @private
409 void _iceWriteImpl(Ice::OutputStream*) const override;
410
411 /// @private
412 void _iceReadImpl(Ice::InputStream*) override;
413 };
414
415 /// Describes a distribution.
416 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::DistributionDescriptor`.
417 /// @headerfile IceGrid/IceGrid.h
418 struct [[deprecated("This descriptor is provided for schema compatibility. It is no longer used.")]] DistributionDescriptor
419 {
420 /// The proxy of the IcePatch2 server.
421 std::string icepatch;
422
423 /// The source directories.
425
426 /// Creates a tuple with all the fields of this struct.
427 /// @return A tuple with all the fields of this struct.
428 [[nodiscard]] std::tuple<const std::string&, const ::Ice::StringSeq&> ice_tuple() const
429 {
430 return std::tie(icepatch, directories);
431 }
432
433 /// Outputs the name and value of each field of this instance to the stream.
434 /// @param os The output stream.
435 ICEGRID_API void ice_printFields(std::ostream& os) const;
436 };
437
438 /// Outputs the description of a DistributionDescriptor to a stream, including all its fields.
439 /// @param os The output stream.
440 /// @param value The instance to output.
441 /// @return The output stream.
442 ICEGRID_API std::ostream& operator<<(std::ostream& os, const DistributionDescriptor& value);
443
444 /// Describes an Ice server.
445 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::ServerDescriptor`.
446 /// @headerfile IceGrid/IceGrid.h
447 class ICEGRID_API ServerDescriptor : public CommunicatorDescriptor
448 {
449 public:
450 /// Default constructor.
451 ServerDescriptor() noexcept = default;
452
453 /// One-shot constructor to initialize all data members.
454 /// @param adapters The indirect object adapters.
455 /// @param propertySet The property set.
456 /// @param dbEnvs The database environments.
457 /// @param logs The path of each log file.
458 /// @param description A description of this descriptor.
459 /// @param id The server ID.
460 /// @param exe The path of the server executable.
461 /// @param iceVersion The Ice version used by this server.
462 /// @param pwd The path to the server working directory.
463 /// @param options The command line options to pass to the server executable.
464 /// @param envs The server environment variables.
465 /// @param activation The server activation mode.
466 /// @param activationTimeout The activation timeout.
467 /// @param deactivationTimeout The deactivation timeout.
468 /// @param applicationDistrib Specifies if the server depends on the application distribution.
469 /// @param distrib The distribution descriptor.
470 /// @param allocatable Specifies if the server is allocatable.
471 /// @param user The user account used to run the server.
472 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 :
473 CommunicatorDescriptor(std::move(adapters), std::move(propertySet), std::move(dbEnvs), std::move(logs), std::move(description)),
474 id(std::move(id)),
475 exe(std::move(exe)),
476 iceVersion(std::move(iceVersion)),
477 pwd(std::move(pwd)),
478 options(std::move(options)),
479 envs(std::move(envs)),
480 activation(std::move(activation)),
484 distrib(std::move(distrib)),
486 user(std::move(user))
487 {
488 }
489
490 /// Gets the type ID of the associated Slice class.
491 /// @return The string `"::IceGrid::ServerDescriptor"`.
492 static const char* ice_staticId() noexcept;
493
494 [[nodiscard]] const char* ice_id() const noexcept override;
495
496 /// Creates a tuple with all the fields of this class.
497 /// @return A tuple with all the fields of this class.
498 [[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
499 {
501 }
502
503 /// Creates a shallow polymorphic copy of this instance.
504 /// @return The cloned value.
505 [[nodiscard]] ServerDescriptorPtr ice_clone() const { return std::static_pointer_cast<ServerDescriptor>(_iceCloneImpl()); }
506
507 void ice_printFields(std::ostream& os) const override;
508
509 /// The server ID.
510 std::string id;
511
512 /// The path of the server executable.
513 std::string exe;
514
515 /// The Ice version used by this server. This is only required if backward compatibility with servers using old
516 /// Ice versions is needed (otherwise the registry assumes the server is using the same Ice version as the
517 /// registry itself). For example `"3.7.5"`.
518 std::string iceVersion;
519
520 /// The path to the server working directory.
521 std::string pwd;
522
523 /// The command line options to pass to the server executable.
525
526 /// The server environment variables.
528
529 /// The server activation mode. Possible values are `"on-demand"` and `"manual"`.
530 std::string activation;
531
532 /// The activation timeout. It's an integer (in string format) that represents the number of seconds to wait for
533 /// activation.
534 std::string activationTimeout;
535
536 /// The deactivation timeout. It's an integer (in string format) that represents the number of seconds to wait
537 /// for deactivation.
539
540 /// Specifies if the server depends on the application distribution.
541 [[deprecated]] bool applicationDistrib{false};
542
543 /// The distribution descriptor.
545
546 /// Specifies if the server is allocatable.
548
549 /// The user account used to run the server.
550 std::string user;
551
552 protected:
553 /// Copy constructor.
555
556 /// @private
557 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
558
559 /// @private
560 void _iceWriteImpl(Ice::OutputStream*) const override;
561
562 /// @private
563 void _iceReadImpl(Ice::InputStream*) override;
564 };
565
566 /// Describes an IceBox service.
567 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::ServiceDescriptor`.
568 /// @headerfile IceGrid/IceGrid.h
569 class ICEGRID_API ServiceDescriptor : public CommunicatorDescriptor
570 {
571 public:
572 /// Default constructor.
573 ServiceDescriptor() noexcept = default;
574
575 /// One-shot constructor to initialize all data members.
576 /// @param adapters The indirect object adapters.
577 /// @param propertySet The property set.
578 /// @param dbEnvs The database environments.
579 /// @param logs The path of each log file.
580 /// @param description A description of this descriptor.
581 /// @param name The service name.
582 /// @param entry The entry point of the IceBox service.
583 ServiceDescriptor(::IceGrid::AdapterDescriptorSeq adapters, ::IceGrid::PropertySetDescriptor propertySet, ::IceGrid::DbEnvDescriptorSeq dbEnvs, ::Ice::StringSeq logs, std::string description, std::string name, std::string entry) noexcept :
584 CommunicatorDescriptor(std::move(adapters), std::move(propertySet), std::move(dbEnvs), std::move(logs), std::move(description)),
585 name(std::move(name)),
586 entry(std::move(entry))
587 {
588 }
589
590 /// Gets the type ID of the associated Slice class.
591 /// @return The string `"::IceGrid::ServiceDescriptor"`.
592 static const char* ice_staticId() noexcept;
593
594 [[nodiscard]] const char* ice_id() const noexcept override;
595
596 /// Creates a tuple with all the fields of this class.
597 /// @return A tuple with all the fields of this class.
598 [[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
599 {
600 return std::tie(adapters, propertySet, dbEnvs, logs, description, name, entry);
601 }
602
603 /// Creates a shallow polymorphic copy of this instance.
604 /// @return The cloned value.
605 [[nodiscard]] ServiceDescriptorPtr ice_clone() const { return std::static_pointer_cast<ServiceDescriptor>(_iceCloneImpl()); }
606
607 void ice_printFields(std::ostream& os) const override;
608
609 /// The service name.
610 std::string name;
611
612 /// The entry point of the IceBox service.
613 std::string entry;
614
615 protected:
616 /// Copy constructor.
618
619 /// @private
620 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
621
622 /// @private
623 void _iceWriteImpl(Ice::OutputStream*) const override;
624
625 /// @private
626 void _iceReadImpl(Ice::InputStream*) override;
627 };
628
629 /// Describes a template instantiation that creates a server.
630 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::ServerInstanceDescriptor`.
631 /// @headerfile IceGrid/IceGrid.h
633 {
634 /// The template used by this instance. It's never empty.
635 std::string templateName;
636
637 /// The template parameter values.
639
640 /// The property set.
642
643 /// The services property sets.
644 /// It's only valid to set these property sets when the template is an IceBox server template.
646
647 /// Creates a tuple with all the fields of this struct.
648 /// @return A tuple with all the fields of this struct.
649 [[nodiscard]] std::tuple<const std::string&, const ::IceGrid::StringStringDict&, const ::IceGrid::PropertySetDescriptor&, const ::IceGrid::PropertySetDescriptorDict&> ice_tuple() const
650 {
652 }
653
654 /// Outputs the name and value of each field of this instance to the stream.
655 /// @param os The output stream.
656 ICEGRID_API void ice_printFields(std::ostream& os) const;
657 };
658
659 /// Outputs the description of a ServerInstanceDescriptor to a stream, including all its fields.
660 /// @param os The output stream.
661 /// @param value The instance to output.
662 /// @return The output stream.
663 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ServerInstanceDescriptor& value);
664
665 /// Describes a template for a server or an IceBox service.
666 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::TemplateDescriptor`.
667 /// @headerfile IceGrid/IceGrid.h
669 {
670 /// The communicator.
672
673 /// The parameters required to instantiate the template.
675
676 /// The parameters' default values.
678
679 /// Creates a tuple with all the fields of this struct.
680 /// @return A tuple with all the fields of this struct.
681 [[nodiscard]] std::tuple<const ::IceGrid::CommunicatorDescriptorPtr&, const ::Ice::StringSeq&, const ::IceGrid::StringStringDict&> ice_tuple() const
682 {
683 return std::tie(descriptor, parameters, parameterDefaults);
684 }
685
686 /// Outputs the name and value of each field of this instance to the stream.
687 /// @param os The output stream.
688 ICEGRID_API void ice_printFields(std::ostream& os) const;
689 };
690
691 /// Outputs the description of a TemplateDescriptor to a stream, including all its fields.
692 /// @param os The output stream.
693 /// @param value The instance to output.
694 /// @return The output stream.
695 ICEGRID_API std::ostream& operator<<(std::ostream& os, const TemplateDescriptor& value);
696
697 /// Describes an IceBox service.
698 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::ServiceInstanceDescriptor`.
699 /// @headerfile IceGrid/IceGrid.h
701 {
702 /// The template used by this instance. It's empty when this instance does not use a template.
703 std::string templateName;
704
705 /// The template parameter values.
707
708 /// The service definition if the instance isn't a template instance (i.e.: if the template attribute is empty).
710
711 /// The property set.
713
714 /// Creates a tuple with all the fields of this struct.
715 /// @return A tuple with all the fields of this struct.
716 [[nodiscard]] std::tuple<const std::string&, const ::IceGrid::StringStringDict&, const ::IceGrid::ServiceDescriptorPtr&, const ::IceGrid::PropertySetDescriptor&> ice_tuple() const
717 {
719 }
720
721 /// Outputs the name and value of each field of this instance to the stream.
722 /// @param os The output stream.
723 ICEGRID_API void ice_printFields(std::ostream& os) const;
724 };
725
726 /// Outputs the description of a ServiceInstanceDescriptor to a stream, including all its fields.
727 /// @param os The output stream.
728 /// @param value The instance to output.
729 /// @return The output stream.
730 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ServiceInstanceDescriptor& value);
731
732 /// Describes an IceBox server.
733 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::IceBoxDescriptor`.
734 /// @headerfile IceGrid/IceGrid.h
735 class ICEGRID_API IceBoxDescriptor : public ServerDescriptor
736 {
737 public:
738 /// Default constructor.
739 IceBoxDescriptor() noexcept = default;
740
741 /// One-shot constructor to initialize all data members.
742 /// @param adapters The indirect object adapters.
743 /// @param propertySet The property set.
744 /// @param dbEnvs The database environments.
745 /// @param logs The path of each log file.
746 /// @param description A description of this descriptor.
747 /// @param id The server ID.
748 /// @param exe The path of the server executable.
749 /// @param iceVersion The Ice version used by this server.
750 /// @param pwd The path to the server working directory.
751 /// @param options The command line options to pass to the server executable.
752 /// @param envs The server environment variables.
753 /// @param activation The server activation mode.
754 /// @param activationTimeout The activation timeout.
755 /// @param deactivationTimeout The deactivation timeout.
756 /// @param applicationDistrib Specifies if the server depends on the application distribution.
757 /// @param distrib The distribution descriptor.
758 /// @param allocatable Specifies if the server is allocatable.
759 /// @param user The user account used to run the server.
760 /// @param services The service instances.
761 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 :
762 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)),
763 services(std::move(services))
764 {
765 }
766
767 /// Gets the type ID of the associated Slice class.
768 /// @return The string `"::IceGrid::IceBoxDescriptor"`.
769 static const char* ice_staticId() noexcept;
770
771 [[nodiscard]] const char* ice_id() const noexcept override;
772
773 /// Creates a tuple with all the fields of this class.
774 /// @return A tuple with all the fields of this class.
775 [[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
776 {
778 }
779
780 /// Creates a shallow polymorphic copy of this instance.
781 /// @return The cloned value.
782 [[nodiscard]] IceBoxDescriptorPtr ice_clone() const { return std::static_pointer_cast<IceBoxDescriptor>(_iceCloneImpl()); }
783
784 void ice_printFields(std::ostream& os) const override;
785
786 /// The service instances.
788
789 protected:
790 /// Copy constructor.
792
793 /// @private
794 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
795
796 /// @private
797 void _iceWriteImpl(Ice::OutputStream*) const override;
798
799 /// @private
800 void _iceReadImpl(Ice::InputStream*) override;
801 };
802
803 /// Describes an IceGrid node.
804 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::NodeDescriptor`.
805 /// @headerfile IceGrid/IceGrid.h
807 {
808 /// The variables defined for the node.
810
811 /// The server instances (template instances).
813
814 /// Servers that are not template instances.
816
817 /// Load factor of the node.
818 std::string loadFactor;
819
820 /// The description of this node.
821 std::string description;
822
823 /// Property set descriptors.
825
826 /// Creates a tuple with all the fields of this struct.
827 /// @return A tuple with all the fields of this struct.
828 [[nodiscard]] std::tuple<const ::IceGrid::StringStringDict&, const ::IceGrid::ServerInstanceDescriptorSeq&, const ::IceGrid::ServerDescriptorSeq&, const std::string&, const std::string&, const ::IceGrid::PropertySetDescriptorDict&> ice_tuple() const
829 {
831 }
832
833 /// Outputs the name and value of each field of this instance to the stream.
834 /// @param os The output stream.
835 ICEGRID_API void ice_printFields(std::ostream& os) const;
836 };
837
838 /// Outputs the description of a NodeDescriptor to a stream, including all its fields.
839 /// @param os The output stream.
840 /// @param value The instance to output.
841 /// @return The output stream.
842 ICEGRID_API std::ostream& operator<<(std::ostream& os, const NodeDescriptor& value);
843
844 /// The base class for load balancing policies.
845 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::LoadBalancingPolicy`.
846 /// @headerfile IceGrid/IceGrid.h
847 class ICEGRID_API LoadBalancingPolicy : public Ice::Value
848 {
849 public:
850 /// Default constructor.
851 LoadBalancingPolicy() noexcept = default;
852
853 /// One-shot constructor to initialize all data members.
854 /// @param nReplicas The number of replicas that will be used to gather the endpoints of a replica group.
855 explicit LoadBalancingPolicy(std::string nReplicas) noexcept :
856 nReplicas(std::move(nReplicas))
857 {
858 }
859
860 /// Gets the type ID of the associated Slice class.
861 /// @return The string `"::IceGrid::LoadBalancingPolicy"`.
862 static const char* ice_staticId() noexcept;
863
864 [[nodiscard]] const char* ice_id() const noexcept override;
865
866 /// Creates a tuple with all the fields of this class.
867 /// @return A tuple with all the fields of this class.
868 [[nodiscard]] std::tuple<const std::string&> ice_tuple() const
869 {
870 return std::tie(nReplicas);
871 }
872
873 /// Creates a shallow polymorphic copy of this instance.
874 /// @return The cloned value.
875 [[nodiscard]] LoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<LoadBalancingPolicy>(_iceCloneImpl()); }
876
877 void ice_printFields(std::ostream& os) const override;
878
879 /// The number of replicas that will be used to gather the endpoints of a replica group.
880 std::string nReplicas;
881
882 protected:
883 /// Copy constructor.
885
886 /// @private
887 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
888
889 /// @private
890 void _iceWriteImpl(Ice::OutputStream*) const override;
891
892 /// @private
893 void _iceReadImpl(Ice::InputStream*) override;
894 };
895
896 /// The load balancing policy that returns endpoints in a random order.
897 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::RandomLoadBalancingPolicy`.
898 /// @headerfile IceGrid/IceGrid.h
900 {
902
903 /// Gets the type ID of the associated Slice class.
904 /// @return The string `"::IceGrid::RandomLoadBalancingPolicy"`.
905 static const char* ice_staticId() noexcept;
906
907 [[nodiscard]] const char* ice_id() const noexcept override;
908
909 /// Creates a shallow polymorphic copy of this instance.
910 /// @return The cloned value.
911 [[nodiscard]] RandomLoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<RandomLoadBalancingPolicy>(_iceCloneImpl()); }
912
913 protected:
914 /// Copy constructor.
916
917 /// @private
918 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
919
920 /// @private
921 void _iceWriteImpl(Ice::OutputStream*) const override;
922
923 /// @private
924 void _iceReadImpl(Ice::InputStream*) override;
925 };
926
927 /// The load balancing policy that returns endpoints in order.
928 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::OrderedLoadBalancingPolicy`.
929 /// @headerfile IceGrid/IceGrid.h
931 {
933
934 /// Gets the type ID of the associated Slice class.
935 /// @return The string `"::IceGrid::OrderedLoadBalancingPolicy"`.
936 static const char* ice_staticId() noexcept;
937
938 [[nodiscard]] const char* ice_id() const noexcept override;
939
940 /// Creates a shallow polymorphic copy of this instance.
941 /// @return The cloned value.
942 [[nodiscard]] OrderedLoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<OrderedLoadBalancingPolicy>(_iceCloneImpl()); }
943
944 protected:
945 /// Copy constructor.
947
948 /// @private
949 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
950
951 /// @private
952 void _iceWriteImpl(Ice::OutputStream*) const override;
953
954 /// @private
955 void _iceReadImpl(Ice::InputStream*) override;
956 };
957
958 /// The load balancing policy that returns endpoints using round-robin.
959 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::RoundRobinLoadBalancingPolicy`.
960 /// @headerfile IceGrid/IceGrid.h
962 {
964
965 /// Gets the type ID of the associated Slice class.
966 /// @return The string `"::IceGrid::RoundRobinLoadBalancingPolicy"`.
967 static const char* ice_staticId() noexcept;
968
969 [[nodiscard]] const char* ice_id() const noexcept override;
970
971 /// Creates a shallow polymorphic copy of this instance.
972 /// @return The cloned value.
973 [[nodiscard]] RoundRobinLoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<RoundRobinLoadBalancingPolicy>(_iceCloneImpl()); }
974
975 protected:
976 /// Copy constructor.
978
979 /// @private
980 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
981
982 /// @private
983 void _iceWriteImpl(Ice::OutputStream*) const override;
984
985 /// @private
986 void _iceReadImpl(Ice::InputStream*) override;
987 };
988
989 /// The load balancing policy that returns the endpoints of the server(s) with the lowest load average.
990 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::AdaptiveLoadBalancingPolicy`.
991 /// @headerfile IceGrid/IceGrid.h
993 {
994 public:
995 /// Default constructor.
996 AdaptiveLoadBalancingPolicy() noexcept = default;
997
998 /// One-shot constructor to initialize all data members.
999 /// @param nReplicas The number of replicas that will be used to gather the endpoints of a replica group.
1000 /// @param loadSample The load sample to use for the load balancing.
1001 AdaptiveLoadBalancingPolicy(std::string nReplicas, std::string loadSample) noexcept :
1002 LoadBalancingPolicy(std::move(nReplicas)),
1003 loadSample(std::move(loadSample))
1004 {
1005 }
1006
1007 /// Gets the type ID of the associated Slice class.
1008 /// @return The string `"::IceGrid::AdaptiveLoadBalancingPolicy"`.
1009 static const char* ice_staticId() noexcept;
1010
1011 [[nodiscard]] const char* ice_id() const noexcept override;
1012
1013 /// Creates a tuple with all the fields of this class.
1014 /// @return A tuple with all the fields of this class.
1015 [[nodiscard]] std::tuple<const std::string&, const std::string&> ice_tuple() const
1016 {
1017 return std::tie(nReplicas, loadSample);
1018 }
1019
1020 /// Creates a shallow polymorphic copy of this instance.
1021 /// @return The cloned value.
1022 [[nodiscard]] AdaptiveLoadBalancingPolicyPtr ice_clone() const { return std::static_pointer_cast<AdaptiveLoadBalancingPolicy>(_iceCloneImpl()); }
1023
1024 void ice_printFields(std::ostream& os) const override;
1025
1026 /// The load sample to use for the load balancing. The allowed values for this attribute are "1", "5" and "15",
1027 /// representing respectively the load average over the past minute, the past 5 minutes and the past 15 minutes.
1028 std::string loadSample;
1029
1030 protected:
1031 /// Copy constructor.
1033
1034 /// @private
1035 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
1036
1037 /// @private
1038 void _iceWriteImpl(Ice::OutputStream*) const override;
1039
1040 /// @private
1041 void _iceReadImpl(Ice::InputStream*) override;
1042 };
1043
1044 /// Describes a replica group.
1045 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::ReplicaGroupDescriptor`.
1046 /// @headerfile IceGrid/IceGrid.h
1048 {
1049 /// The replica group ID.
1050 std::string id;
1051
1052 /// The load balancing policy.
1054
1055 /// Default options for proxies created for the replica group.
1056 std::string proxyOptions;
1057
1058 /// The descriptors for the well-known objects.
1060
1061 /// The description of this replica group.
1062 std::string description;
1063
1064 /// The filter to use for this replica group.
1065 std::string filter;
1066
1067 /// Creates a tuple with all the fields of this struct.
1068 /// @return A tuple with all the fields of this struct.
1069 [[nodiscard]] std::tuple<const std::string&, const ::IceGrid::LoadBalancingPolicyPtr&, const std::string&, const ::IceGrid::ObjectDescriptorSeq&, const std::string&, const std::string&> ice_tuple() const
1070 {
1071 return std::tie(id, loadBalancing, proxyOptions, objects, description, filter);
1072 }
1073
1074 /// Outputs the name and value of each field of this instance to the stream.
1075 /// @param os The output stream.
1076 ICEGRID_API void ice_printFields(std::ostream& os) const;
1077 };
1078
1079 /// Outputs the description of a ReplicaGroupDescriptor to a stream, including all its fields.
1080 /// @param os The output stream.
1081 /// @param value The instance to output.
1082 /// @return The output stream.
1083 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ReplicaGroupDescriptor& value);
1084
1085 /// Describes an application.
1086 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::ApplicationDescriptor`.
1087 /// @headerfile IceGrid/IceGrid.h
1089 {
1090 /// The application name.
1091 std::string name;
1092
1093 /// The variables defined in the application descriptor.
1095
1096 /// The replica groups.
1098
1099 /// The server templates.
1101
1102 /// The service templates.
1104
1105 /// The node descriptors.
1107
1108 /// The application distribution.
1110
1111 /// The description of this application.
1112 std::string description;
1113
1114 /// Property set descriptors.
1116
1117 /// Creates a tuple with all the fields of this struct.
1118 /// @return A tuple with all the fields of this struct.
1119 [[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
1120 {
1122 }
1123
1124 /// Outputs the name and value of each field of this instance to the stream.
1125 /// @param os The output stream.
1126 ICEGRID_API void ice_printFields(std::ostream& os) const;
1127 };
1128
1129 /// Outputs the description of an ApplicationDescriptor to a stream, including all its fields.
1130 /// @param os The output stream.
1131 /// @param value The instance to output.
1132 /// @return The output stream.
1133 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ApplicationDescriptor& value);
1134
1135 /// A "boxed" string.
1136 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::BoxedString`.
1137 /// @headerfile IceGrid/IceGrid.h
1138 class ICEGRID_API BoxedString : public Ice::Value
1139 {
1140 public:
1141 /// Default constructor.
1142 BoxedString() noexcept = default;
1143
1144 /// One-shot constructor to initialize all data members.
1145 /// @param value The value of the boxed string.
1146 explicit BoxedString(std::string value) noexcept :
1147 value(std::move(value))
1148 {
1149 }
1150
1151 /// Gets the type ID of the associated Slice class.
1152 /// @return The string `"::IceGrid::BoxedString"`.
1153 static const char* ice_staticId() noexcept;
1154
1155 [[nodiscard]] const char* ice_id() const noexcept override;
1156
1157 /// Creates a tuple with all the fields of this class.
1158 /// @return A tuple with all the fields of this class.
1159 [[nodiscard]] std::tuple<const std::string&> ice_tuple() const
1160 {
1161 return std::tie(value);
1162 }
1163
1164 /// Creates a shallow polymorphic copy of this instance.
1165 /// @return The cloned value.
1166 [[nodiscard]] BoxedStringPtr ice_clone() const { return std::static_pointer_cast<BoxedString>(_iceCloneImpl()); }
1167
1168 void ice_printFields(std::ostream& os) const override;
1169
1170 /// The value of the boxed string.
1171 std::string value;
1172
1173 protected:
1174 /// Copy constructor.
1175 BoxedString(const BoxedString&) = default;
1176
1177 /// @private
1178 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
1179
1180 /// @private
1181 void _iceWriteImpl(Ice::OutputStream*) const override;
1182
1183 /// @private
1184 void _iceReadImpl(Ice::InputStream*) override;
1185 };
1186
1187 /// Describes the updates to apply to a node in a deployed application.
1188 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::NodeUpdateDescriptor`.
1189 /// @headerfile IceGrid/IceGrid.h
1191 {
1192 /// The name of the node to update.
1193 std::string name;
1194
1195 /// The updated description (or null if the description wasn't updated.)
1197
1198 /// The variables to update.
1200
1201 /// The variables to remove.
1203
1204 /// The property sets to update.
1206
1207 /// The property sets to remove.
1209
1210 /// The server instances to update.
1212
1213 /// The servers which are not template instances to update.
1215
1216 /// The IDs of the servers to remove.
1218
1219 /// The updated load factor of the node (or null if the load factor was not updated).
1221
1222 /// Creates a tuple with all the fields of this struct.
1223 /// @return A tuple with all the fields of this struct.
1224 [[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
1225 {
1227 }
1228
1229 /// Outputs the name and value of each field of this instance to the stream.
1230 /// @param os The output stream.
1231 ICEGRID_API void ice_printFields(std::ostream& os) const;
1232 };
1233
1234 /// Outputs the description of a NodeUpdateDescriptor to a stream, including all its fields.
1235 /// @param os The output stream.
1236 /// @param value The instance to output.
1237 /// @return The output stream.
1238 ICEGRID_API std::ostream& operator<<(std::ostream& os, const NodeUpdateDescriptor& value);
1239
1240 /// A "boxed" distribution descriptor.
1241 /// @remarks The Slice compiler generated this class from Slice class `::IceGrid::BoxedDistributionDescriptor`.
1242 /// @headerfile IceGrid/IceGrid.h
1243 class ICEGRID_API [[deprecated]] BoxedDistributionDescriptor : public Ice::Value
1244 {
1245 public:
1246 /// Default constructor.
1247 BoxedDistributionDescriptor() noexcept = default;
1248
1249 /// One-shot constructor to initialize all data members.
1250 /// @param value The value of the boxed distribution descriptor.
1252 value(std::move(value))
1253 {
1254 }
1255
1256 /// Gets the type ID of the associated Slice class.
1257 /// @return The string `"::IceGrid::BoxedDistributionDescriptor"`.
1258 static const char* ice_staticId() noexcept;
1259
1260 [[nodiscard]] const char* ice_id() const noexcept override;
1261
1262 /// Creates a tuple with all the fields of this class.
1263 /// @return A tuple with all the fields of this class.
1264 [[nodiscard]] std::tuple<const ::IceGrid::DistributionDescriptor&> ice_tuple() const
1265 {
1266 return std::tie(value);
1267 }
1268
1269 /// Creates a shallow polymorphic copy of this instance.
1270 /// @return The cloned value.
1271 [[nodiscard]] BoxedDistributionDescriptorPtr ice_clone() const { return std::static_pointer_cast<BoxedDistributionDescriptor>(_iceCloneImpl()); }
1272
1273 void ice_printFields(std::ostream& os) const override;
1274
1275 /// The value of the boxed distribution descriptor.
1277
1278 protected:
1279 /// Copy constructor.
1281
1282 /// @private
1283 [[nodiscard]] Ice::ValuePtr _iceCloneImpl() const override;
1284
1285 /// @private
1286 void _iceWriteImpl(Ice::OutputStream*) const override;
1287
1288 /// @private
1289 void _iceReadImpl(Ice::InputStream*) override;
1290 };
1291
1292 /// An application update descriptor to describe the updates to apply to a deployed application.
1293 /// @remarks The Slice compiler generated this struct from Slice struct `::IceGrid::ApplicationUpdateDescriptor`.
1294 /// @headerfile IceGrid/IceGrid.h
1296 {
1297 /// The name of the application to update.
1298 std::string name;
1299
1300 /// The updated description (or null if the description wasn't updated).
1302
1303 /// The updated distribution application descriptor.
1304 [[deprecated]] ::IceGrid::BoxedDistributionDescriptorPtr distrib;
1305
1306 /// The variables to update.
1308
1309 /// The variables to remove.
1311
1312 /// The property sets to update.
1314
1315 /// The property sets to remove.
1317
1318 /// The replica groups to update.
1320
1321 /// The replica groups to remove.
1323
1324 /// The server templates to update.
1326
1327 /// The IDs of the server template to remove.
1329
1330 /// The service templates to update.
1332
1333 /// The IDs of the service template to remove.
1335
1336 /// The application nodes to update.
1338
1339 /// The nodes to remove.
1341
1342 /// Creates a tuple with all the fields of this struct.
1343 /// @return A tuple with all the fields of this struct.
1344 [[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
1345 {
1347 }
1348
1349 /// Outputs the name and value of each field of this instance to the stream.
1350 /// @param os The output stream.
1351 ICEGRID_API void ice_printFields(std::ostream& os) const;
1352 };
1353
1354 /// Outputs the description of an ApplicationUpdateDescriptor to a stream, including all its fields.
1355 /// @param os The output stream.
1356 /// @param value The instance to output.
1357 /// @return The output stream.
1358 ICEGRID_API std::ostream& operator<<(std::ostream& os, const ApplicationUpdateDescriptor& value);
1359
1360 /// @cond INTERNAL
1361 using Ice::Tuple::operator<;
1362 using Ice::Tuple::operator<=;
1363 using Ice::Tuple::operator>;
1364 using Ice::Tuple::operator>=;
1365 using Ice::Tuple::operator==;
1366 using Ice::Tuple::operator!=;
1367 /// @endcond
1368}
1369
1370namespace Ice
1371{
1372 /// @cond INTERNAL
1373 template<>
1374 struct StreamableTraits<::IceGrid::PropertyDescriptor>
1375 {
1377 static constexpr int minWireSize = 2;
1378 static constexpr bool fixedLength = false;
1379 };
1380
1381 template<>
1382 struct StreamReader<::IceGrid::PropertyDescriptor>
1383 {
1384 /// Unmarshals a ::IceGrid::PropertyDescriptor from the input stream.
1385 static void read(InputStream* istr, ::IceGrid::PropertyDescriptor& v)
1386 {
1387 istr->readAll(v.name, v.value);
1388 }
1389 };
1390 /// @endcond
1391
1392 /// @cond INTERNAL
1393 template<>
1394 struct StreamableTraits<::IceGrid::PropertySetDescriptor>
1395 {
1397 static constexpr int minWireSize = 2;
1398 static constexpr bool fixedLength = false;
1399 };
1400
1401 template<>
1402 struct StreamReader<::IceGrid::PropertySetDescriptor>
1403 {
1404 /// Unmarshals a ::IceGrid::PropertySetDescriptor from the input stream.
1405 static void read(InputStream* istr, ::IceGrid::PropertySetDescriptor& v)
1406 {
1407 istr->readAll(v.references, v.properties);
1408 }
1409 };
1410 /// @endcond
1411
1412 /// @cond INTERNAL
1413 template<>
1414 struct StreamableTraits<::IceGrid::ObjectDescriptor>
1415 {
1417 static constexpr int minWireSize = 4;
1418 static constexpr bool fixedLength = false;
1419 };
1420
1421 template<>
1422 struct StreamReader<::IceGrid::ObjectDescriptor>
1423 {
1424 /// Unmarshals a ::IceGrid::ObjectDescriptor from the input stream.
1425 static void read(InputStream* istr, ::IceGrid::ObjectDescriptor& v)
1426 {
1427 istr->readAll(v.id, v.type, v.proxyOptions);
1428 }
1429 };
1430 /// @endcond
1431
1432 /// @cond INTERNAL
1433 template<>
1434 struct StreamableTraits<::IceGrid::AdapterDescriptor>
1435 {
1437 static constexpr int minWireSize = 9;
1438 static constexpr bool fixedLength = false;
1439 };
1440
1441 template<>
1442 struct StreamReader<::IceGrid::AdapterDescriptor>
1443 {
1444 /// Unmarshals a ::IceGrid::AdapterDescriptor from the input stream.
1445 static void read(InputStream* istr, ::IceGrid::AdapterDescriptor& v)
1446 {
1448 }
1449 };
1450 /// @endcond
1451
1452 /// @cond INTERNAL
1453 template<>
1454 struct StreamableTraits<::IceGrid::DbEnvDescriptor>
1455 {
1457 static constexpr int minWireSize = 4;
1458 static constexpr bool fixedLength = false;
1459 };
1460
1461 template<>
1462 struct StreamReader<::IceGrid::DbEnvDescriptor>
1463 {
1464 /// Unmarshals a ::IceGrid::DbEnvDescriptor from the input stream.
1465 static void read(InputStream* istr, ::IceGrid::DbEnvDescriptor& v)
1466 {
1467 istr->readAll(v.name, v.description, v.dbHome, v.properties);
1468 }
1469 };
1470 /// @endcond
1471
1472 /// @cond INTERNAL
1473 template<>
1474 struct StreamableTraits<::IceGrid::DistributionDescriptor>
1475 {
1477 static constexpr int minWireSize = 2;
1478 static constexpr bool fixedLength = false;
1479 };
1480
1481 template<>
1482 struct StreamReader<::IceGrid::DistributionDescriptor>
1483 {
1484 /// Unmarshals a ::IceGrid::DistributionDescriptor from the input stream.
1485 static void read(InputStream* istr, ::IceGrid::DistributionDescriptor& v)
1486 {
1487 istr->readAll(v.icepatch, v.directories);
1488 }
1489 };
1490 /// @endcond
1491
1492 /// @cond INTERNAL
1493 template<>
1494 struct StreamableTraits<::IceGrid::ServerInstanceDescriptor>
1495 {
1497 static constexpr int minWireSize = 5;
1498 static constexpr bool fixedLength = false;
1499 };
1500
1501 template<>
1502 struct StreamReader<::IceGrid::ServerInstanceDescriptor>
1503 {
1504 /// Unmarshals a ::IceGrid::ServerInstanceDescriptor from the input stream.
1505 static void read(InputStream* istr, ::IceGrid::ServerInstanceDescriptor& v)
1506 {
1508 }
1509 };
1510 /// @endcond
1511
1512 /// @cond INTERNAL
1513 template<>
1514 struct StreamableTraits<::IceGrid::TemplateDescriptor>
1515 {
1517 static constexpr int minWireSize = 3;
1518 static constexpr bool fixedLength = false;
1519 };
1520
1521 template<>
1522 struct StreamReader<::IceGrid::TemplateDescriptor>
1523 {
1524 /// Unmarshals a ::IceGrid::TemplateDescriptor from the input stream.
1525 static void read(InputStream* istr, ::IceGrid::TemplateDescriptor& v)
1526 {
1527 istr->readAll(v.descriptor, v.parameters, v.parameterDefaults);
1528 }
1529 };
1530 /// @endcond
1531
1532 /// @cond INTERNAL
1533 template<>
1534 struct StreamableTraits<::IceGrid::ServiceInstanceDescriptor>
1535 {
1537 static constexpr int minWireSize = 5;
1538 static constexpr bool fixedLength = false;
1539 };
1540
1541 template<>
1542 struct StreamReader<::IceGrid::ServiceInstanceDescriptor>
1543 {
1544 /// Unmarshals a ::IceGrid::ServiceInstanceDescriptor from the input stream.
1545 static void read(InputStream* istr, ::IceGrid::ServiceInstanceDescriptor& v)
1546 {
1547 istr->readAll(v.templateName, v.parameterValues, v.descriptor, v.propertySet);
1548 }
1549 };
1550 /// @endcond
1551
1552 /// @cond INTERNAL
1553 template<>
1554 struct StreamableTraits<::IceGrid::NodeDescriptor>
1555 {
1557 static constexpr int minWireSize = 6;
1558 static constexpr bool fixedLength = false;
1559 };
1560
1561 template<>
1562 struct StreamReader<::IceGrid::NodeDescriptor>
1563 {
1564 /// Unmarshals a ::IceGrid::NodeDescriptor from the input stream.
1565 static void read(InputStream* istr, ::IceGrid::NodeDescriptor& v)
1566 {
1567 istr->readAll(v.variables, v.serverInstances, v.servers, v.loadFactor, v.description, v.propertySets);
1568 }
1569 };
1570 /// @endcond
1571
1572 /// @cond INTERNAL
1573 template<>
1574 struct StreamableTraits<::IceGrid::ReplicaGroupDescriptor>
1575 {
1577 static constexpr int minWireSize = 6;
1578 static constexpr bool fixedLength = false;
1579 };
1580
1581 template<>
1582 struct StreamReader<::IceGrid::ReplicaGroupDescriptor>
1583 {
1584 /// Unmarshals a ::IceGrid::ReplicaGroupDescriptor from the input stream.
1585 static void read(InputStream* istr, ::IceGrid::ReplicaGroupDescriptor& v)
1586 {
1587 istr->readAll(v.id, v.loadBalancing, v.proxyOptions, v.objects, v.description, v.filter);
1588 }
1589 };
1590 /// @endcond
1591
1592 /// @cond INTERNAL
1593 template<>
1594 struct StreamableTraits<::IceGrid::ApplicationDescriptor>
1595 {
1597 static constexpr int minWireSize = 10;
1598 static constexpr bool fixedLength = false;
1599 };
1600
1601 template<>
1602 struct StreamReader<::IceGrid::ApplicationDescriptor>
1603 {
1604 /// Unmarshals a ::IceGrid::ApplicationDescriptor from the input stream.
1605 static void read(InputStream* istr, ::IceGrid::ApplicationDescriptor& v)
1606 {
1608 }
1609 };
1610 /// @endcond
1611
1612 /// @cond INTERNAL
1613 template<>
1614 struct StreamableTraits<::IceGrid::NodeUpdateDescriptor>
1615 {
1617 static constexpr int minWireSize = 10;
1618 static constexpr bool fixedLength = false;
1619 };
1620
1621 template<>
1622 struct StreamReader<::IceGrid::NodeUpdateDescriptor>
1623 {
1624 /// Unmarshals a ::IceGrid::NodeUpdateDescriptor from the input stream.
1625 static void read(InputStream* istr, ::IceGrid::NodeUpdateDescriptor& v)
1626 {
1628 }
1629 };
1630 /// @endcond
1631
1632 /// @cond INTERNAL
1633 template<>
1634 struct StreamableTraits<::IceGrid::ApplicationUpdateDescriptor>
1635 {
1637 static constexpr int minWireSize = 15;
1638 static constexpr bool fixedLength = false;
1639 };
1640
1641 template<>
1642 struct StreamReader<::IceGrid::ApplicationUpdateDescriptor>
1643 {
1644 /// Unmarshals a ::IceGrid::ApplicationUpdateDescriptor from the input stream.
1645 static void read(InputStream* istr, ::IceGrid::ApplicationUpdateDescriptor& v)
1646 {
1648 }
1649 };
1650 /// @endcond
1651}
1652
1653// NOLINTEND(modernize-concat-nested-namespaces)
1654
1655#include <Ice/PopDisableWarnings.h>
1656#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.
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:993
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:387
std::string description
A description of this descriptor.
Definition Descriptor.h:399
CommunicatorDescriptorPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:382
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:393
::Ice::StringSeq logs
The path of each log file.
Definition Descriptor.h:396
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:375
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:390
Describes an Ice communicator.
Definition Descriptor.h:347
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:787
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:775
IceBoxDescriptorPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:782
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:736
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:875
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:880
std::tuple< const std::string & > ice_tuple() const
Creates a tuple with all the fields of this class.
Definition Descriptor.h:868
The base class for load balancing policies.
Definition Descriptor.h:848
OrderedLoadBalancingPolicyPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:942
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:931
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:911
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:900
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:973
The load balancing policy that returns endpoints using round-robin.
Definition Descriptor.h:962
::IceGrid::DistributionDescriptor distrib
The distribution descriptor.
Definition Descriptor.h:544
std::string exe
The path of the server executable.
Definition Descriptor.h:513
std::string iceVersion
The Ice version used by this server.
Definition Descriptor.h:518
bool allocatable
Specifies if the server is allocatable.
Definition Descriptor.h:547
::Ice::StringSeq envs
The server environment variables.
Definition Descriptor.h:527
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice class.
std::string activationTimeout
The activation timeout.
Definition Descriptor.h:534
std::string deactivationTimeout
The deactivation timeout.
Definition Descriptor.h:538
ServerDescriptorPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:505
::Ice::StringSeq options
The command line options to pass to the server executable.
Definition Descriptor.h:524
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:541
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:550
std::string pwd
The path to the server working directory.
Definition Descriptor.h:521
std::string activation
The server activation mode. Possible values are "on-demand" and "manual".
Definition Descriptor.h:530
ServerDescriptor(const ServerDescriptor &)=default
Copy constructor.
std::string id
The server ID.
Definition Descriptor.h:510
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:498
Describes an Ice server.
Definition Descriptor.h:448
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:613
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:610
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:598
ServiceDescriptorPtr ice_clone() const
Creates a shallow polymorphic copy of this instance.
Definition Descriptor.h:605
Describes an IceBox service.
Definition Descriptor.h:570
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:60
bool serverLifetime
When true, the lifetime of this object adapter is the same of the server lifetime.
Definition Descriptor.h:282
::IceGrid::ObjectDescriptorSeq allocatables
The descriptors of allocatable objects.
Definition Descriptor.h:288
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:265
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:292
::IceGrid::ObjectDescriptorSeq objects
The descriptors of well-known objects.
Definition Descriptor.h:285
std::string id
The adapter ID.
Definition Descriptor.h:268
bool registerProcess
When true, the object adapter registers a process object.
Definition Descriptor.h:277
std::string replicaGroupId
The replica group ID. It's empty when the adapter is not part of a replica group.
Definition Descriptor.h:271
std::string priority
The adapter priority. Only relevant when the adapter is in a replica group.
Definition Descriptor.h:274
std::string name
The object adapter name.
Definition Descriptor.h:262
Describes an indirect object adapter.
Definition Descriptor.h:260
::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:327
std::string name
The name of the database environment.
Definition Descriptor.h:314
std::string description
The description of this database environment.
Definition Descriptor.h:317
std::string dbHome
The home of the database environment.
Definition Descriptor.h:320
::IceGrid::PropertyDescriptorSeq properties
The configuration properties of the database environment.
Definition Descriptor.h:323
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:312
std::string icepatch
The proxy of the IcePatch2 server.
Definition Descriptor.h:421
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:424
std::tuple< const std::string &, const ::Ice::StringSeq & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:428
Describes a distribution.
Definition Descriptor.h:419
::IceGrid::StringStringDict variables
The variables defined for the node.
Definition Descriptor.h:809
std::string description
The description of this node.
Definition Descriptor.h:821
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:828
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:818
::IceGrid::PropertySetDescriptorDict propertySets
Property set descriptors.
Definition Descriptor.h:824
::IceGrid::ServerDescriptorSeq servers
Servers that are not template instances.
Definition Descriptor.h:815
::IceGrid::ServerInstanceDescriptorSeq serverInstances
The server instances (template instances).
Definition Descriptor.h:812
Describes an IceGrid node.
Definition Descriptor.h:807
::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:236
std::string type
The object type.
Definition Descriptor.h:232
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:240
::Ice::Identity id
The identity of the object.
Definition Descriptor.h:229
Describes a well-known Ice object.
Definition Descriptor.h:227
std::string name
The name of the property.
Definition Descriptor.h:171
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:178
std::string value
The value of the property.
Definition Descriptor.h:174
Describes an Ice property.
Definition Descriptor.h:169
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:200
std::tuple< const ::Ice::StringSeq &, const ::IceGrid::PropertyDescriptorSeq & > ice_tuple() const
Creates a tuple with all the fields of this struct.
Definition Descriptor.h:207
::IceGrid::PropertyDescriptorSeq properties
The property set properties.
Definition Descriptor.h:203
A property set descriptor.
Definition Descriptor.h:198
::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:641
::IceGrid::StringStringDict parameterValues
The template parameter values.
Definition Descriptor.h:638
std::string templateName
The template used by this instance. It's never empty.
Definition Descriptor.h:635
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:649
::IceGrid::PropertySetDescriptorDict servicePropertySets
The services property sets.
Definition Descriptor.h:645
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:633
std::string templateName
The template used by this instance. It's empty when this instance does not use a template.
Definition Descriptor.h:703
::IceGrid::ServiceDescriptorPtr descriptor
The service definition if the instance isn't a template instance (i.e.: if the template attribute is ...
Definition Descriptor.h:709
::IceGrid::PropertySetDescriptor propertySet
The property set.
Definition Descriptor.h:712
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:716
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:706
Describes an IceBox service.
Definition Descriptor.h:701
::IceGrid::StringStringDict parameterDefaults
The parameters' default values.
Definition Descriptor.h:677
::IceGrid::CommunicatorDescriptorPtr descriptor
The communicator.
Definition Descriptor.h:671
::Ice::StringSeq parameters
The parameters required to instantiate the template.
Definition Descriptor.h:674
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:681
Describes a template for a server or an IceBox service.
Definition Descriptor.h:669
Represents the identity of an Ice object.
Definition Identity.h:41
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...