OpenSplice C# API  v7.x
OpenSplice C# Data Distribution Service Data-Centric Publish-Subscribe API
DdsDcpsStructs.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 using DDS.OpenSplice.Database;
25 using DDS.OpenSplice.User;
26 
27 namespace DDS
28 {
29  // ----------------------------------------------------------------------
30  // Types & Pre-defined values
31  // ----------------------------------------------------------------------
32 
33 
34  public struct Property
35  {
36  private string _name;
37  private string _value;
38 
39  public Property(string name, string val)
40  {
41  _name = name;
42  _value = val;
43  }
44 
45  public string Name
46  {
47  get { return _name; }
48  set { _name = value; }
49  }
50 
51  public string Value
52  {
53  get { return _value; }
54  set { _value = value; }
55  }
56  }
57 
64  [StructLayout(LayoutKind.Sequential)]
65  public struct Duration
66  {
67  [MarshalAs(UnmanagedType.I4)]
68  private int sec;
69 
73  public int Sec
74  {
75  get { return sec; }
76  set { sec = value; }
77  }
78 
79  [MarshalAs(UnmanagedType.U4)]
80  private uint nanosec;
84  public uint NanoSec
85  {
86  get { return nanosec; }
87  set { nanosec = value; }
88  }
89 
91  public const int InfiniteSec = 0x7fffffff;
92  public const uint InfiniteNanoSec = 0x7fffffff;
93 
94  public const int ZeroSec = 0;
95  public const uint ZeroNanoSec = 0;
98  public static readonly Duration Infinite = new Duration(InfiniteSec, InfiniteNanoSec);
102 
106  public static readonly Duration Zero = new Duration(ZeroSec, ZeroNanoSec);
107 
114  public static Duration FromTimeSpan(TimeSpan value)
115  {
116  return FromMilliseconds(value.TotalMilliseconds);
117  }
118 
125  public static Duration FromMilliseconds(double value)
126  {
127  return new Duration((int)(value / 1000),
128  (uint)((Math.Abs(value) % 1000) * 1000000));
129  }
130 
138  public Duration(int seconds, uint nanoSeconds)
139  {
140  sec = seconds;
141  nanosec = nanoSeconds;
142  }
143 
151  public override bool Equals(object obj)
152  {
153  if (!(obj is Duration))
154  return false;
155 
156  return ((Duration)obj).sec == sec && ((Duration)obj).nanosec == nanosec;
157  }
158 
165  public override int GetHashCode()
166  {
167  return (int)nanosec;
168  }
169 
178  public static bool operator ==(Duration duration1, Duration duration2)
179  {
180  return (duration1.sec == duration2.sec && duration1.nanosec == duration2.nanosec);
181  }
182 
191  public static bool operator !=(Duration duration1, Duration duration2)
192  {
193  return !(duration1 == duration2);
194  }
195 
202  public override string ToString()
203  {
204  return string.Format("{0}.{1}", sec, nanosec);
205  }
206 
208  internal c_time DatabaseTime
209  {
210  get
211  {
212  c_time dbTime = new c_time();
213  dbTime.seconds = sec;
214  dbTime.nanoseconds = nanosec;
215  return dbTime;
216  }
217  }
220  private const long OsDurationInfinite = 0x7fffffffffffffff;
221  private const uint OsDurationSecond = 1000000000;
223  internal long OsDuration
224  {
225  get
226  {
227  long d;
228  if (this == Infinite) {
229  d = OsDurationInfinite;
230  } else {
231  d = (long)((long)sec*OsDurationSecond+(long)nanosec);
232  }
233  return d;
234  }
235  set
236  {
237  if (value == OsDurationInfinite) {
238  this = Infinite;
239  } else {
240  sec = (int)(value / OsDurationSecond);
241  nanosec = (uint)(value % OsDurationSecond);
242  }
243  }
244  }
247  }
248 
255  [StructLayout(LayoutKind.Sequential)]
256  public struct Time
257  {
258  [MarshalAs(UnmanagedType.I4)]
259 #if OSPL_DDS_LEGACY_TIME
260  private int sec;
261 #else
262  private long sec;
263 #endif
264 #if OSPL_DDS_LEGACY_TIME
268  public int Sec
269  {
270  get { return sec; }
271  set { sec = value; }
272  }
273 #else
274  public long Sec
275  {
276  get { return sec; }
277  set { sec = value; }
278  }
279 #endif
280 
281  [MarshalAs(UnmanagedType.U4)]
282  private uint nanosec;
286  public uint NanoSec
287  {
288  get { return nanosec; }
289  set { nanosec = value; }
290  }
291 
293 #if OSPL_DDS_LEGACY_TIME
294  public const int InvalidSec = -1;
295  public const int ZeroSec = 0;
296 #else
297  public const long InvalidSec = -1;
298  public const long ZeroSec = 0;
299 #endif
300  public const uint InvalidNanoSec = 0xffffffff;
301  public const uint ZeroNanoSec = 0;
304  public static readonly Time Invalid = new Time(InvalidSec, InvalidNanoSec);
308 
312  public static readonly Time Zero = new Time(ZeroSec, ZeroNanoSec);
313 
317  public static readonly Time Current = new Time(InvalidSec, InvalidNanoSec-1);
318 
325  public static Time FromDateTime(DateTime value)
326  {
327  DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
328  TimeSpan diff = value - origin;
329 #if OSPL_DDS_LEGACY_TIME
330  return new Time((int)Math.Floor(diff.TotalSeconds), (uint)(diff.Milliseconds * 1000000));
331 #else
332  return new Time((long)Math.Floor(diff.TotalSeconds), (uint)(diff.Milliseconds * 1000000));
333 #endif
334  }
335 
339  public DateTime ToDatetime()
340  {
341  DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
342  return origin.AddSeconds(sec).AddTicks(nanosec / 100);
343  }
344 
345  private const ulong OsTimeInvalid = 0xffffffffffffffff;
346  private const uint OsTimeSecond = 1000000000;
348  internal os_timeW OsTimeW
349  {
350  get
351  {
352  os_timeW t = new os_timeW();
353  if ((this == Current) ||
354  (this == Invalid)) {
355  t.wt = OsTimeInvalid;
356  } else {
357  t.wt = (ulong)((long)this.Sec * OsTimeSecond + (long)this.NanoSec);
358  }
359  return t;
360  }
361  set
362  {
363  if (value.wt == OsTimeInvalid) {
364  this = Invalid;
365  } else {
366 #if OSPL_DDS_LEGACY_TIME
367  this.sec = (int)(value.wt / OsTimeSecond);
368 #else
369  this.sec = (long)(value.wt / OsTimeSecond);
370 #endif
371  this.nanosec = (uint)(value.wt % OsTimeSecond);
372  }
373  }
374  }
377 #if OSPL_DDS_LEGACY_TIME
385  public Time(int _sec, uint _nanosec)
386 #else
387  public Time(long _sec, uint _nanosec)
388 #endif
389  {
390  sec = _sec;
391  nanosec = _nanosec;
392  }
393 
401  public override bool Equals(object obj)
402  {
403  if (!(obj is Time))
404  return false;
405 
406  return ((Time)obj).sec == sec && ((Time)obj).nanosec == nanosec;
407  }
408 
415  public override int GetHashCode()
416  {
417  return (int)nanosec;
418  }
419 
428  public static bool operator ==(Time left, Time right)
429  {
430  return (left.sec == right.sec && left.nanosec == right.nanosec);
431  }
432 
441  public static bool operator !=(Time left, Time right)
442  {
443  return !(left == right);
444  }
445 
454  public static bool operator >(Time left, Time right)
455  {
456  return (left.sec > right.sec) || (left.sec == right.sec && left.nanosec > right.nanosec);
457  }
458 
467  public static bool operator <(Time left, Time right)
468  {
469  return right > left;
470  }
471 
480  public static bool operator >=(Time left, Time right)
481  {
482  return (left.sec >= right.sec) || (left.sec == right.sec && left.nanosec >= right.nanosec);
483  }
484 
493  public static bool operator <=(Time left, Time right)
494  {
495  return right >= left;
496  }
497 
504  public override string ToString()
505  {
506  return string.Format("{0}.{1}", sec, nanosec);
507  }
508  }
509 
516  public struct DomainId
517  {
518  private int value;
519 
528  public static readonly DomainId Default = new DomainId(0x7fffffff);
529 
533  public static readonly DomainId Invalid = new DomainId(-1);
534 
541  public DomainId(int id)
542  {
543  value = id;
544  }
545 
553  public override bool Equals(object obj)
554  {
555  if (!(obj is DomainId))
556  return false;
557 
558  return ((DomainId)obj).value == value;
559  }
560 
567  public override int GetHashCode()
568  {
569  return (int)value;
570  }
571 
578  public long ToInt32()
579  {
580  return value;
581  }
582 
591  public static bool operator ==(DomainId id1, DomainId id2)
592  {
593  return (id1.value == id2.value);
594  }
595 
604  public static bool operator !=(DomainId id1, DomainId id2)
605  {
606  return (id1.value != id2.value);
607  }
608 
616  public static implicit operator DomainId(int id)
617  {
618  return new DomainId(id);
619  }
620 
628  public static implicit operator int(DomainId id)
629  {
630  return id.value;
631  }
632 
639  public override string ToString()
640  {
641  return ToString(null);
642  }
643 
650  public string ToString(string format)
651  {
652  return value.ToString(format);
653  }
654  }
655 
656 
660  public struct InstanceHandle
661  {
662  private long value;
663 
667  public static readonly InstanceHandle Nil = new InstanceHandle(0);
668 
675  public InstanceHandle(long handleVal)
676  {
677  value = handleVal;
678  }
679 
687  public override bool Equals(object obj)
688  {
689  if (!(obj is InstanceHandle))
690  return false;
691 
692  return ((InstanceHandle)obj).value == value;
693  }
694 
701  public override int GetHashCode()
702  {
703  return (int)value;
704  }
705 
712  public long ToInt64()
713  {
714  return value;
715  }
716 
725  public static bool operator ==(InstanceHandle handle1, InstanceHandle handle2)
726  {
727  return (handle1.value == handle2.value);
728  }
729 
738  public static bool operator !=(InstanceHandle handle1, InstanceHandle handle2)
739  {
740  return (handle1.value != handle2.value);
741  }
742 
749  public static implicit operator InstanceHandle(long handleVal)
750  {
751  return new InstanceHandle(handleVal);
752  }
753 
760  public static implicit operator long(InstanceHandle handle)
761  {
762  return handle.value;
763  }
764 
771  public override string ToString()
772  {
773  return ToString(null);
774  }
775 
782  public string ToString(string format)
783  {
784  return value.ToString(format);
785  }
786  }
787 
794  public struct Length
795  {
799  public const int Unlimited = -1;
800  }
801 
802 
803 
804  // ----------------------------------------------------------------------
805  // Status structs
806  // ----------------------------------------------------------------------
807 
811  [StructLayout(LayoutKind.Sequential)]
813  {
817  public int TotalCount;
818 
823  public int TotalCountChange;
824  }
825 
826 
849  [StructLayout(LayoutKind.Sequential)]
850  public class SampleLostStatus
851  {
856  public int TotalCount;
857 
862  public int TotalCountChange;
863  }
864 
865 
873  [StructLayout(LayoutKind.Sequential)]
874  public class SampleRejectedStatus
875  {
879  public int TotalCount;
880 
885  public int TotalCountChange;
886 
892 
898  }
899 
904  [StructLayout(LayoutKind.Sequential)]
905  public class LivelinessLostStatus
906  {
917  public int TotalCount;
918 
923  public int TotalCountChange;
924  }
925 
930  [StructLayout(LayoutKind.Sequential)]
932  {
945  public int AliveCount;
946 
958  public int NotAliveCount;
959 
964  public int AliveCountChange;
965 
971 
977  }
978 
982  [StructLayout(LayoutKind.Sequential)]
984  {
994  public int TotalCount;
995 
1000  public int TotalCountChange;
1001 
1007  }
1008 
1013  [StructLayout(LayoutKind.Sequential)]
1015  {
1025  public int TotalCount;
1026 
1031  public int TotalCountChange;
1032 
1038  }
1039 
1043  [StructLayout(LayoutKind.Sequential)]
1045  {
1051  public int TotalCount;
1052 
1057  public int TotalCountChange;
1058 
1064 
1072  }
1073 
1077  [StructLayout(LayoutKind.Sequential)]
1079  {
1085  public int TotalCount;
1086 
1091  public int TotalCountChange;
1092 
1098 
1106  }
1107 
1112  [StructLayout(LayoutKind.Sequential)]
1114  {
1124  public int TotalCount;
1125 
1130  public int TotalCountChange;
1131 
1136  public int CurrentCount;
1137 
1143 
1149  }
1150 
1155  [StructLayout(LayoutKind.Sequential)]
1157  {
1167  public int TotalCount;
1168 
1173  public int TotalCountChange;
1174 
1179  public int CurrentCount;
1180 
1186 
1192  }
1193 
1203  public struct QosPolicyCount
1204  {
1209 
1213  public int Count;
1214  }
1215 
1216 
1217 
1218  // ----------------------------------------------------------------------
1219  // Qos & Policies
1220  // ----------------------------------------------------------------------
1221 
1222  public struct QosPolicyName
1223  {
1224  public const string UserData = "UserData";
1225  public const string Durability = "Durability";
1226  public const string Presentation = "Presentation";
1227  public const string Deadline = "Deadline";
1228  public const string LatencyBudget = "LatencyBudget";
1229  public const string Ownership = "Ownership";
1230  public const string OwnershipStrength = "OwnershipStrength";
1231  public const string Liveliness = "Liveliness";
1232  public const string TimeBasedFilter = "TimeBasedFilter";
1233  public const string Partition = "Partition";
1234  public const string Reliability = "Reliability";
1235  public const string DestinationOrder = "DestinationOrder";
1236  public const string History = "History";
1237  public const string ResourceLimits = "ResourceLimits";
1238  public const string EntityFactory = "EntityFactory";
1239  public const string WriterDataLifecycle = "WriterDataLifecycle";
1240  public const string ReaderDataLifecycle = "ReaderDataLifecycle";
1241  public const string TopicData = "TopicData";
1242  public const string GroupData = "GroupData";
1243  public const string TransportPriority = "TransportPriority";
1244  public const string Lifespan = "Lifespan";
1245  public const string DurabilityService = "DurabilityService";
1246  public const string Scheduling = "Scheduling";
1247  }
1248 
1249 #if DOXYGEN_FOR_CS
1250 /*
1251  * The above compile switch is never (and must never) be defined in normal compilation.
1252  *
1253  * QoS related classes are part of the generated code for builtin topics.
1254  * They are repeated here for easy documentation generation.
1255  */
1256 
1260  [StructLayout(LayoutKind.Auto, Size = 200)]
1261  public struct UserDataQosPolicy
1262  {
1263  public byte[] Value;
1264  }
1265 
1269  public struct TopicDataQosPolicy
1270  {
1271  public byte[] Value;
1272  }
1273 
1277  public struct GroupDataQosPolicy
1278  {
1279  public byte[] Value;
1280  }
1281 
1286  {
1287  public int Value;
1288  }
1289 
1293  public struct LifespanQosPolicy
1294  {
1296  }
1297 
1301  public struct DurabilityQosPolicy
1302  {
1304  }
1305 
1310  {
1312  public bool CoherentAccess;
1313  public bool OrderedAccess;
1314  }
1315 
1319  public struct DeadlineQosPolicy
1320  {
1322  }
1323 
1328  {
1330  }
1331 
1335  public struct OwnershipQosPolicy
1336  {
1338  }
1339 
1344  {
1345  public int Value;
1346  }
1347 
1351  public struct LivelinessQosPolicy
1352  {
1355  }
1356 
1361  {
1363  }
1364 
1368  public struct PartitionQosPolicy
1369  {
1370  public string[] Name;
1371  }
1372 
1376  public struct ReliabilityQosPolicy
1377  {
1387  public bool synchronous;
1388  }
1389 
1394  {
1396  }
1397 
1401  public struct HistoryQosPolicy
1402  {
1404  public int Depth;
1405  }
1406 
1411  {
1412  public int MaxSamples;
1413  public int MaxInstances;
1415  }
1416 
1421  {
1422  [MarshalAs(UnmanagedType.U1)]
1424  }
1425 
1454  public struct ShareQosPolicy
1455  {
1456  public string Name;
1457  public bool Enable;
1458  }
1459 
1464  {
1465  [MarshalAs(UnmanagedType.U1)]
1495  }
1496 
1501  {
1517  public bool AutopurgeDisposeAll;
1535  }
1536 
1589  {
1590  public bool UseKeyList;
1591  public string[] KeyList;
1592  }
1593 
1606  public struct UserKeyQosPolicy
1607  {
1608  public bool Enable;
1609  public string Expression;
1610  }
1611 
1634  {
1635  public bool UseLifespan;
1637  }
1638 
1643  {
1646  public int HistoryDepth;
1647  public int MaxSamples;
1648  public int MaxInstances;
1650  }
1651 
1660  {
1662  }
1663 
1671  {
1673  }
1674 
1682  {
1684  };
1685 
1711  public struct SchedulingQosPolicy
1712  {
1716  }
1717 
1740  public struct ProductDataQosPolicy
1741  {
1742  public string Value;
1743  };
1744 
1745 
1746 
1747 
1771  {
1779  }
1780 
1781 
1831  public struct DomainParticipantQos
1832  {
1861  }
1862 
1863 
1864 
1915  public struct TopicQos
1916  {
2009  }
2010 
2011 
2012 
2061  public struct DataWriterQos
2062  {
2161  }
2162 
2163 
2164 
2203  public struct PublisherQos
2204  {
2233  }
2234 
2290  public struct DataReaderQos
2291  {
2412  }
2413 
2414 
2455  public struct SubscriberQos
2456  {
2496  }
2497 
2498  // ----------------------------------------------------------------------
2499  // BuiltinTopicData
2500  // ----------------------------------------------------------------------
2501 
2506  public class BuiltinTopicKey
2507  {
2508  public int[] Value;
2509  }
2510 
2545  {
2550 
2555  }
2556 
2592  {
2597 
2601  public string Name;
2602 
2606  public string TypeName;
2607 
2612 
2617 
2622 
2627 
2632 
2637 
2642 
2647 
2652 
2657 
2662 
2667 
2672  }
2673 
2710  {
2715 
2720 
2724  public string TopicName;
2725 
2729  public string TypeName;
2730 
2735 
2740 
2745 
2750 
2755 
2760 
2765 
2770 
2775 
2780 
2785 
2790 
2795  }
2796 
2832  {
2837 
2842 
2846  public string TopicName;
2847 
2851  public string TypeName;
2852 
2857 
2862 
2867 
2872 
2877 
2882 
2887 
2892 
2897 
2902 
2907 
2912 
2917  }
2918 
2931  {
2934  }
2935 
2948  {
2952  public string name;
2955  }
2956 
2969  {
2973  public string Name;
2977  }
2978 
2991  {
2995  public string Name;
2999  }
3000 
3013  {
3017  public string Name;
3024  }
3025 
3026 #endif // DOXYGEN_FOR_CS
3027 
3028 
3087  [StructLayoutAttribute(LayoutKind.Sequential)]
3088  public class SampleInfo
3089  {
3113  public int SampleRank;
3117  public int GenerationRank;
3138  public InstanceHandle PublicationHandle;
3146  [MarshalAs(UnmanagedType.U1)]
3147  public bool ValidData;
3152  }
3153 
3154 } // end namespace DDS
ReaderDataLifecycleQosPolicy ReaderDataLifecycle
Specifies the lifecycle of the data instances and samples.
OwnershipQosPolicy Ownership
QosPolicy attached to the DataReader
TopicDataQosPolicy TopicData
QosPolicy attached to the Publisher to which the DataWriter belongs
HistoryQosPolicyKind Kind
ReliabilityQosPolicyKind Kind
Duration(int seconds, uint nanoSeconds)
Create a Duration elapsing a specific amount of time.
Proprietary QoS Policy for specifying the scheduling class and priorities of the DDS related threads...
OwnershipQosPolicyKind Kind
DurabilityQosPolicyKind
InstanceHandle PublicationHandle
The handle that identifies locally the DataWriter that modified the instance.
static Time FromDateTime(DateTime value)
Create a Time struct based on a DateTime value.
int TotalCount
Total cumulative count the concerned DataReader discovered a "match" with a DataWriter.
DestinationOrderQosPolicy DestinationOrder
QosPolicy attached to the Topic
ReliabilityQosPolicy Reliability
Specifies the reliability of the data distribution.
bool EnableInvalidSamples
Enable/disable the InvalidSampleVisibility attribute.
override int GetHashCode()
Calculates hash of the Time.
ResourceLimitsQosPolicy ResourceLimits
Specifies the maximum amount of resources to be used.
DomainId(int id)
Create an DomainId based on an integer.
int NotAliveCount
The total count of currently DataWriters that write the Topic read by the DataReader that are no long...
DurabilityQosPolicy Durability
QosPolicy attached to the DataWriter
int TotalCount
Total cumulative number of times the concerned DataReader discovered a DataWriter for the same Topic ...
The proprietary builtin CMDataWriterBuiltinTopicData topic.
int Count
The Count
The DataWriter has found a DataReader that matches the Topic and has compatible QoS or ceased to be m...
LatencyBudgetQosPolicy LatencyBudget
QosPolicy attached to the Topic
UserDataQosPolicy UserData
QosPolicy attached to the DataWriter
PlaceHolder for a domain ID.
DestinationOrderQosPolicy DestinationOrder
Specifies the order in which the IDataReader timely orders the data.
LatencyBudgetQosPolicy LatencyBudget
Used by the Data Distribution Service for optimization.
BuiltinTopicKey Key
Global unique identifier of the DataReader
int TotalCountChange
The incremental number of samples lost since the last time the listener was called or the status was ...
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
LifespanQosPolicy Lifespan
Specifies the maximum duration of validity of the data written by a IDataWriter.
DateTime ToDatetime()
Create a DateTime struct based on the Time value.
string TopicName
Name of the Topic used by the DataReader
int NoWritersGenerationCount
The number of times the instance has become alive after it was disposed of because there were no Data...
The proprietary builtin CMParticipantBuiltinTopicData topic.
The deadline that the DataReader was expecting through its QoS policy was not respected for a specifi...
LivelinessQosPolicy Liveliness
Specifies the way the liveliness of the IDataWriter is asserted to the Data Distribution Service...
PartitionQosPolicy Partition
QosPolicy attached to the Subscriber to which the DataReader belongs
string Name
Name of the Topic
UserDataQosPolicy UserData
Used to attach additional information to the IDataReadder.
SchedulingQosPolicy ListenerScheduling
Specifies the scheduling parameters used to create the listener thread.
string TypeName
Type name of the Topic used by the DataWriter
EntityFactoryQosPolicy EntityFactory
Specifies whether a just created IEntity should be enabled.
DurabilityQosPolicy Durability
Specifies whether the data should be stored for late joining readers.
PartitionQosPolicy Partition
Specifies the partitions in which the ISubscriber is active.
int TotalCount
Total cumulative count of samples rejected by the DataReader.
ResourceLimitsQosPolicy ResourceLimits
Specifies the maximum amount of resources to be used.
string ToString(string format)
Converts DomainId to a string with possible integer format.
GroupDataQosPolicy GroupData
QosPolicy attached to the Publisher to which the DataWriter belongs
DurabilityQosPolicyKind Kind
Time(long _sec, uint _nanosec)
Create a Time based on seconds and nanoseconds.
The scheduling policy which indicates if the scheduling priority is relative or absolute.
OwnershipQosPolicy Ownership
Specifies whether a IDataWriter exclusively owns an instance.
A received sample was rejected.
TopicDataQosPolicy TopicData
QosPolicy attached to the Topic
UserDataQosPolicy UserData
QosPolicy attached to the DataReader
LatencyBudgetQosPolicy LatencyBudget
Used by the Data Distribution Service for optimization.
override bool Equals(object obj)
Test this DomainId is equal to the provided DomainId.
Class that contains information about available DomainParticipants within the system.
SchedulingClassQosPolicy SchedulingClass
int TotalCountChange
The incremental number of inconsistent topics since the last time the listener was called or the stat...
The class SampleInfo represents the additional information that accompanies the data in each sample t...
DeadlineQosPolicy Deadline
QosPolicy attached to the DataReader
EntityFactoryQosPolicy EntityFactory
Specifies whether a just created IDataWriter should be enabled
This Proprietary QosPolicy represents the SubscriptionKey QosPolicy in the proprietary builtin topic ...
Counts for a QosPolicy the number of imcompatible readers or writers.
GroupDataQosPolicy GroupData
QosPolicy attached to the Subscriber to which the DataReader belongs
LivelinessQosPolicy Liveliness
QosPolicy attached to the DataReader
GroupDataQosPolicy GroupData
Used to attach additional information to the IPublisher.
override string ToString()
Converts DomainId to a string.
PresentationQosPolicyAccessScopeKind
InstanceStateKind
For each instance the Data Distribution Service internally maintains an InstanceState.
The proprietary builtin CMSubscriberBuiltinTopicData topic.
bool AutopurgeDisposeAll
Determines whether all samples in the DataReader will be purged automatically when all data is dispos...
int CurrentCount
The number of DataWriters currently matched to the concerned DataReader.
A QoS policy requested is incompatible with the offered QoS policy by DataWriter. ...
TransportPriorityQosPolicy TransportPriority
QosPolicy attached to the Topic
int TotalCountChange
The incremental number of deadlines detected since the last time the listener was called or the statu...
DestinationOrderQosPolicyKind
Class that contains information about available DataReaders within the system.
override int GetHashCode()
Calculates hash of the DomainId.
The deadline QoS set by the DataWriter was not respected for a specific instance
HistoryQosPolicy History
int TotalCount
Total cumulative count of all samples lost across of instances of data published under the Topic...
OwnershipStrengthQosPolicy OwnershipStrength
QosPolicy attached to the DataWriter
DestinationOrderQosPolicy DestinationOrder
Specifies the order in which the DataReader timely orders the data.
HistoryQosPolicyKind HistoryKind
This class provides the basic mechanism for an application to specify Quality of Service attributes f...
SchedulingClassQosPolicyKind
ShareQosPolicy Share
Specifies if this IDataReader is shared DataReader
static Duration FromTimeSpan(TimeSpan value)
Create a Duration based on TimeSpan.
Indicate how invalid samples are handled.
ResourceLimitsQosPolicy ResourceLimits
Specifies the maximum amount of resources to be used.
BuiltinTopicKey Key
Global unique identifier of the DataWriter
PresentationQosPolicy Presentation
Specifies the dependency of changes to data-instances.
DeadlineQosPolicy Deadline
QosPolicy attached to the Topic
int TotalCount
Total cumulative count of all inconsistent topics detected.
LivelinessQosPolicyKind
int TotalCountChange
The change in total_count since the last time the listener was called or the status was read...
The proprietary builtin CMDataReaderBuiltinTopicData topic.
This Proprietary QosPolicy allows the DataReader to define it&#39;s own set of keys on, the data potentially different from the keys defined on the topic.
The DataReader has found a DataWriter that matches the Topic and has compatible QoS or ceased to be m...
int AliveCount
The total number of currently active DataWriters that write the Topic read by the DataReader...
QosPolicyId LastPolicyId
The PolicyId of one of the policies that was found to be incompatible the last time an incompatibilit...
int AliveCountChange
The change in the alive_count since the last time the listener was called or the status was read...
PresentationQosPolicy Presentation
QosPolicy attached to the Publisher to which the DataWriter belongs
QosPolicyCount [] Policies
A list containing for each policy the total number of times that the concerned DataReader discovered ...
QosPolicyId LastPolicyId
The QosPolicyId of one of the policies that was found to be incompatible the last time an incompatibi...
OwnershipQosPolicy Ownership
Specifies whether a DataWriter exclusively owns an instance.
EntityFactoryQosPolicy EntityFactory
Constant to represent the Unlimited length value.
ResourceLimitsQosPolicy ResourceLimits
InvalidSampleVisibilityQosPolicyKind Kind
override bool Equals(object obj)
Test this InstanceHandle is equal to the provided InstanceHandle.
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
SampleStateKind SampleState
The sample_state of the Data value (i.e., if the sample has already been READ or NOT_READ by that sam...
GroupDataQosPolicy GroupData
Used to attach additional information to the ISubscriber.
ReliabilityQosPolicy Reliability
QosPolicy attached to the DataReader
Time represents a time value.
LatencyBudgetQosPolicy LatencyBudget
QosPolicy attached to the DataWriter
PartitionQosPolicy Partition
QosPolicy attached to the Publisher to which the DataWriter belongs
static Duration FromMilliseconds(double value)
Create a Duration based on milliseconds.
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
SchedulingQosPolicy WatchdogScheduling
Specifies the scheduling parameters used to create the watchdog thread.
int AbsoluteGenerationRank
The generation difference between the time the sample was received and the time the most recent sampl...
InstanceHandle(long handleVal)
Constructor to create an instance handle that represents the long.
InstanceStateKind InstanceState
The instance_state of the related instance (i.e., if the instance is ALIVE, NOT_ALIVE_DISPOSED, or NOT_ALIVE_NO_WRITERS).
int CurrentCountChange
The change in current_count since the last time the listener was called or the status was read...
DeadlineQosPolicy Deadline
QosPolicy attached to the DataWriter
WriterDataLifecycleQosPolicy WriterDataLifecycle
override bool Equals(object obj)
Test this Time is equal to the provided Time.
OwnershipStrengthQosPolicy OwnershipStrength
Specifies the strength to determine the ownership.
int TotalCount
Total cumulative number of offered deadline periods elapsed during which a DataWriter failed to provi...
Proprietary QoS Policy for specifying internal product information which is used by a number of propr...
int CurrentCount
The number of DataReaders currently matched to the concerned DataWriter.
ReliabilityQosPolicy Reliability
Specifies the reliability of the data distribution.
The scheduling priority.
EntityFactoryQosPolicy EntityFactory
Specifies whether a just created DomainParticipant should be enabled.
InstanceHandle InstanceHandle
The handle that identifies locally the corresponding instance.
DestinationOrderQosPolicy DestinationOrder
QosPolicy attached to the DataReader
SubscriptionKeyQosPolicy SubscriptionKeys
Specifies that the IDataReader should order the data with an alternative key
Duration AutopurgeSuspendedSamplesDelay
Specifies the duration after which the DataWriter will automatically remove a sample from its history...
The liveliness of one or more DataWriter that were writing instances have become "active" or "inactiv...
override string ToString()
Converts InstanceHandle to a string.
Class that contains information about available DataWriters within the system.
long LastPublicationHandle
Handle to the last DataWriter that matched the DataReader causing the status to change.
bool ValidData
Indicates whether the DataSample contains any meaningful data.
HistoryQosPolicy History
QosPolicy attached to the Topic
Indicates that a sample has been lost.
DeadlineQosPolicy Deadline
Specifies the behaviour of the “transient/persistent service” of the Data Distribution System regar...
long ToInt64()
Converts the InstanceHandle into an long.
int DisposedGenerationCount
The number of times the instance has become alive after it was disposed of explicitly by a DataWriter...
Represents a globally unique identifier to be used as key for the builtin topics. ...
LivelinessQosPolicy Liveliness
Specifies the way the liveliness of the IDataReader is asserted to the Data Distribution Service...
Class to hold the handle associated with in sample instance.
TransportPriorityQosPolicy TransportPriority
Specifies a priority hint for the underlying transport layer.
BuiltinTopicKey ParticipantKey
Global unique identifier of the Participant to which the DataWriter belongs
int TotalCountChange
The change in total_count since the last time the listener was called or the status was read...
OwnershipQosPolicy Ownership
QosPolicy attached to the Topic
QosPolicyId
QosPolicy identification numbers
SchedulingClassQosPolicyKind Kind
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
int TotalCountChange
The change in total_count since the last time the listener was called or the status was read...
TransportPriorityQosPolicy TransportPriority
Specifies a priority hint for the underlying transport layer.
Duration represents a time interval.
int NotAliveCountChange
The change in the not_alive_count since the last time the listener was called or the status was read...
OwnershipQosPolicy Ownership
QosPolicy attached to the DataWriter
string TypeName
Type name of the Topic (i.e. the fully scoped IDL name)
ResourceLimitsQosPolicy ResourceLimits
This class provides the basic mechanism for an application to specify Quality of Service attributes f...
Property(string name, string val)
ReliabilityQosPolicy Reliability
Specifies the reliability of the data distribution.
PresentationQosPolicyAccessScopeKind AccessScope
SchedulingPriorityQosPolicy SchedulingPriorityKind
Duration AutounregisterInstanceDelay
Specifies the duration after which the DataWriter will automatically unregister an instance after the...
LivelinessQosPolicy Liveliness
QosPolicy attached to the DataWriter
ReaderDataLifecycleQosPolicy ReaderDataLifecycle
DestinationOrderQosPolicyKind Kind
BuiltinTopicKey ParticipantKey
Global unique identifier of the Participant to which the DataReader belongs
EntityFactoryQosPolicy EntityFactory
Specifies whether a just created IDataReader should be enabled
int CurrentCountChange
The change in current_count since the last time the listener was called or the status was read...
InstanceHandle LastPublicationHandle
Handle to the last DataWriter whose change in liveliness caused this status to change.
string ToString(string format)
Converts InstanceHandle to a string with possible integer format.
int TotalCount
Total cumulative number of times that a previously-alive DataWriter became &#39;not alive&#39; due to a failu...
ReaderLifespanQosPolicy ReaderLifespan
OwnershipQosPolicy Ownership
Specifies whether a IDataWriter exclusively owns an instance.
WriterDataLifecycleQosPolicy WriterDataLifecycle
Specifies whether unregistered instances are disposed of automatically or not.
UserDataQosPolicy UserData
Used to attach additional information to the IDomainParticipant
HistoryQosPolicy History
Specifies how samples should be stored.
The liveliness of the DataWriter set by the QoS policy is not respected and DataReader entities will ...
Class that contains information about available Topics within the system.
InstanceHandle LastInstanceHandle
Handle to the last instance in the DataReader for which a deadline was detected.
EntityFactoryQosPolicy entity_factory
UserDataQosPolicy UserData
User-defined data attached to the participant via a QosPolicy
Another topic exists with the same name but different characteristics.
DurabilityQosPolicy Durability
QosPolicy attached to the DataReader
InvalidSampleVisibilityQosPolicyKind
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
QosPolicyId PolicyId
The QosPolicyId
int TotalCountChange
The change in total_count since the last time the listener was called or the status was read...
ReliabilityQosPolicy Reliability
QosPolicy attached to the Topic
int TotalCountChange
The change in total_count since the last time the listener was called or the status was read...
Time ReceptionTimestamp
The timestamp provided by the DataReader when the sample was received.
SchedulingPriorityQosPolicyKind
BuiltinTopicKey Key
Globally unique identifier of the participant
override string ToString()
Converts Time to a string.
HistoryQosPolicy History
Specifies how samples should be stored.
SampleRejectedStatusKind LastReason
Reason for rejecting the last sample rejected. If no samples have been rejected, the reason is the sp...
LatencyBudgetQosPolicy LatencyBudget
QosPolicy attached to the DataReader
string TopicName
Name of the Topic used by the DataWriter
ReliabilityQosPolicyKind
ReaderLifespanQosPolicy ReaderLifespan
Specifies the maximum duration of validity of the data in the IDataReader.
string TypeName
Type name of the Topic used by the DataReader
ShareQosPolicy Share
Specifies if this ISubsscriber is shared subscriber
LatencyBudgetQosPolicy LatencyBudget
Used by the Data Distribution Service for optimization.
DurabilityQosPolicy Durability
Specifies whether the data should be stored for late joining readers.
int TotalCountChange
The incremental number of samples rejected since the last time the listener was called or the status ...
ViewStateKind
For each instance (identified by the key), the Data Distribution Service internally maintains a ViewS...
int TotalCountChange
The change in total_count since the last time the listener was called or the status was read...
LivelinessQosPolicy Liveliness
Specifies the way the liveliness of the Topic is asserted to the Data Distribution Service...
PresentationQosPolicy Presentation
Specifies the dependency of changes to data-instances.
TimeBasedFilterQosPolicy TimeBasedFilter
QosPolicy attached to the DataReader
DeadlineQosPolicy Deadline
Specifies the period within which a new sample is expected or written.
TimeBasedFilterQosPolicy TimeBasedFilter
Specifies the maximum data rate at which the IDataReader will receive changes.
OwnershipQosPolicyKind
override bool Equals(object obj)
Test this Duration is equal to the provided Duration.
DurabilityQosPolicy Durability
Specifies whether the data should be stored for late joining readers.
Time SourceTimestamp
The timestamp provided by the DataWriter at the time the sample was produced.
LivelinessQosPolicy Liveliness
QosPolicy attached to the Topic
QosPolicyCount [] Policies
A list containing for each policy the total number of times that the concerned DataWriter discovered ...
HistoryQosPolicyKind
The proprietary builtin CMPublisherBuiltinTopicData topic.
This QosPolicy allows sharing of entities by multiple processes or threads.
InstanceHandle LastInstanceHandle
Handle to the last instance in the DataWriter for which an offered deadline was missed.
ReliabilityQosPolicy Reliability
QosPolicy attached to the DataWriter
A QoS policy value incompatible with the available DataReader
SampleStateKind
For each sample, the Data Distribution Service internally maintains a SampleState specific to each Da...
TopicDataQosPolicy TopicData
Used to attach additional information to the Topic.
long ToInt32()
Converts the DomainId to a long.
long LastSubscriptionHandle
Handle to the last DataReader that matched the DataWriter causing the status to change.
LifespanQosPolicy Lifespan
Specifies the maximum duration of validity of the data written by a DataWriter.
int SampleRank
The number of samples related to the same instance that are found in the collection returned by a rea...
override int GetHashCode()
Calculates hash of the Duration.
DurabilityServiceQosPolicy DurabilityService
QosPolicy attached to the Topic
DestinationOrderQosPolicy DestinationOrder
Specifies the order in which the IDataReader timely orders the data.
PresentationQosPolicy Presentation
QosPolicy attached to the Subscriber to which the DataReader belongs
ResourceLimitsQosPolicy ResourceLimits
QosPolicy attached to the Topic
DurabilityQosPolicy Durability
QosPolicy attached to the Topic
override int GetHashCode()
Calculates hash of the InstanceHandle.
LifespanQosPolicy Lifespan
QosPolicy attached to the Topic
int TotalCount
Total cumulative count the concerned DataWriter discovered a "match" with a DataReader.
DeadlineQosPolicy Deadline
Specifies the period within which a new sample is expected or written.
InstanceHandle LastInstanceHandle
Handle to the instance being updated by the last sample that was rejected.
SchedulingPriorityQosPolicyKind Kind
int GenerationRank
The generation difference between the time the sample was received and the time the most recent sampl...
LivelinessQosPolicyKind Kind
Proprietary QoS Policy for automatically remove samples from the DataReader after a specified timeout...
int TotalCount
Total cumulative number of times the concerned DataWriter discovered a DataReader for the same Topic ...
UserDataQosPolicy UserData
Used to attach additional information to the IDataWriter.
DurabilityServiceQosPolicy DurabilityService
Specifies the behaviour of the “transient/persistent service” of the Data Distribution System regar...
LifespanQosPolicy Lifespan
QosPolicy attached to the DataWriter
ViewStateKind ViewState
The view_state of the related instance (i.e., if the instance is NEW, or NOT_NEW for that DataReader)...
override string ToString()
Converts Duration to a string.
TopicDataQosPolicy TopicData
QosPolicy attached to the Subscriber to which the DataReader belongs
InvalidSampleVisibilityQosPolicy InvalidSampleVisibility
Insert dummy samples if no data sample is available, to notify readers of an instance state change...
PartitionQosPolicy Partition
Specifies the partitions in which the IPublisher is active.
int TotalCount
Total cumulative number of missed deadlines detected for any instance read by the DataReader...
SampleRejectedStatusKind
This struct contains the statistics about samples that have been rejected.
BuiltinTopicKey Key
Global unique identifier of the Topic