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