OpenSplice C# API  v6.x
OpenSplice C# Data Distribution Service Data-Centric Publish-Subscribe API
DdsDcpsEnums.cs
Go to the documentation of this file.
1 /*
2  * Vortex OpenSplice
3  *
4  * This software and documentation are Copyright 2006 to 2021 ADLINK
5  * Technology Limited, its affiliated companies and licensors. All rights
6  * reserved.
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 using System;
22 using System.Runtime.InteropServices;
23 
24 namespace DDS
25 {
26  // ----------------------------------------------------------------------
27  // Return codes
28  // ----------------------------------------------------------------------
32  public enum ReturnCode
33  {
37  Ok = 0,
41  Error = 1,
47  Unsupported = 2,
51  BadParameter = 3,
59  OutOfResources = 5,
63  NotEnabled = 6,
67  ImmutablePolicy = 7,
75  AlreadyDeleted = 9,
79  Timeout = 10,
83  NoData = 11,
91  IllegalOperation = 12,
92  }
93 
94  // ----------------------------------------------------------------------
95  // Error codes
96  // ----------------------------------------------------------------------
99  public enum ErrorCode
100  {
101  Undefined = 0,
102  Error = 1,
103  OutOfResources = 2,
104  CreationKernelEntityFailed = 3,
105  InvalidValue = 4,
106  InvalidDuration = 5,
107  InvalidTime = 6,
108  EntityInUse = 7,
109  ContainsEntities = 8,
110  EntityUnknown = 9,
111  HandleNotRegistered = 10,
112  HandleNotMatched = 11,
113  HandleInvalid = 12,
114  InvalidSequence = 13,
115  UnsupportedValue = 14,
116  InconsistentValue = 15,
117  ImmutableQosPolicy = 16,
118  InconsistentQos = 17,
119  UnsupportedQosPolicy = 18,
120  ContainsConditions = 19,
121  ContainsLoans = 20,
122  InconsistentTopic = 21,
123  }
125 
126  // ----------------------------------------------------------------------
127  // Status to support listeners and conditions
128  // ----------------------------------------------------------------------
136  [Flags]
137  public enum StatusKind : uint
138  {
142  InconsistentTopic = 0x0001 << 0,
143 
148  OfferedDeadlineMissed = 0x0001 << 1,
149 
154  RequestedDeadlineMissed = 0x0001 << 2,
155 
159  OfferedIncompatibleQos = 0x0001 << 5,
160 
164  RequestedIncompatibleQos = 0x0001 << 6,
165 
169  SampleLost = 0x0001 << 7,
170 
174  SampleRejected = 0x0001 << 8,
175 
179  DataOnReaders = 0x0001 << 9,
180 
184  DataAvailable = 0x0001 << 10,
185 
190  LivelinessLost = 0x0001 << 11,
191 
196  LivelinessChanged = 0x0001 << 12,
197 
201  PublicationMatched = 0x0001 << 13,
202 
206  SubscriptionMatched = 0x0001 << 14,
207 
211  AllDataDisposed = 0x80000000,
212 
216  Any_V1_2 = 0x7fff,
217 
221  Any = 0xffffffff
222  }
223 
228  {
232  NotRejected,
237 
242 
247  };
248 
252  public enum QosPolicyId
253  {
257  InvalidQos = 0,
261  UserDataQos = 1,
265  DurabilityQos = 2,
269  PresentationQos = 3,
273  DeadlineQos = 4,
277  LatencyBudgetQos = 5,
281  OwnershipQos = 6,
289  LivelinessQos = 8,
293  TimeBasedFilterQos = 9,
297  PartitionQos = 10,
301  ReliabilityQos = 11,
305  DestinationOrderQos = 12,
309  HistoryQos = 13,
313  ResourceLimitsQos = 14,
317  EntityFactoryQos = 15,
329  TopicDataQos = 18,
333  GroupDataQos = 19,
341  LifespanQos = 21,
349  SchedulingQos = 27,
350  }
351 
360  [Flags]
361  public enum SampleStateKind
362  {
368  Read = 0x0001 << 0,
369 
373  NotRead = 0x0001 << 1,
374 
378  Any = 0xffff,
379  }
380 
389  [Flags]
390  public enum ViewStateKind
391  {
398  New = 0x0001 << 0,
399 
404  NotNew = 0x0001 << 1,
405 
409  Any = 0xffff,
410  }
411 
418  [Flags]
419  public enum InstanceStateKind
420  {
430  Alive = 0x0001 << 0,
431 
440  NotAliveDisposed = 0x0001 << 1,
441 
446  NotAliveNoWriters = 0x0001 << 2,
447 
451  NotAlive = 0x006,
452 
456  Any = 0xffff,
457  }
458 
459 
460 #if DOXYGEN_FOR_CS
461 //
462 // The above compile switch is never (and must never) be defined in normal compilation.
463 //
464 // QoS and Policy related enums are part of the generated code for builtin topics.
465 // They are repeated here for easy documentation generation.
466 //
467 
468 
470  {
480 
496 
511 
522  }
523 
525  {
530 
535 
540  }
541 
543  {
550 
557  }
558 
560  {
567 
578 
586  }
587 
589  {
598 
611  }
612 
614  {
620 
626  }
627 
629  {
649 
670  }
671 
676  {
681 
687 
693  }
694 
699  {
706 
713  }
714 
730  {
737 
747 
766  };
767 
768 #endif // DOXYGEN_FOR_CS
769 
770 } // end namespace DDS
Indicates that the DataReader has already accessed samples of the same instance and that the instance...
In this case the event is lost, since there is no valid sample to piggyback on, and no invalid sample...
The application must take care of reporting the liveliness before the LeaseDuration expires...
The liveliness that the DataWriter has committed through its LivelinessQosPolicy was not respected; t...
Identifies to TimeBasedFilterQosPolicy
DurabilityQosPolicyKind
Identifies to LifespanQosPolicy
The application must take care of reporting the liveliness before the LeaseDuration expires...
A sample has been lost (never received).
Identifies to OwnershipQosPolicy
Identifies to OwnershipStrengthQosPolicy
The order is based on the timestamp, which was set by the DataWriter. This means that the system need...
Generic, unspecified error
The given scheduling priority for the thread (in SchedulingQosPolicy) is relative to the process prio...
All samples are stored, provided, the resources are available. On the publishing side, the Data Distribution Service will attempt to keep all samples (representing each value written) of each instance of data (identified by its key) managed by the DataWriter until they can be delivered to all subscribers. On the subscribing side, the Data Distribution Service will attempt to keep all samples of each instance of data (identified by its key) managed by the DataReader. These samples are kept until the application “takes” them from the Data Distribution Service via the DataReader take operation. The setting of depth has no effect. Its implied value is Length.Unlimited. The resources that the Data Distribution Service can use to keep this history are limited by the settings of the ResourceLimitsQosPolicy. If the limit is reached, the behaviour of the Data Distribution Service will depend on the ReliabilityQosPolicy. If the ReliabilityQosPolicy is BestEffortReliabilityQos, the old values are discarded. If ReliabilityQosPolicy is ReliableReliabilityQos, the Data Distribution Service will block the DataWriter until it can deliver the necessary old values to all subscribers.
The DisposeAllData() operation has been invoked on the Topic.
The data is stored in permanent storage (e.g. hard disk). This means that the samples are also availa...
Identifies to DeadlineQosPolicy
Successful return
Service ran out of the resources needed to complete the operation
Alive indicates that: samples have been received for the instance there are live DataWriter objects w...
New information is available.
This is a new setting that we have envisaged, but not yet implemented. Currently it will throw an Uns...
Identifies to SchedulingQosPolicy
The instance was disposed of by a DataWriter, either explicitly by means of the dispose operation or ...
The operation timed out
The samples are not available to late-joining DataReaders. In other words, only DataReaders, which were present at the time of the writing and have subscribed to this Topic, will receive the sample. When a DataReader subscribes afterwards (late-joining), it will only be able to read the next written sample. This setting is typically used for data, which is updated quickly.
Identifies to ReliabilityQosPolicy
the sample was rejected because it would exceed the maximum number of samples set by the ResourceLimi...
PresentationQosPolicyAccessScopeKind
InstanceStateKind
For each instance the Data Distribution Service internally maintains an InstanceState.
DestinationOrderQosPolicyKind
Any_V1_2 status.
The deadline that the DataWriter has committed through its DeadlineQosPolicy was not respected for a ...
Identifies to DestinationOrderQosPolicy
SchedulingClassQosPolicyKind
Identifies to LatencyBudgetQosPolicy
LivelinessQosPolicyKind
The order is based on the timestamp, at the moment the sample was received by the DataReader...
The Data Distribution Service will only attempt to keep the latest values of the instance and discard...
The Data Distribution Service will only attempt to deliver the data; no arrival-checks are being perf...
A (received) sample has been rejected.
Operation invoked on an Entity that is not yet enabled
Some samples are available to late-joining DataReaders (stored in memory). This means that the late-j...
Indicates the instance has been declared as not-alive by the IDataReader because it detected that the...
Identifies to WriterDataLifecycleQosPolicy
The deadline that the DataReader was expecting through its DeadlineQosPolicy was not respected for a ...
ReturnCode
This is the enum that represents the various ReturnCode values that DDS operations return...
Definition: DdsDcpsEnums.cs:32
A QosPolicy setting was incompatible with what was requested.
Illegal parameter value
New information is available.
A pre-condition for the operation was not met
An operation was invoked on an inappropriate object or at an inappropriate time (as determined by Qos...
Indicates that the DataReader has not accessed that sample before.
The Data Distribution Service will attempt to deliver all samples in the DataWriters history; arrival...
QosPolicyId
QosPolicy identification numbers
Identifies to PartitionQosPolicy
Identifies to EntityFactoryQosPolicy
Indicates that the DataReader has already accessed that sample by means of read. Had the sample been ...
Identifies to GroupDataQosPolicy
Application specified a set of policies that are not consistent with each other
Identifies to DurabilityQosPolicy
Identifies to ReaderDataLifecycleQosPolicy
Identifies to UserDataQosPolicy
Indicates a situation where the operation did not return any data
This is the default setting. In this case one (and only one) invalid sample is created to piggyback a...
Identifies to DurabilityServiceQosPolicy
The liveliness of one or more DataWriter objects that were writing instances read through the DataRea...
Application attempted to modify an immutable QosPolicy
Unsupported operation or QosPolicy setting. Can only be returned by operations that are optional or o...
Another Topic exists with the same name but with different characteristics.
StatusKind
Each concrete Entity class has a set of Status attributes and for each attribute the Entity class pro...
Identifies to TopicDataQosPolicy
A QosPolicy setting was incompatible with what is offered.
InvalidSampleVisibilityQosPolicyKind
SchedulingPriorityQosPolicyKind
Any status.
The object target of this operation has already been deleted
ReliabilityQosPolicyKind
Invalid Policy ID
Indicates that either this is the first time that the DataReader has ever accessed samples of that in...
the sample was rejected because it would exceed the maximum number of samples per instance set by the...
ViewStateKind
For each instance (identified by the key), the Data Distribution Service internally maintains a ViewS...
The same instance can be written by multiple DataWriter objects. All updates will be made available t...
Time-sharing scheduling (whether this is supported depends on the underlying OS). ...
Identifies to LivelinessQosPolicy
The given scheduling priority for the thread (in SchedulingQosPolicy) is an absolute value...
OwnershipQosPolicyKind
The instance will only be accepted from one DataWriter which is the only one whose modifications will...
no sample has been rejected yet
The DataReader has found a DataWriter that matches the Topic and has compatible QoS.
HistoryQosPolicyKind
Underlying OS default scheduling.
SampleStateKind
For each sample, the Data Distribution Service internally maintains a SampleState specific to each Da...
Presentation Access Scope is per instance.
The Data Distribution Service will take care of reporting the Liveliness automatically with a rate de...
the sample was rejected because it would exceed the maximum number of instances set by the ResourceLi...
Currently behaves identically to the TransientDurabilityQos, except for its RxO properties. The desired behaviour of TransientLocalDurabilityQos can be achieved from the TransientDurabilityQos with the default (true) setting of the AutodisposeUnregisteredInstances flag on the DataWriter and the ServiceCleanupDelay set to 0 on the durability service. This is because for TransientLocal, the data should only remain available for late-joining readers during the lifetime of its source writer, so it is not required to survive after its source writer has been deleted. Since the deletion of a writer implicitly unregisters all its instances, an AutodisposeUnregisteredInstances value of true will also dispose the affected data from the durability store, and thus prevent it from remaining available to late joining readers.
Identifies to HistoryQosPolicy
Real-time scheduling (whether this is supported depends on the underlying OS).
The DataWriter has found DataReader that matches the Topic and has compatible QoS.
Identifies to PresentationQosPolicy
Identifies to TransportPriorityQosPolicy
Identifies to ResourceLimitsQosPolicy
Both NotAliveDisposed and NotAliveNoWriters flags set.
SampleRejectedStatusKind
This struct contains the statistics about samples that have been rejected.