OpenSplice C# API  v6.x
OpenSplice C# Data Distribution Service Data-Centric Publish-Subscribe API
DDS.IDataReader Interface Reference

A IDataReader allows the application: to declare data it wishes to receive (i.e., make a subscription) to access data received by the associated ISubscriber. A IDataReader refers to exactly one ITopicDescription (either a ITopic, a IContentFilteredTopic or a IMultiTopic) that identifies the samples to be read. The IDataReader may give access to several instances of the data type, which are distinguished from each other by their key. IDataReader is an abstract class. It is specialized for each particular application data type. For a fictional application data type Space (defined in the module SPACE) the specialized class would be SPACE.SpaceDataReader. More...

Inheritance diagram for DDS.IDataReader:
Inheritance graph
Collaboration diagram for DDS.IDataReader:
Collaboration graph

Public Member Functions

IQueryCondition CreateQueryCondition (string queryExpression, params string[] queryParameters)
 This operation creates a new IQueryCondition for the IDataReader. More...
 
IQueryCondition CreateQueryCondition (SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates, string queryExpression, params string[] queryParameters)
 This operation creates a new IQueryCondition for the IDataReader. More...
 
IReadCondition CreateReadCondition ()
 This operation creates a new IReadCondition for the IDataReader. More...
 
IReadCondition CreateReadCondition (SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates)
 This operation creates a new IReadCondition for the IDataReader. More...
 
ReturnCode DeleteContainedEntities ()
 This operation deletes all the IEntity objects that were created by means of one of the Create operations on the IDataReader. More...
 
ReturnCode DeleteReadCondition (IReadCondition condition)
 This operation deletes a IReadCondition or IQueryCondition which is attached to the IDataReader. More...
 
ReturnCode GetKeyValue (ref< data > key, InstanceHandle handle)
 This operation retrieves the key value of a specific instance (abstract). More...
 
ReturnCode GetLivelinessChangedStatus (ref LivelinessChangedStatus status)
 This operation obtains the LivelinessChangedStatus struct of the IDataReader. More...
 
ReturnCode GetMatchedPublicationData (ref PublicationBuiltinTopicData publicationData, InstanceHandle publicationHandle)
 This operation retrieves information on the specified publication that is currently “associated” with the IDataReader. More...
 
ReturnCode GetMatchedPublications (ref InstanceHandle[] publicationHandles)
 This operation retrieves the list of publications currently "associated" with the DataReader. More...
 
ReturnCode GetQos (ref DataReaderQos qos)
 This operation allows access to the existing set of QoS policies for a IDataReader. More...
 
ReturnCode GetRequestedDeadlineMissedStatus (ref RequestedDeadlineMissedStatus status)
 This operation obtains the DDS.RequestedDeadlineMissedStatus struct of the IDataReader. More...
 
ReturnCode GetRequestedIncompatibleQosStatus (ref RequestedIncompatibleQosStatus status)
 This operation obtains the DDS.RequestedIncompatibleQosStatus struct of the IDataReader. More...
 
ReturnCode GetSampleLostStatus (ref SampleLostStatus status)
 This operation obtains the DDS.SampleLostStatus struct of the IDataReader. More...
 
ReturnCode GetSampleRejectedStatus (ref SampleRejectedStatus status)
 This operation obtains the DDS.SampleRejectedStatus of the IDataReader. More...
 
ReturnCode GetSubscriptionMatchedStatus (ref SubscriptionMatchedStatus status)
 This operation obtains the DDS.SubscriptionMatchedStatus struct of the IDataReader. More...
 
ITopicDescription GetTopicDescription ()
 This operation returns the DDS.ITopicDescription which is associated with the IDataReader. More...
 
InstanceHandle LookupInstance (< data > instance)
 This operation returns the handle which corresponds to the instance data (abstract). More...
 
ReturnCode Read (ref< data >[] dataValues, ref SampleInfo[] sampleInfos)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode Read (ref< data > dataValues, ref SampleInfo[] sampleInfos, int maxSamples)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode Read (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode Read (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, InstanceHandle instanceHandle)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadNextInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, InstanceHandle instanceHandle)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadNextInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadNextInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadNextInstanceWithCondition (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, InstanceHandle instanceHandle, IReadCondition readCondition)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadNextInstanceWithCondition (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle, IReadCondition readCondition)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadNextSample (ref Space.Foo dataValue, ref SampleInfo sampleInfo)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadWithCondition (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, IReadCondition readCondition)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReadWithCondition (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, IReadCondition readCondition)
 This operation reads an array of typed samples from the DataReader (abstract). More...
 
ReturnCode ReturnLoan (ref< data >[] dataValues, ref SampleInfo[] sampleInfos)
 This operation indicates to the DataReader that the application is done accessing the dataValues and sampleInfos arrays (abstract). More...
 
ReturnCode SetListener (IDataReaderListener listener, StatusKind mask)
 This operation attaches a IDataReaderListener to the IDataReader. More...
 
ReturnCode SetQos (DataReaderQos qos)
 This operation replaces the existing set of QosPolicy settings for a IDataReader. More...
 
ReturnCode Take (ref< data >[] dataValues, ref SampleInfo[] sampleInfos)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode Take (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode Take (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode Take (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, InstanceHandle instanceHandle)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeNextInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, InstanceHandle instanceHandle)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeNextInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeNextInstance (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle, SampleStateKind sampleStates, ViewStateKind viewStates, InstanceStateKind instanceStates)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeNextInstanceWithCondition (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, InstanceHandle instanceHandle, IReadCondition readCondition)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeNextInstanceWithCondition (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, InstanceHandle instanceHandle, IReadCondition readCondition)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeNextSample (ref Space.Foo dataValue, ref SampleInfo sampleInfo)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeWithCondition (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, IReadCondition readCondition)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode TakeWithCondition (ref< data >[] dataValues, ref SampleInfo[] sampleInfos, int maxSamples, IReadCondition readCondition)
 This operation takes an array of typed samples from the DataReader (abstract). More...
 
ReturnCode WaitForHistoricalData (Duration maxWait)
 This operation will block the application thread until all historical data is received. More...
 
- Public Member Functions inherited from DDS.IEntity
ReturnCode Enable ()
 This operation enables the IEntity on which it is being called when the IEntity was created with the EntityFactoryQosPolicy set to false. More...
 

Properties

IDataReaderListener Listener [get]
 This property returns the IDataReaderListener currently attached to the IDataReader. More...
 
ISubscriber Subscriber [get]
 This property returns the ISubscriber to which the IDataReader belongs. More...
 
- Properties inherited from DDS.IEntity
InstanceHandle InstanceHandle [get]
 This operation returns the InstanceHandle of the builtin topic sample that represents the specified IEntity. More...
 
StatusKind StatusChanges [get]
 This operation returns a mask with the communication statuses in the IEntity that are triggered. More...
 
IStatusCondition StatusCondition [get]
 This property allows access to the IStatusCondition associated with the IEntity. More...
 

Detailed Description

A IDataReader allows the application: to declare data it wishes to receive (i.e., make a subscription) to access data received by the associated ISubscriber. A IDataReader refers to exactly one ITopicDescription (either a ITopic, a IContentFilteredTopic or a IMultiTopic) that identifies the samples to be read. The IDataReader may give access to several instances of the data type, which are distinguished from each other by their key. IDataReader is an abstract class. It is specialized for each particular application data type. For a fictional application data type Space (defined in the module SPACE) the specialized class would be SPACE.SpaceDataReader.

Definition at line 4562 of file DdsDcpsInterfaces.cs.

Member Function Documentation

◆ CreateQueryCondition() [1/2]

IQueryCondition DDS.IDataReader.CreateQueryCondition ( string  queryExpression,
params string []  queryParameters 
)

This operation creates a new IQueryCondition for the IDataReader.

The returned IQueryCondition is attached (and belongs) to the IDataReader. When the operation fails, null is returned. To delete the IQueryCondition the operation DeleteReadCondition or DeleteContainedEntities must be used.

Samples with Any kind for SampleStates, ViewStates and InstanceStates will be read.

SQL Expression
The SQL query string is set by queryExpression which must be a subset of the SQL query language. In this query expression, parameters may be used, which must be set in the sequence of strings defined by the parameter queryParameters. A parameter is a string which can define an integer, float, string or enumeration. The number of values in queryParameters must be equal or greater than the highest referenced n token in the queryExpression (e.g. if %1 and %8 are used as parameters in the queryExpression , the queryParameters should at least contain n+1 = 9 values).

Parameters
queryExpressionThe query string, which must be a subset of the SQL query language.
queryParametersA sequence of strings which are the parameter values used in the SQL query string (i.e., the tokens in the expression). The number of values in queryParameters must be equal or greater than the highest referenced n token in the queryExpression (e.g.if %1 and %8 are used as parameters in the queryExpression, the queryParameters should at least contain n+1 = 9 values).
Returns
New IQueryCondition. When the operation fails, null is returned.

◆ CreateQueryCondition() [2/2]

IQueryCondition DDS.IDataReader.CreateQueryCondition ( SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates,
string  queryExpression,
params string []  queryParameters 
)

This operation creates a new IQueryCondition for the IDataReader.

The returned IQueryCondition is attached (and belongs) to the IDataReader. When the operation fails, null is returned. To delete the IQueryCondition the operation DeleteReadCondition or DeleteContainedEntities must be used.

State Masks
The result of the IQueryCondition also depends on the selection of samples determined by three masks:

  • SampleStates is the mask, which selects only those samples with the desired sample states SampleStateKind Read, NotRead or both
  • ViewStates is the mask, which selects only those samples with the desired view states ViewStateKind New, NotNew or both
  • InstanceStates is the mask, which selects only those samples with the desired instance states InstanceStateKind Alive, NotAliveDisposed, NotAliveNoWriters or a combination of these.

SQL Expression
The SQL query string is set by queryExpression which must be a subset of the SQL query language. In this query expression, parameters may be used, which must be set in the sequence of strings defined by the parameter queryParameters. A parameter is a string which can define an integer, float, string or enumeration. The number of values in queryParameters must be equal or greater than the highest referenced n token in the queryExpression (e.g. if %1 and %8 are used as parameters in the queryExpression , the queryParameters should at least contain n+1 = 9 values).

Parameters
sampleStatesA mask, which selects only those samples with the desired sample states.
viewStatesA mask, which selects only those samples with the desired view states.
instanceStatesA mask, which selects only those samples with the desired instance states.
queryExpressionThe query string, which must be a subset of the SQL query language.
queryParametersA sequence of strings which are the parameter values used in the SQL query string (i.e., the tokens in the expression). The number of values in queryParameters must be equal or greater than the highest referenced n token in the queryExpression (e.g.if %1 and %8 are used as parameters in the queryExpression, the queryParameters should at least contain n+1 = 9 values).
Returns
New IQueryCondition. When the operation fails, null is returned.

◆ CreateReadCondition() [1/2]

IReadCondition DDS.IDataReader.CreateReadCondition ( )

This operation creates a new IReadCondition for the IDataReader.

The returned IReadCondition is attached (and belongs) to the IDataReader. When the operation fails, null is returned. To delete the IReadCondition the operation DeleteReadCondition or DeleteContainedEntities must be used.

Samples with Any kind for SampleStates, ViewStates and InstanceStates will be read.

Returns
New IReadCondition. When the operation fails, null is returned.

◆ CreateReadCondition() [2/2]

IReadCondition DDS.IDataReader.CreateReadCondition ( SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates 
)

This operation creates a new IReadCondition for the IDataReader.

The returned IReadCondition is attached (and belongs) to the IDataReader. When the operation fails, null is returned. To delete the IReadCondition the operation DeleteReadCondition or DeleteContainedEntities must be used.

State Masks
The result of the IReadCondition also depends on the selection of samples determined by three masks:

  • SampleStates is the mask, which selects only those samples with the desired sample states SampleStateKind Read, NotRead or both
  • ViewStates is the mask, which selects only those samples with the desired view states ViewStateKind New, NotNew or both
  • InstanceStates is the mask, which selects only those samples with the desired instance states InstanceStateKind Alive, NotAliveDisposed, NotAliveNoWriters or a combination of these.
Parameters
sampleStatesA mask, which selects only those samples with the desired sample states.
viewStatesA mask, which selects only those samples with the desired view states.
instanceStatesA mask, which selects only those samples with the desired instance states.
Returns
New IReadCondition. When the operation fails, null is returned.

◆ DeleteContainedEntities()

ReturnCode DDS.IDataReader.DeleteContainedEntities ( )

This operation deletes all the IEntity objects that were created by means of one of the Create operations on the IDataReader.

This operation deletes all the IEntity objects that were created by means of one of the Create operations on the IDataReader. In other words, it deletes all IQueryCondition and IReadCondition objects contained by the IDataReader.

Returns
Return codes are:

◆ DeleteReadCondition()

ReturnCode DDS.IDataReader.DeleteReadCondition ( IReadCondition  condition)

This operation deletes a IReadCondition or IQueryCondition which is attached to the IDataReader.

This operation deletes a IReadCondition or IQueryCondition which is attached to the IDataReader. Since a IQueryCondition is a specialized IReadCondition, the operation can also be used to delete a IQueryCondition. A IReadCondition or IQueryCondition cannot be deleted when it is not attached to this IDataReader. When the operation is called on a IReadCondition or IQueryCondition which was not at t ached to this IDataReader, the operation returns PreconditionNotMet.

Parameters
conditionThe IReadCondition or IQueryCondition which is to be deleted.
Returns
Return codes are:

◆ GetKeyValue()

ReturnCode DDS.IDataReader.GetKeyValue ( ref< data >  key,
InstanceHandle  handle 
)

This operation retrieves the key value of a specific instance (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.GetKeyValue(ref Space.Foo key, DDS.InstanceHandle handle)

◆ GetLivelinessChangedStatus()

ReturnCode DDS.IDataReader.GetLivelinessChangedStatus ( ref LivelinessChangedStatus  status)

This operation obtains the LivelinessChangedStatus struct of the IDataReader.

This obtains returns the LivelinessChangedStatus struct of the IDataReader. This struct contains the information whether the liveliness of one or more IDataWriter objects that were writing instances read by the IDataReader has changed. In other words, some IDataWriter have become alive or not alive. The LivelinessChangedStatus can also be monitored using a IDataReaderListener or by using the associated IStatusCondition.

Parameters
statusA reference to LivelinessChangedStatus where the contents of the LivelinessChangedStatus of the IDataReader will be copied into.
Returns
Return codes are:

◆ GetMatchedPublicationData()

ReturnCode DDS.IDataReader.GetMatchedPublicationData ( ref PublicationBuiltinTopicData  publicationData,
InstanceHandle  publicationHandle 
)

This operation retrieves information on the specified publication that is currently “associated” with the IDataReader.

That is, a publication with a matching ITopic and compatible QoS that the application has not indicated should be “ignored” by means of the IgnorePublication operation on the IDomainParticipant.

The publicationHandle must correspond to a publication currently associated with the IDataReader, otherwise the operation will fail and return DDS.ReturnCode BadParameter. The operation IDataReader.GetMatchedPublications() can be used to find the publications that are currently matched with the DataReader.

The operation may also fail if the infrastructure does not hold the information necessary to fill in the publicationData. This is the case when OpenSplice is configured not to maintain discovery information in the Networking Service. (See the description for the NetworkingService/Discovery/enabled property in the Deployment Manual for more information about this subject.) In this case the operation will return DDS.ReturnCode Unsupported.

Parameters
publicationDataThe sample in which the information about the specified publication is to be stored.
publicationHandleA handle to the publication whose information needs to be retrieved.
Returns
Return codes are:

◆ GetMatchedPublications()

ReturnCode DDS.IDataReader.GetMatchedPublications ( ref InstanceHandle []  publicationHandles)

This operation retrieves the list of publications currently "associated" with the DataReader.

That is, publications that have a matching ITopic and compatible QoS that the application has not indicated should be “ignored” by means of the IgnorePublication operation on the IDomainParticipant.

The handles returned in the publicationHandles array are the ones that are used by the DDS implementation to locally identify the corresponding matched IDataWriter entities. You can access more detailed information about a particular publication by passing its publicationHandle to either the GetMatchedPublicationData() operation or to the ReadInstance() operation on the built-in reader for the “DCPSPublication” topic.

Be aware that since DDS.InstanceHandle is an opaque datatype, it does not necessarily mean that the handles obtained from the GetMatchedPublications() operation have the same value as the ones that appear in the InstanceHandle field of the SampleInfo when retrieving the publication info through corresponding "DCPSPublications" built-in reader. You can’t just compare two handles to determine whether they represent the same publication. If you want to know whether two handles actually do represent the same publication, use both handles to retrieve their corresponding PublicationBuiltinTopicData samples and then compare the key field of both samples.

The operation may fail if the infrastructure does not locally maintain the connectivity information. This is the case when OpenSplice is configured not to maintain discovery information in the Networking Service. (See the description for the NetworkingService/Discovery/enabled property in the Deployment Manual for more information about this subject.) In this case the operation will return DDS.ReturnCode Unsupported.

Parameters
publicationHandlesAn array which is used to pass the list of all associated publications.
Returns
Return codes are:

◆ GetQos()

ReturnCode DDS.IDataReader.GetQos ( ref DataReaderQos  qos)

This operation allows access to the existing set of QoS policies for a IDataReader.

This operation allows access to the existing set of QoS policies of a IDataReader on which this operation is used. This DDS.DataReaderQos is stored at the location pointed to by the qos parameter.

Parameters
qosa reference to DDS.DataReaderQos, where the QosPolicy settings of the IDataReader are to be copied into.
Returns
Return codes are:

◆ GetRequestedDeadlineMissedStatus()

ReturnCode DDS.IDataReader.GetRequestedDeadlineMissedStatus ( ref RequestedDeadlineMissedStatus  status)

This operation obtains the DDS.RequestedDeadlineMissedStatus struct of the IDataReader.

This operation obtains the DDS.RequestedDeadlineMissedStatus struct of the IDataReader. This struct contains the information whether the deadline that the IDataReader was expecting through its DeadlineQosPolicy was not respected for a specific instance. The DDS.RequestedDeadlineMissedStatus can also be monitored using a IDataReaderListener or by using the associated IStatusCondition.

Parameters
statusA reference to DDS.RequestedDeadlineMissedStatus where the contents of the DDS.RequestedDeadlineMissedStatus of the IDataReader will be copied into.
Returns
Return codes are:

◆ GetRequestedIncompatibleQosStatus()

ReturnCode DDS.IDataReader.GetRequestedIncompatibleQosStatus ( ref RequestedIncompatibleQosStatus  status)

This operation obtains the DDS.RequestedIncompatibleQosStatus struct of the IDataReader.

This operation obtains the DDS.RequestedIncompatibleQosStatus struct of the IDataReader. This struct contains the information whether a QosPolicy setting was incompatible with the offered QosPolicy setting.

The Request/Offering mechanism is applicable between the IDataWriter and the IDataReader. If the QosPolicy settings between IDataWriter and IDataReader are inconsistent, no communication between them is established. In addition the IDataWriter will be informed via a RequestedIncompatibleQos DDS.StatusKind change and the IDataReader will be informed via an OfferedIncompatibleQos DDS.StatusKind change. The DDS.RequestedIncompatibleQosStatus can also be monitored using a IDataReaderListener or by using the associated IStatusCondition.

Parameters
statusA reference to DDS.RequestedIncompatibleQosStatus where the contents of the DDS.RequestedIncompatibleQosStatus of the IDataReader will be copied into.
Returns
Return codes are:

◆ GetSampleLostStatus()

ReturnCode DDS.IDataReader.GetSampleLostStatus ( ref SampleLostStatus  status)

This operation obtains the DDS.SampleLostStatus struct of the IDataReader.

This struct contains information whether samples have been lost. This only applies when the DDS.ReliabilityQosPolicyKind is set to ReliableReliabilityQos. If the DDS.ReliabilityQosPolicyKind is set to BestEffortReliabilityQos the Data Distribution Service will not report the loss of samples.

The DDS.SampleLostStatus can also be monitored using a IDataReaderListener or by using the associated IStatusCondition.

Parameters
statusreference to DDS.SampleLostStatus where the contents of the DDS.SampleLostStatus of the IDataReader will be copied into.
Returns
Return codes are:

◆ GetSampleRejectedStatus()

ReturnCode DDS.IDataReader.GetSampleRejectedStatus ( ref SampleRejectedStatus  status)

This operation obtains the DDS.SampleRejectedStatus of the IDataReader.

This operation obtains the DDS.SampleRejectedStatus struct of the IDataReader. This struct contains the information whether a received sample has been rejected. The DDS.SampleRejectedStatus can also be monitored using a IDataReaderListener or by using the associated IStatusCondition.

Parameters
statusA reference to DDS.SampleRejectedStatus where the contents of the DDS.SampleRejectedStatus of the IDataReader will be copied into.
Returns

◆ GetSubscriptionMatchedStatus()

ReturnCode DDS.IDataReader.GetSubscriptionMatchedStatus ( ref SubscriptionMatchedStatus  status)

This operation obtains the DDS.SubscriptionMatchedStatus struct of the IDataReader.

This struct contains the information whether a new match has been discovered for the current subscription, or whether an existing match has ceased to exist.

This means that the status represents that either a IDataWriter object has been discovered by the IDataReader with the same Topic and a compatible Qos, or that a previously discovered DataWriter has ceased to be matched to the current IDataReader. A IDataWriter may cease to match when it gets deleted, when it changes its Qos to a value that is incompatible with the current IDataReader or when either the IDataReader or the IDataWriter has chosen to put its matching counterpart on its ignore-list using the IgnorePublication or IgnoreSubcription operations on the IDomainParticipant.

The operation may fail if the infrastructure does not hold the information necessary to fill in the SubscriptionMatchedStatus. This is the case when OpenSplice is configured not to maintain discovery information in the Networking Service. (See the description for the NetworkingService/Discovery/enabled property in the Deployment Manual for more information about this subject.) In this case the operation will return DDS.ReturnCode Unsupported.

The SubscriptionMatchedStatus can also be monitored using a IDataReaderListener or by using the associated StatusCondition.

Parameters
statusreference to DDS.SubscriptionMatchedStatus where the contents of the DDS.SubscriptionMatchedStatus of the IDataReader will be copied into.
Returns
Return codes are:

◆ GetTopicDescription()

ITopicDescription DDS.IDataReader.GetTopicDescription ( )

This operation returns the DDS.ITopicDescription which is associated with the IDataReader.

This operation returns the DDS.ITopicDescription which is associated with the IDataReader, thus the DDS.ITopicDescription with which the IDataReader is created. If the IDataReader is already deleted, null is returned.

Returns
Returns the DDS.ITopicDescription associated with the IDataReader.

◆ LookupInstance()

InstanceHandle DDS.IDataReader.LookupInstance ( < data >  instance)

This operation returns the handle which corresponds to the instance data (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.LookupInstance(Space.Foo instance)

◆ Read() [1/4]

ReturnCode DDS.IDataReader.Read ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.Read(ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos)

◆ Read() [2/4]

ReturnCode DDS.IDataReader.Read ( ref< data >  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.Read(ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples)

◆ Read() [3/4]

ReturnCode DDS.IDataReader.Read ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.Read( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.SampleStateKind sampleStates, DDS.ViewStateKind viewStates, DDS.InstanceStateKind instanceStates)

◆ Read() [4/4]

ReturnCode DDS.IDataReader.Read ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.Read( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.SampleStateKind sampleStates, DDS.ViewStateKind viewStates, DDS.InstanceStateKind instanceStates)

◆ ReadInstance() [1/3]

ReturnCode DDS.IDataReader.ReadInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
InstanceHandle  instanceHandle 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.InstanceHandle instanceHandle)

◆ ReadInstance() [2/3]

ReturnCode DDS.IDataReader.ReadInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle)

◆ ReadInstance() [3/3]

ReturnCode DDS.IDataReader.ReadInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle,
SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle, DDS.SampleStateKind sampleStates, DDS.ViewStateKind viewStates, DDS.InstanceStateKind instanceStates)

◆ ReadNextInstance() [1/3]

ReturnCode DDS.IDataReader.ReadNextInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
InstanceHandle  instanceHandle 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadNextInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.InstanceHandle instanceHandle)

◆ ReadNextInstance() [2/3]

ReturnCode DDS.IDataReader.ReadNextInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadNextInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle)

◆ ReadNextInstance() [3/3]

ReturnCode DDS.IDataReader.ReadNextInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle,
SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadNextInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle, DDS.SampleStateKind sampleStates, DDS.ViewStateKind viewStates, DDS.InstanceStateKind instanceStates)

◆ ReadNextInstanceWithCondition() [1/2]

ReturnCode DDS.IDataReader.ReadNextInstanceWithCondition ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
InstanceHandle  instanceHandle,
IReadCondition  readCondition 
)

This operation reads an array of typed samples from the DataReader (abstract).

Note
This operation is not yet implemented. It is scheduled for a future release.

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadNextInstanceWithCondition( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.InstanceHandle instanceHandle, DDS.IReadCondition readCondition)

◆ ReadNextInstanceWithCondition() [2/2]

ReturnCode DDS.IDataReader.ReadNextInstanceWithCondition ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle,
IReadCondition  readCondition 
)

This operation reads an array of typed samples from the DataReader (abstract).

Note
This operation is not yet implemented. It is scheduled for a future release.

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadNextInstanceWithCondition( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle, DDS.IReadCondition readCondition)

◆ ReadNextSample()

ReturnCode DDS.IDataReader.ReadNextSample ( ref Space.Foo  dataValue,
ref SampleInfo  sampleInfo 
)

This operation reads an array of typed samples from the DataReader (abstract).

Note
This operation is not yet implemented. It is scheduled for a future release.

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadNextSample( ref Space.Foo dataValue, ref DDS.SampleInfo sampleInfo)

Implemented in Space.FooDataReader.

◆ ReadWithCondition() [1/2]

ReturnCode DDS.IDataReader.ReadWithCondition ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
IReadCondition  readCondition 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadWithCondition( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.IReadCondition readCondition)

◆ ReadWithCondition() [2/2]

ReturnCode DDS.IDataReader.ReadWithCondition ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
IReadCondition  readCondition 
)

This operation reads an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReadWithCondition( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.IReadCondition readCondition)

◆ ReturnLoan()

ReturnCode DDS.IDataReader.ReturnLoan ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos 
)

This operation indicates to the DataReader that the application is done accessing the dataValues and sampleInfos arrays (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.ReturnLoan(ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos)

◆ SetListener()

ReturnCode DDS.IDataReader.SetListener ( IDataReaderListener  listener,
StatusKind  mask 
)

This operation attaches a IDataReaderListener to the IDataReader.

Parameters
listenerThe IDataReaderListener which will be attached to the IDataReader.
maskA bit mask in which each bit enables the invocation of the IDataReaderListener for a certain status.
Returns

◆ SetQos()

ReturnCode DDS.IDataReader.SetQos ( DataReaderQos  qos)

This operation replaces the existing set of QosPolicy settings for a IDataReader.

This operation replaces the existing set of QosPolicy settings for a IDataReader. The parameter qos contains the QosPolicy settings which is checked for self-consistency and mutability. When the application tries to change a QosPolicy setting for an enabled IDataReader, which can only be set before the IDataReader is enabled, the operation will fail and a ImmutablePolicy is returned. In other words, the application must provide the presently set QosPolicy settings in case of the immutable QosPolicy settings. Only the mutable QosPolicy settings can be changed. When qos contains conflicting QosPolicy settings (not self-consistent), the operation will fail and a InconsistentPolicy is returned.

The set of QosPolicy settings specified by the qos parameter are applied on top of the existing QoS, replacing the values of any policies previously set (provided, the operation returned Ok).

Parameters
qosthe new set of QosPolicy settings for the IDataReader.
Returns
Return codes are:
  • DDS.ReturnCode Ok - The new DDS.DataReaderQos is set.
  • DDS.ReturnCode Error - An internal error has occurred.
  • DDS.ReturnCode AlreadyDeleted - The IDataReader has already been deleted.
  • DDS.ReturnCode OutOfResources - The DDS ran out of resources to complete this operation.
  • DDS.ReturnCode BadParameter - the parameter qos is not a valid DDS.DataReaderQos. It contains a QosPolicy setting with an invalid Duration value or an enum value that is outside its legal boundaries
  • DDS.ReturnCode Unsupported - one or more of the selected QosPolicy values are currently not supported by OpenSplice
  • DDS.ReturnCode ImmutablePolicy - the parameter qos contains an immutable QosPolicy setting with a different value than set during enabling of the IDataReader
  • DDS.ReturnCode InconsistentPolicy - the parameter qos contains conflicting QosPolicy settings, e.g. a history depth that is higher than the specified resource limits.

◆ Take() [1/4]

ReturnCode DDS.IDataReader.Take ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.Take(ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos)

◆ Take() [2/4]

ReturnCode DDS.IDataReader.Take ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.Take(ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples)

◆ Take() [3/4]

ReturnCode DDS.IDataReader.Take ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.Take( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.SampleStateKind sampleStates, DDS.ViewStateKind viewStates, DDS.InstanceStateKind instanceStates)

◆ Take() [4/4]

ReturnCode DDS.IDataReader.Take ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.Take( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.SampleStateKind sampleStates, DDS.ViewStateKind viewStates, DDS.InstanceStateKind instanceStates)

◆ TakeInstance() [1/3]

ReturnCode DDS.IDataReader.TakeInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
InstanceHandle  instanceHandle 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.InstanceHandle instanceHandle)

◆ TakeInstance() [2/3]

ReturnCode DDS.IDataReader.TakeInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle)

◆ TakeInstance() [3/3]

ReturnCode DDS.IDataReader.TakeInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle,
SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle, DDS.SampleStateKind sampleStates, DDS.ViewStateKind viewStates, DDS.InstanceStateKind instanceStates)

◆ TakeNextInstance() [1/3]

ReturnCode DDS.IDataReader.TakeNextInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
InstanceHandle  instanceHandle 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeNextInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.InstanceHandle instanceHandle)

◆ TakeNextInstance() [2/3]

ReturnCode DDS.IDataReader.TakeNextInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeNextInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle)

◆ TakeNextInstance() [3/3]

ReturnCode DDS.IDataReader.TakeNextInstance ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle,
SampleStateKind  sampleStates,
ViewStateKind  viewStates,
InstanceStateKind  instanceStates 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeNextInstance( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle, DDS.SampleStateKind sampleStates, DDS.ViewStateKind viewStates, DDS.InstanceStateKind instanceStates)

◆ TakeNextInstanceWithCondition() [1/2]

ReturnCode DDS.IDataReader.TakeNextInstanceWithCondition ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
InstanceHandle  instanceHandle,
IReadCondition  readCondition 
)

This operation takes an array of typed samples from the DataReader (abstract).

Note
This operation is not yet implemented. It is scheduled for a future release.

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeNextInstanceWithCondition( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.InstanceHandle instanceHandle, DDS.IReadCondition readCondition)

◆ TakeNextInstanceWithCondition() [2/2]

ReturnCode DDS.IDataReader.TakeNextInstanceWithCondition ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
InstanceHandle  instanceHandle,
IReadCondition  readCondition 
)

This operation takes an array of typed samples from the DataReader (abstract).

Note
This operation is not yet implemented. It is scheduled for a future release.

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeNextInstanceWithCondition( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.InstanceHandle instanceHandle, DDS.IReadCondition readCondition)

◆ TakeNextSample()

ReturnCode DDS.IDataReader.TakeNextSample ( ref Space.Foo  dataValue,
ref SampleInfo  sampleInfo 
)

This operation takes an array of typed samples from the DataReader (abstract).

Note
This operation is not yet implemented. It is scheduled for a future release.

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeNextSample( ref Space.Foo dataValue, ref DDS.SampleInfo sampleInfo)

Implemented in Space.FooDataReader.

◆ TakeWithCondition() [1/2]

ReturnCode DDS.IDataReader.TakeWithCondition ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
IReadCondition  readCondition 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeWithCondition( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, DDS.IReadCondition readCondition)

◆ TakeWithCondition() [2/2]

ReturnCode DDS.IDataReader.TakeWithCondition ( ref< data > []  dataValues,
ref SampleInfo []  sampleInfos,
int  maxSamples,
IReadCondition  readCondition 
)

This operation takes an array of typed samples from the DataReader (abstract).

This abstract operation is defined as a generic operation, which is implemented by the <type>DataReader class. Therefore, to use this operation, the data type specific implementation of this operation in its respective derived class must be used.

For further explanation see the description for the fictional data type Space.Foo derived Space.FooDataReader class.

See also
Space.FooDataReader.TakeWithCondition( ref Space.Foo[] dataValues, ref DDS.SampleInfo[] sampleInfos, int maxSamples, DDS.IReadCondition readCondition)

◆ WaitForHistoricalData()

ReturnCode DDS.IDataReader.WaitForHistoricalData ( Duration  maxWait)

This operation will block the application thread until all historical data is received.

This operation behaves differently for IDataReader objects which have a non-VolatileDurabilityQos kind in the DurabilityQosPolicy and for IDataReader objects which have a VolatileDurabilityQos kind in the DurabilityQosPolicy.

As soon as an application enables a non-VolatileDurabilityQos IDataReader it will start receiving both historical data, i.e. the data that was written prior to the time the IDataReader joined the domain, as well as any new data written by the IDataWriter objects. There are situations where the application logic may require the application to wait until all historical data is received. This is the purpose of the WaitForHistoricalData operation.

As soon as an application enables a VolatileDurabilityQos IDataReader it will not start receiving historical data but only new data written by the IDataWriter objects. By calling WaitForHistoricalData the IDataReader explicitly requests the Data Distribution Service to start receiving also the historical data and to wait until either all historical data is received, or the duration specified by the maxWait parameter has elapsed, whichever happens first.

Thread Blocking
The operation wait_for_historical_data blocks the calling thread until either all “historical” data is received, or the duration specified by the maxWait parameter elapses, whichever happens first. A return value of DDS.ReturnCode Ok indicates that all the “historical” data was received a return value of DDS.ReturnCode Timeout indicates that maxWait elapsed before all the data was received.

Parameters
maxWaitthe maximum duration to block for the operation, after which the application thread is unblocked. The special constant Duration Infinite can be used when the maximum waiting time does not need to be bounded.
Returns
Return codes are:

Property Documentation

◆ Listener

IDataReaderListener DDS.IDataReader.Listener
get

This property returns the IDataReaderListener currently attached to the IDataReader.

Only one listener can be attached to the IDataReader at any particular time. This property returns the listener that is currently attached to the IDataReader.

Returns
returns the IDataReaderListener currently attached to the IDataReader.

Definition at line 4794 of file DdsDcpsInterfaces.cs.

◆ Subscriber

ISubscriber DDS.IDataReader.Subscriber
get

This property returns the ISubscriber to which the IDataReader belongs.

Definition at line 4819 of file DdsDcpsInterfaces.cs.


The documentation for this interface was generated from the following file: