OpenSplice C# API  v6.x
OpenSplice C# Data Distribution Service Data-Centric Publish-Subscribe API
DdsDcpsInterfaces.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  // Conditions
28  // ----------------------------------------------------------------------
42  public interface ICondition
43  {
49  bool GetTriggerValue();
50  }
51 
104  public interface IWaitSet
105  {
144  ReturnCode Wait(ref ICondition[] activeConditions, Duration timeout);
173  ReturnCode AttachCondition(ICondition condition);
189  ReturnCode DetachCondition(ICondition condition);
218  ReturnCode GetConditions(ref ICondition[] attachedConditions);
219  }
220 
233  public interface IGuardCondition : ICondition
234  {
252  ReturnCode SetTriggerValue(bool value);
253  }
254 
299  public interface IStatusCondition : ICondition
300  {
342  StatusKind GetEnabledStatuses();
343 
396  ReturnCode SetEnabledStatuses(StatusKind mask);
397 
408  IEntity GetEntity();
409  }
410 
457  public interface IReadCondition : ICondition
458  {
469  SampleStateKind GetSampleStateMask();
470 
480  ViewStateKind GetViewStateMask();
481 
492  InstanceStateKind GetInstanceStateMask();
493 
502  IDataReader GetDataReader();
503  }
504 
562  public interface IQueryCondition : IReadCondition
563  {
573  string GetQueryExpression();
574 
600  ReturnCode GetQueryParameters(ref string[] queryParameters);
601 
626  ReturnCode SetQueryParameters(params string[] queryParameters);
627  }
628 
629  // ----------------------------------------------------------------------
630  // Factory
631  // ----------------------------------------------------------------------
637  public interface IDomainParticipantFactory
638  {
639  IDomainParticipant CreateParticipant(DomainId domainId);
640  IDomainParticipant CreateParticipant(DomainId domainId,
641  IDomainParticipantListener listener, StatusKind mask);
642  IDomainParticipant CreateParticipant(DomainId domainId, DomainParticipantQos qos);
643  IDomainParticipant CreateParticipant(DomainId domainId, DomainParticipantQos qos,
644  IDomainParticipantListener listener, StatusKind mask);
645 
646  ReturnCode DeleteParticipant(IDomainParticipant participant);
647 
648  IDomainParticipant LookupParticipant(DomainId domainId);
649 
650  ReturnCode SetDefaultParticipantQos(DomainParticipantQos qos);
651  ReturnCode GetDefaultParticipantQos(ref DomainParticipantQos qos);
652 
654  ReturnCode GetQos(ref DomainParticipantFactoryQos qos);
655 
656  ReturnCode DetachAllDomains(bool blockOperations, bool deleteEntities);
657  }
659 
660  // ----------------------------------------------------------------------
661  // Entities
662  // ----------------------------------------------------------------------
667  public interface IEntity
668  {
738  ReturnCode Enable();
739 
749  IStatusCondition StatusCondition { get; }
750 
785  StatusKind StatusChanges { get; }
786 
802  }
803 
826  public interface IDomainParticipant : IEntity
827  {
848  IPublisher CreatePublisher();
849 
875  IPublisher CreatePublisher(
876  IPublisherListener listener,
877  StatusKind mask);
878 
902  IPublisher CreatePublisher(PublisherQos qos);
903 
975  IPublisher CreatePublisher(
976  PublisherQos qos,
977  IPublisherListener listener,
978  StatusKind mask);
979 
1002  ReturnCode DeletePublisher(IPublisher p);
1003 
1024  ISubscriber CreateSubscriber();
1025 
1051  ISubscriber CreateSubscriber(
1052  ISubscriberListener listener,
1053  StatusKind mask);
1054 
1078  ISubscriber CreateSubscriber(SubscriberQos qos);
1079 
1164  ISubscriber CreateSubscriber(
1165  SubscriberQos qos,
1166  ISubscriberListener listener,
1167  StatusKind mask);
1168 
1192  ReturnCode DeleteSubscriber(ISubscriber s);
1193 
1206  ISubscriber BuiltInSubscriber { get; }
1207 
1235  ITopic CreateTopic(string topicName, string typeName);
1236 
1270  ITopic CreateTopic(
1271  string topicName,
1272  string typeName,
1273  ITopicListener listener,
1274  StatusKind mask);
1275 
1302  ITopic CreateTopic(string topicName, string typeName, TopicQos qos);
1303 
1395  ITopic CreateTopic(
1396  string topicName,
1397  string typeName,
1398  TopicQos qos,
1399  ITopicListener listener,
1400  StatusKind mask);
1401 
1438  ReturnCode DeleteTopic(ITopic topic);
1439 
1476  ITopic FindTopic(string topicName, Duration timeout);
1477 
1497  ITopicDescription LookupTopicDescription(string name);
1498 
1538  IContentFilteredTopic CreateContentFilteredTopic(
1539  string name,
1540  ITopic relatedTopic,
1541  string filterExpression,
1542  params string[] expressionParameters);
1543 
1572  ReturnCode DeleteContentFilteredTopic(IContentFilteredTopic aContentFilteredTopic);
1573 
1626  IMultiTopic CreateMultiTopic(
1627  string name,
1628  string typeName,
1629  string subscriptionExpression,
1630  params string[] expressionParameters);
1631 
1659  ReturnCode DeleteMultiTopic(IMultiTopic multiTopic);
1660 
1700  ReturnCode DeleteContainedEntities();
1701 
1721  ReturnCode SetQos(DomainParticipantQos qos);
1722 
1741  ReturnCode GetQos(ref DomainParticipantQos qos);
1742 
1752  IDomainParticipantListener Listener { get; }
1753 
1777  ReturnCode SetListener(IDomainParticipantListener listener, StatusKind mask);
1778 
1782  ReturnCode IgnoreParticipant(InstanceHandle handle);
1783 
1787  ReturnCode IgnoreTopic(InstanceHandle handle);
1788 
1792  ReturnCode IgnorePublication(InstanceHandle handle);
1793 
1797  ReturnCode IgnoreSubscription(InstanceHandle handle);
1798 
1803 
1831  ReturnCode AssertLiveliness();
1832 
1857  ReturnCode SetDefaultPublisherQos(PublisherQos qos);
1858 
1888  ReturnCode GetDefaultPublisherQos(ref PublisherQos qos);
1889 
1916  ReturnCode SetDefaultSubscriberQos(SubscriberQos qos);
1917 
1947  ReturnCode GetDefaultSubscriberQos(ref SubscriberQos qos);
1948 
1976  ReturnCode SetDefaultTopicQos(TopicQos qos);
1977 
2006  ReturnCode GetDefaultTopicQos(ref TopicQos qos);
2007 
2023  bool ContainsEntity(InstanceHandle handle);
2024 
2046  ReturnCode GetCurrentTime(out Time currentTime);
2047 
2078  ReturnCode GetDiscoveredParticipants (ref InstanceHandle[] participantHandles);
2079 
2107  ReturnCode GetDiscoveredParticipantData (ref ParticipantBuiltinTopicData data, InstanceHandle handle);
2108 
2139  ReturnCode GetDiscoveredTopics (ref InstanceHandle[] topicHandles);
2140 
2167  ReturnCode GetDiscoveredTopicData (ref TopicBuiltinTopicData data, InstanceHandle handle);
2168 
2191  ReturnCode GetProperty(ref Property property);
2192 
2234  ReturnCode SetProperty(Property property);
2235 
2236  }
2237 
2238  public interface ITypeSupport
2239  {
2240  ReturnCode RegisterType(IDomainParticipant domain, string typeName);
2241  string TypeName { get; }
2242  string TypeDescriptor { get; }
2243  string KeyList { get; }
2244  }
2245 
2246  // ----------------------------------------------------------------------
2247  // Topics
2248  // ----------------------------------------------------------------------
2255  public interface ITopicDescription
2256  {
2261  string TypeName { get; }
2266  string Name { get; }
2278  IDomainParticipant Participant { get; }
2279  }
2280 
2291  public interface ITopic : IEntity, ITopicDescription
2292  {
2312  ReturnCode GetInconsistentTopicStatus(ref InconsistentTopicStatus aStatus);
2330  ReturnCode GetQos(ref TopicQos qos);
2368  ReturnCode SetQos(TopicQos qos);
2378  ITopicListener Listener { get; }
2434  ReturnCode SetListener(ITopicListener listener, StatusKind mask);
2435  }
2436 
2448  {
2461  string GetFilterExpression();
2491  ReturnCode GetExpressionParameters(ref string[] expressionParameters);
2521  ReturnCode SetExpressionParameters(params string[] expressionParameters);
2529  ITopic RelatedTopic { get; }
2530  }
2531 
2545  public interface IMultiTopic : ITopicDescription
2546  {
2562  string SubscriptionExpression { get; }
2586  ReturnCode GetExpressionParameters(ref string[] expressionParameters);
2610  ReturnCode SetExpressionParameters(params string[] expressionParameters);
2611  }
2612 
2613  // ----------------------------------------------------------------------
2614  // IPublisher/ISubscriber, IDataWriter/IDataReader
2615  // ----------------------------------------------------------------------
2624  public interface IPublisher : IEntity
2625  {
2636  IDataWriter CreateDataWriter(ITopic topic);
2649  IDataWriter CreateDataWriter(
2650  ITopic topic,
2651  IDataWriterListener listener, StatusKind mask);
2663  IDataWriter CreateDataWriter(ITopic topic, DataWriterQos qos);
2688  IDataWriter CreateDataWriter(
2689  ITopic topic,
2690  DataWriterQos qos,
2691  IDataWriterListener listener,
2692  StatusKind mask);
2716  ReturnCode DeleteDataWriter(IDataWriter dataWriter);
2729  IDataWriter LookupDataWriter(string topicName);
2747  ReturnCode DeleteContainedEntities();
2784  ReturnCode SetQos(PublisherQos qos);
2804  ReturnCode GetQos(ref PublisherQos qos);
2813  IPublisherListener Listener { get; }
2887  ReturnCode SetListener(IPublisherListener listener, StatusKind mask);
2921  ReturnCode SuspendPublications();
2943  ReturnCode ResumePublications();
2987  ReturnCode BeginCoherentChanges();
3005  ReturnCode EndCoherentChanges();
3057  ReturnCode WaitForAcknowledgments(Duration maxWait);
3067  IDomainParticipant GetParticipant();
3099  ReturnCode SetDefaultDataWriterQos(DataWriterQos qos);
3127  ReturnCode GetDefaultDataWriterQos(ref DataWriterQos qos);
3159  ReturnCode CopyFromTopicQos(ref DataWriterQos dataWriterQos, TopicQos topicQos);
3160  }
3161 
3175  public interface IDataWriter : IEntity
3176  {
3215  ReturnCode SetQos(DataWriterQos qos);
3236  ReturnCode GetQos(ref DataWriterQos qos);
3245  IDataWriterListener Listener { get; }
3320  ReturnCode SetListener(IDataWriterListener listener, StatusKind mask);
3324  ITopic Topic { get; }
3328  IPublisher Publisher { get; }
3376  ReturnCode WaitForAcknowledgments(Duration maxWait);
3401  ReturnCode GetLivelinessLostStatus(ref LivelinessLostStatus status);
3424  ReturnCode GetOfferedDeadlineMissedStatus(ref OfferedDeadlineMissedStatus status);
3449  ReturnCode GetOfferedIncompatibleQosStatus(ref OfferedIncompatibleQosStatus status);
3492  ReturnCode GetPublicationMatchedStatus(ref PublicationMatchedStatus status);
3518  ReturnCode AssertLiveliness();
3568  ReturnCode GetMatchedSubscriptions(ref InstanceHandle[] subscriptionHandles);
3611  ReturnCode GetMatchedSubscriptionData(
3612  ref SubscriptionBuiltinTopicData subscriptionData,
3613  InstanceHandle subscriptionHandle);
3614 
3615 #if DOXYGEN_FOR_CS
3616 //
3617 // The above compile switch is never (and must never) be defined in normal compilation.
3618 //
3619 // QoS and Policy related enums are part of the generated code for builtin topics.
3620 // They are repeated here for easy documentation generation.
3621 //
3622 
3638  InstanceHandle RegisterInstance(<type> instanceData);
3639 
3657  InstanceHandle RegisterInstanceWithTimestamp(
3658  <type> instanceData,
3659  Time sourceTimestamp);
3660 
3677  ReturnCode UnregisterInstance(
3678  <type> instanceData,
3679  InstanceHandle instanceHandle);
3680 
3698  ReturnCode UnregisterInstanceWithTimestamp(
3699  <type> instanceData,
3700  InstanceHandle instanceHandle,
3701  Time sourceTimestamp);
3702 
3717  ReturnCode Write(<type> instanceData);
3718 
3733  ReturnCode Write(
3734  <type> instanceData,
3735  InstanceHandle instanceHandle);
3736 
3751  ReturnCode WriteWithTimestamp(
3752  <type> instanceData,
3753  Time sourceTimestamp);
3754 
3771  ReturnCode WriteWithTimestamp(
3772  <type> instanceData,
3773  InstanceHandle instanceHandle,
3774  Time sourceTimestamp);
3775 
3790  ReturnCode Dispose(
3791  <type> instanceData,
3792  InstanceHandle instanceHandle);
3793 
3810  ReturnCode DisposeWithTimestamp(
3811  <type> instanceData,
3812  InstanceHandle instanceHandle,
3813  Time sourceTimestamp);
3814 
3830  ReturnCode WriteDispose(
3831  <type> instanceData);
3832 
3849  ReturnCode WriteDispose(
3850  <type> instanceData,
3851  InstanceHandle instanceHandle);
3852 
3869  ReturnCode WriteDisposeWithTimestamp(
3870  <type> instanceData,
3871  Time sourceTimestamp);
3872 
3889  ReturnCode WriteDisposeWithTimestamp(
3890  <type> instanceData,
3891  InstanceHandle instanceHandle,
3892  Time sourceTimestamp);
3893 
3908  ReturnCode GetKeyValue(
3909  ref <type> key,
3910  InstanceHandle instanceHandle);
3911 
3927  InstanceHandle LookupInstance(<type> instanceData);
3928 
3929 #endif
3930 
3931  }
3944  public interface ISubscriber : IEntity
3945  {
3968  IDataReader CreateDataReader(ITopicDescription topic);
3969 
3997  IDataReader CreateDataReader(
3998  ITopicDescription topic,
3999  IDataReaderListener listener, StatusKind mask);
4000 
4028  IDataReader CreateDataReader(ITopicDescription topic, DataReaderQos qos);
4029 
4107  IDataReader CreateDataReader(
4108  ITopicDescription topic,
4109  DataReaderQos qos,
4110  IDataReaderListener listener,
4111  StatusKind mask);
4112 
4138  ReturnCode DeleteDataReader(IDataReader dataReader);
4139 
4160  ReturnCode DeleteContainedEntities();
4161 
4178  IDataReader LookupDataReader(string topicName);
4179 
4199  // EndAccess() block as required by its QosPolicy settings.</item>
4201  ReturnCode GetDataReaders(ref IDataReader[] readers);
4202 
4240  // EndAccess() block as required by its QosPolicy settings.</item>
4242  ReturnCode GetDataReaders(
4243  ref IDataReader[] readers,
4244  SampleStateKind sampleStates,
4245  ViewStateKind viewStates,
4246  InstanceStateKind instanceStates);
4247 
4277  ReturnCode NotifyDataReaders();
4278 
4313  ReturnCode SetQos(SubscriberQos qos);
4314 
4335  ReturnCode GetQos(ref SubscriberQos qos);
4336 
4345  ISubscriberListener Listener { get; }
4346 
4374  ReturnCode SetListener(ISubscriberListener listener, StatusKind mask);
4375 
4415  ReturnCode BeginAccess();
4416 
4446  ReturnCode EndAccess();
4447 
4451  IDomainParticipant Participant { get; }
4452 
4484  ReturnCode SetDefaultDataReaderQos(DataReaderQos qos);
4485 
4515  ReturnCode GetDefaultDataReaderQos(ref DataReaderQos qos);
4516 
4547  ReturnCode CopyFromTopicQos(ref DataReaderQos dataReaderQos, TopicQos topicQos);
4548 
4549  }
4550 
4562  public interface IDataReader : IEntity
4563  {
4575  IReadCondition CreateReadCondition();
4576 
4600  IReadCondition CreateReadCondition(
4601  SampleStateKind sampleStates,
4602  ViewStateKind viewStates,
4603  InstanceStateKind instanceStates);
4604 
4632  IQueryCondition CreateQueryCondition(
4633  string queryExpression,
4634  params string[] queryParameters);
4635 
4675  IQueryCondition CreateQueryCondition(
4676  SampleStateKind sampleStates,
4677  ViewStateKind viewStates,
4678  InstanceStateKind instanceStates,
4679  string queryExpression,
4680  params string[] queryParameters);
4681 
4705  ReturnCode DeleteReadCondition(IReadCondition condition);
4706 
4724  ReturnCode DeleteContainedEntities();
4725 
4763  ReturnCode SetQos(DataReaderQos qos);
4764 
4784  ReturnCode GetQos(ref DataReaderQos qos);
4785 
4794  IDataReaderListener Listener { get; }
4795 
4803  ReturnCode SetListener(IDataReaderListener listener, StatusKind mask);
4804 
4814  ITopicDescription GetTopicDescription();
4815 
4819  ISubscriber Subscriber { get; }
4820 
4841  ReturnCode GetSampleRejectedStatus(ref SampleRejectedStatus status);
4842 
4865  ReturnCode GetLivelinessChangedStatus(ref LivelinessChangedStatus status);
4866 
4889  ReturnCode GetRequestedDeadlineMissedStatus(ref RequestedDeadlineMissedStatus status);
4890 
4918  ReturnCode GetRequestedIncompatibleQosStatus(ref RequestedIncompatibleQosStatus status);
4919 
4960  ReturnCode GetSubscriptionMatchedStatus(ref SubscriptionMatchedStatus status);
4961 
4985  ReturnCode GetSampleLostStatus(ref SampleLostStatus status);
4986 
5032  ReturnCode WaitForHistoricalData(Duration maxWait);
5033 
5079  ReturnCode GetMatchedPublications(ref InstanceHandle[] publicationHandles);
5080 
5118  ReturnCode GetMatchedPublicationData(
5119  ref PublicationBuiltinTopicData publicationData,
5120  InstanceHandle publicationHandle);
5121 
5122 #if DOXYGEN_FOR_CS
5123 //
5124 // The above compile switch is never (and must never) be defined in normal compilation.
5125 //
5126 // QoS and Policy related enums are part of the generated code for builtin topics.
5127 // They are repeated here for easy documentation generation.
5128 //
5129 
5144  ReturnCode Read(
5145  ref <data>[] dataValues,
5146  ref SampleInfo[] sampleInfos);
5147 
5162  ReturnCode Read(
5163  ref <data> dataValues,
5164  ref SampleInfo[] sampleInfos,
5165  int maxSamples);
5166 
5186  ReturnCode Read(
5187  ref <data>[] dataValues,
5188  ref SampleInfo[] sampleInfos,
5189  SampleStateKind sampleStates,
5190  ViewStateKind viewStates,
5191  InstanceStateKind instanceStates);
5192 
5213  ReturnCode Read(
5214  ref <data>[] dataValues,
5215  ref SampleInfo[] sampleInfos,
5216  int maxSamples,
5217  SampleStateKind sampleStates,
5218  ViewStateKind viewStates,
5219  InstanceStateKind instanceStates);
5220 
5235  ReturnCode Take(
5236  ref <data>[] dataValues,
5237  ref SampleInfo[] sampleInfos);
5238 
5253  ReturnCode Take(
5254  ref <data>[] dataValues,
5255  ref SampleInfo[] sampleInfos,
5256  int maxSamples);
5257 
5277  ReturnCode Take(
5278  ref <data>[] dataValues,
5279  ref SampleInfo[] sampleInfos,
5280  SampleStateKind sampleStates,
5281  ViewStateKind viewStates,
5282  InstanceStateKind instanceStates);
5283 
5304  ReturnCode Take(
5305  ref <data>[] dataValues,
5306  ref SampleInfo[] sampleInfos,
5307  int maxSamples,
5308  SampleStateKind sampleStates,
5309  ViewStateKind viewStates,
5310  InstanceStateKind instanceStates);
5311 
5329  ReturnCode ReadWithCondition(
5330  ref <data>[] dataValues,
5331  ref SampleInfo[] sampleInfos,
5332  IReadCondition readCondition);
5333 
5352  ReturnCode ReadWithCondition(
5353  ref <data>[] dataValues,
5354  ref SampleInfo[] sampleInfos,
5355  int maxSamples,
5356  IReadCondition readCondition);
5357 
5375  ReturnCode TakeWithCondition(
5376  ref <data>[] dataValues,
5377  ref SampleInfo[] sampleInfos,
5378  IReadCondition readCondition);
5379 
5398  ReturnCode TakeWithCondition(
5399  ref <data>[] dataValues,
5400  ref SampleInfo[] sampleInfos,
5401  int maxSamples,
5402  IReadCondition readCondition);
5403 
5422  ReturnCode ReadNextSample(
5423  ref Space.Foo dataValue,
5424  ref SampleInfo sampleInfo);
5425 
5444  ReturnCode TakeNextSample(
5445  ref Space.Foo dataValue,
5446  ref SampleInfo sampleInfo);
5447 
5465  ReturnCode ReadInstance(
5466  ref <data>[] dataValues,
5467  ref SampleInfo[] sampleInfos,
5468  InstanceHandle instanceHandle);
5469 
5488  ReturnCode ReadInstance(
5489  ref <data>[] dataValues,
5490  ref SampleInfo[] sampleInfos,
5491  int maxSamples,
5492  InstanceHandle instanceHandle);
5493 
5515  ReturnCode ReadInstance(
5516  ref <data>[] dataValues,
5517  ref SampleInfo[] sampleInfos,
5518  int maxSamples,
5519  InstanceHandle instanceHandle,
5520  SampleStateKind sampleStates,
5521  ViewStateKind viewStates,
5522  InstanceStateKind instanceStates);
5523 
5541  ReturnCode TakeInstance(
5542  ref <data>[] dataValues,
5543  ref SampleInfo[] sampleInfos,
5544  InstanceHandle instanceHandle);
5545 
5564  ReturnCode TakeInstance(
5565  ref <data>[] dataValues,
5566  ref SampleInfo[] sampleInfos,
5567  int maxSamples,
5568  InstanceHandle instanceHandle);
5569 
5591  ReturnCode TakeInstance(
5592  ref <data>[] dataValues,
5593  ref SampleInfo[] sampleInfos,
5594  int maxSamples,
5595  InstanceHandle instanceHandle,
5596  SampleStateKind sampleStates,
5597  ViewStateKind viewStates,
5598  InstanceStateKind instanceStates);
5599 
5617  ReturnCode ReadNextInstance(
5618  ref <data>[] dataValues,
5619  ref SampleInfo[] sampleInfos,
5620  InstanceHandle instanceHandle);
5621 
5640  ReturnCode ReadNextInstance(
5641  ref <data>[] dataValues,
5642  ref SampleInfo[] sampleInfos,
5643  int maxSamples,
5644  InstanceHandle instanceHandle);
5645 
5667  ReturnCode ReadNextInstance(
5668  ref <data>[] dataValues,
5669  ref SampleInfo[] sampleInfos,
5670  int maxSamples,
5671  InstanceHandle instanceHandle,
5672  SampleStateKind sampleStates,
5673  ViewStateKind viewStates,
5674  InstanceStateKind instanceStates);
5675 
5693  ReturnCode TakeNextInstance(
5694  ref <data>[] dataValues,
5695  ref SampleInfo[] sampleInfos,
5696  InstanceHandle instanceHandle);
5697 
5716  ReturnCode TakeNextInstance(
5717  ref <data>[] dataValues,
5718  ref SampleInfo[] sampleInfos,
5719  int maxSamples,
5720  InstanceHandle instanceHandle);
5721 
5743  ReturnCode TakeNextInstance(
5744  ref <data>[] dataValues,
5745  ref SampleInfo[] sampleInfos,
5746  int maxSamples,
5747  InstanceHandle instanceHandle,
5748  SampleStateKind sampleStates,
5749  ViewStateKind viewStates,
5750  InstanceStateKind instanceStates);
5751 
5772  ReturnCode ReadNextInstanceWithCondition(
5773  ref <data>[] dataValues,
5774  ref SampleInfo[] sampleInfos,
5775  InstanceHandle instanceHandle,
5776  IReadCondition readCondition);
5777 
5799  ReturnCode ReadNextInstanceWithCondition(
5800  ref <data>[] dataValues,
5801  ref SampleInfo[] sampleInfos,
5802  int maxSamples,
5803  InstanceHandle instanceHandle,
5804  IReadCondition readCondition);
5805 
5826  ReturnCode TakeNextInstanceWithCondition(
5827  ref <data>[] dataValues,
5828  ref SampleInfo[] sampleInfos,
5829  InstanceHandle instanceHandle,
5830  IReadCondition readCondition);
5831 
5853  ReturnCode TakeNextInstanceWithCondition(
5854  ref <data>[] dataValues,
5855  ref SampleInfo[] sampleInfos,
5856  int maxSamples,
5857  InstanceHandle instanceHandle,
5858  IReadCondition readCondition);
5859 
5875  ReturnCode ReturnLoan(
5876  ref <data>[] dataValues,
5877  ref SampleInfo[] sampleInfos);
5878 
5893  ReturnCode GetKeyValue(
5894  ref <data> key,
5895  InstanceHandle handle);
5896 
5911  InstanceHandle LookupInstance(
5912  <data> instance);
5913 
5914 #endif // DOXYGEN_FOR_CS
5915 
5916  }
5917 
5918  // listener interfaces
5919 
5920  public interface IListener
5921  {
5922  // Just an empty tagging interface.
5923  }
5946  public interface ITopicListener : IListener
5947  {
5961  void OnInconsistentTopic(ITopic entityInterface, InconsistentTopicStatus status);
5962  }
5963 
6004  public interface IDataWriterListener : IListener
6005  {
6018  void OnOfferedDeadlineMissed(IDataWriter entityInterface, OfferedDeadlineMissedStatus status);
6030  void OnOfferedIncompatibleQos(IDataWriter entityInterface, OfferedIncompatibleQosStatus status);
6046  void OnLivelinessLost(IDataWriter entityInterface, LivelinessLostStatus status);
6066 
6067  void OnPublicationMatched(IDataWriter entityInterface, PublicationMatchedStatus status);
6068  }
6094  {
6095  }
6151  public interface IDataReaderListener : IListener
6152  {
6153 
6170  void OnRequestedDeadlineMissed(IDataReader entityInterface, RequestedDeadlineMissedStatus status);
6171 
6189  void OnRequestedIncompatibleQos(IDataReader entityInterface, RequestedIncompatibleQosStatus status);
6190 
6205  void OnSampleRejected(IDataReader entityInterface, SampleRejectedStatus status);
6206 
6226  void OnLivelinessChanged(IDataReader entityInterface, LivelinessChangedStatus status);
6227 
6254  void OnDataAvailable(IDataReader entityInterface);
6255 
6277 
6278  void OnSubscriptionMatched(IDataReader entityInterface, SubscriptionMatchedStatus status);
6279 
6283  void OnSampleLost(IDataReader entityInterface, SampleLostStatus status);
6284  }
6285 
6311  {
6329  void OnDataOnReaders(ISubscriber entityInterface);
6330  }
6362  {
6363  }
6364 
6369  public interface IQosProvider {
6370 
6371 
6372  ReturnCode
6373  GetParticipantQos (
6374  ref DomainParticipantQos participantQos,
6375  string id);
6376 
6377  ReturnCode
6378  GetTopicQos (
6379  ref TopicQos topicQos,
6380  string id);
6381 
6382  ReturnCode
6383  GetSubscriberQos (
6384  ref SubscriberQos subscriberQos,
6385  string id);
6386 
6387  ReturnCode
6388  GetDataReaderQos (
6389  ref DataReaderQos datareaderQos,
6390  string id);
6391 
6392  ReturnCode
6393  GetPublisherQos (
6394  ref PublisherQos publisherQos,
6395  string id);
6396 
6397  ReturnCode
6398  GetDataWriterQos (
6399  ref DataWriterQos datawriterQos,
6400  string id);
6401 
6402  // Future expansion will allow the user to share QoSs over DDS
6403  //
6404  // ReturnCode_t
6405  // subscribe ();
6406  //
6407  // ReturnCode_t
6408  // publish ();
6409  }
6411 
6412 
6413 } // end namespace DDS
An IGuardCondition object is a specific ICondition whose TriggerValue is completely under the control...
Since a Subscriber is an Entity, it has the ability to have a Listener associated with it...
bool GetTriggerValue()
Each ICondition has a TriggerValue that can be true or false and is set by the DDS depending on the e...
IDataWriter allows the application to set the value of the sample to be published under a given ITopi...
All the DCPS IEntity objects are attached to a IDomainParticipant. A IDomainParticipant represents th...
The DataWriter has found a DataReader that matches the Topic and has compatible QoS or ceased to be m...
PlaceHolder for a domain ID.
IContentFilteredTopic is a specialization of ITopicDescription that allows for content based subscrip...
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
The deadline that the DataReader was expecting through its QoS policy was not respected for a specifi...
Since a DataWriter is an Entity, it has the ability to have a IListener associated with it...
A received sample was rejected.
A IDataReader allows the application: to declare data it wishes to receive (i.e., make a subscription...
Class that contains information about available DomainParticipants within the system.
The class SampleInfo represents the additional information that accompanies the data in each sample t...
The IPublisher acts on behalf of one or more IDataWriter objects that belong to it. When it is informed of a change to the data associated with one of its IDataWriter objects, it decides when it is appropriate to actually process the sample-update message. In making this decision, it considers the PublisherQos and the DataWriterQos.
InstanceStateKind
For each instance the Data Distribution Service internally maintains an InstanceState.
A QoS policy requested is incompatible with the offered QoS policy by DataWriter. ...
ITopic is the most basic description of the data to be published and subscribed.
Class that contains information about available DataReaders within the system.
The deadline QoS set by the DataWriter was not respected for a specific instance
IReadCondition objects allow an IDataReader to specify the data samples it is interested in ...
This class provides the basic mechanism for an application to specify Quality of Service attributes f...
An IWaitSet object allows an application to wait until one or more of the attached ICondition objects...
Definition: Typed.cs:32
Since a IDataReader is an Entity, it has the ability to have a IListener associated with it...
Since a ITopic is an Entity, it has the ability to have a IListener associated with it...
Example of a generated data type, used for documentation.
Definition: Typed.cs:48
A ISubscriber is the object responsible for the actual reception of the data resulting from its subsc...
The DataReader has found a DataWriter that matches the Topic and has compatible QoS or ceased to be m...
This class is an abstract class. It is the base class for ITopic, IContentFilteredTopic and IMultiTop...
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
This class is the abstract base class for all the DCPS objects. It acts as a generic class for IEntit...
Time represents a time value.
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
ReturnCode
This is the enum that represents the various ReturnCode values that DDS operations return...
Definition: DdsDcpsEnums.cs:32
Specialized class of ICondition, which allows accesss and to be triggered on the related communicatio...
Since a DomainParticipant is an Entity, it has the ability to have a Listener associated with it...
Base class for all Conditions that maybe attached to an IWaitSet.
Since a Publisher is an Entity, it has the ability to have a Listener associated with it...
The liveliness of one or more DataWriter that were writing instances have become "active" or "inactiv...
Class that contains information about available DataWriters within the system.
Indicates that a sample has been lost.
Class to hold the handle associated with in sample instance.
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
IQueryCondition objects are specialized IReadCondition objects that allow the application to specify ...
Indicates that the DataReader has already accessed that sample by means of read. Had the sample been ...
Duration represents a time interval.
This class provides the basic mechanism for an application to specify Quality of Service attributes f...
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.
StatusKind
Each concrete Entity class has a set of Status attributes and for each attribute the Entity class pro...
Another topic exists with the same name but different characteristics.
This struct provides the basic mechanism for an application to specify Quality of Service attributes ...
ViewStateKind
For each instance (identified by the key), the Data Distribution Service internally maintains a ViewS...
IMultiTopic is a specialization of ITopicDescription that allows subscriptions to combine...
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...