OpenSplice Java 5 DCPS  v6.x
OpenSplice Java 5 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
org.opensplice.dds.topic.Topic< TYPE > Interface Template Reference

Topic provides OpenSplice-specific extensions to org.omg.dds.topic.Topic. More...

Inheritance diagram for org.opensplice.dds.topic.Topic< TYPE >:
Inheritance graph
Collaboration diagram for org.opensplice.dds.topic.Topic< TYPE >:
Collaboration graph

Public Member Functions

public< OTHER > TopicDescription< OTHER > cast ()
 Cast this topic description to the given type, or throw an exception if the cast fails. More...
 
void close ()
 Dispose the resources held by this object. More...
 
abstract void close ()
 Halt communication and dispose the resources held by this Entity. More...
 
void disposeAllData ()
 This operation allows the application to dispose of all of the instances for a particular org.opensplice.dds.topic.Topic without the network overhead of using a separate org.omg.dds.pub.DataWriter#dispose(org.omg.dds.core.InstanceHandle) call for each instance. More...
 
void enable ()
 This operation enables the Entity. More...
 
AllDataDisposedStatus getAllDataDisposedTopicStatus ()
 This operation obtains the org.opensplice.dds.core.status.AllDataDisposedStatus of the org.opensplice.dds.topic.Topic. More...
 
ServiceEnvironment getEnvironment ()
 
InconsistentTopicStatus getInconsistentTopicStatus ()
 This method allows the application to retrieve the org.omg.dds.core.status.InconsistentTopicStatus of the Topic. More...
 
InstanceHandle getInstanceHandle ()
 
LISTENER getListener ()
 This operation allows access to the existing Listener attached to the Entity. More...
 
String getName ()
 Returns the name used to create the TopicDescription. More...
 
DomainParticipant getParent ()
 
QOS getQos ()
 This operation allows access to the existing set of QoS policies for the Entity. More...
 
Set< Class<? extends Status > > getStatusChanges ()
 This operation retrieves the list of communication statuses in the Entity that are 'triggered. More...
 
StatusCondition< Topic< TYPE > > getStatusCondition ()
 
String getTypeName ()
 Returns the type name used to create the TopicDescription. More...
 
TypeSupport< TYPE > getTypeSupport ()
 Returns the org.omg.dds.type.TypeSupport used to create this TopicDescription. More...
 
void retain ()
 Indicates that references to this object may go out of scope but that the application expects to look it up again later. More...
 
void setListener (LISTENER listener)
 This operation installs a Listener on the Entity. More...
 
void setListener (LISTENER listener, Collection< Class<? extends Status >> statuses)
 This operation installs a Listener on the Entity. More...
 
void setListener (LISTENER listener, Class<? extends Status >... statuses)
 This operation installs a Listener on the Entity. More...
 
void setQos (QOS qos)
 This operation is used to set the QoS policies of the Entity. More...
 

Detailed Description

Topic provides OpenSplice-specific extensions to org.omg.dds.topic.Topic.

Parameters
<TYPE>The concrete type of the data that will be published and/ or subscribed by the readers and writers that use this topic.

Definition at line 33 of file Topic.java.

Member Function Documentation

◆ cast()

public<OTHER> TopicDescription<OTHER> org.omg.dds.topic.TopicDescription< TYPE >.cast ( )
inherited

Cast this topic description to the given type, or throw an exception if the cast fails.

Parameters
<OTHER>The type of the data exchanged on this topic, according to the caller.
Returns
this topic description
Exceptions
ClassCastExceptionif the cast fails

◆ close() [1/2]

void org.omg.dds.topic.TopicDescription< TYPE >.close ( )
inherited

Dispose the resources held by this object.

A TopicDescription cannot be closed if it is in use by any org.omg.dds.pub.DataWriters or org.omg.dds.sub.DataReaders. With respect to org.omg.dds.topic.Topics specifically: a Topic cannot be closed if it has any remaining org.omg.dds.topic.ContentFilteredTopics or org.omg.dds.topic.MultiTopics related to it.

See also
org.omg.dds.core.Entity::close()

Implemented in org.opensplice.dds.topic.ContentFilteredTopicImpl< TYPE >, and org.opensplice.dds.topic.TopicDescriptionExt< TYPE >.

◆ close() [2/2]

abstract void org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.close ( )
abstractinherited

Halt communication and dispose the resources held by this Entity.

Closing an Entity implicitly closes all of its contained objects, if any. For example, closing a Publisher also closes all of its contained DataWriters.

An Entity cannot be closed if it has any unclosed dependent objects, not including contained objects. These include the following:

The deletion of a org.omg.dds.pub.DataWriter will automatically unregister all instances. Depending on the settings of the org.omg.dds.core.policy.WriterDataLifecycle, the deletion of the DataWriter may also dispose all instances.

Exceptions
PreconditionNotMetExceptionif close is called on an Entity with unclosed dependent object(s), not including contained objects.
See also
org.omg.dds.topic.TopicDescription::close()

◆ disposeAllData()

void org.opensplice.dds.topic.Topic< TYPE >.disposeAllData ( )

This operation allows the application to dispose of all of the instances for a particular org.opensplice.dds.topic.Topic without the network overhead of using a separate org.omg.dds.pub.DataWriter#dispose(org.omg.dds.core.InstanceHandle) call for each instance.

Its effect is equivalent to invoking a separate dispose operation for each individual instance on the DataWriter that owns it.

This operation only sets the instance state of the instances concerned to org.omg.dds.sub.InstanceState#NOT_ALIVE_DISPOSED. It does not unregister the instances, and so does not automatically clean up the memory that is claimed by the instances in both the DataReaders and DataWriters.

The blocking (or nonblocking) behavior of this call is undefined.

If there are subsequent calls to this function before the action has been completed (completion of the disposes on all nodes, not simply return from the method), then the behavior is undefined.

Other notes:
The effect of this call on disposedGenerationCount, generationRank and absoluteGenerationRank is undefined.
This call is an asynchronous C&M operation that is not part of a coherent update meaning that it operates on the DataReaders history cache and not on the incomplete transactions. The DisposeAllData is effectuated as soon as a transaction becomes complete and is inserted into the DataReaders history cache, at that point messages will be inserted according to the destination_order qos policy. For BY_SOURCE_TIMESTAMP all messages older than the dispose_all_data will be disposed and all newer will be alive, for BY_RECEPTION_TIMESTAMP all messages will be alive if the transaction is completed after receiving the dispose_all_data command.

◆ enable()

void org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.enable ( )
inherited

This operation enables the Entity.

Entity objects can be created either enabled or disabled. This is controlled by the value of the org.omg.dds.core.policy.EntityFactory on the corresponding factory for the Entity.

The default setting of org.omg.dds.core.policy.EntityFactory is such that, by default, it is not necessary to explicitly call enable on newly created entities.

The enable operation is idempotent. Calling enable on an already enabled Entity has no effect.

If an Entity has not yet been enabled, the following kinds of operations may be invoked on it:

  • Operations to set or get an Entity's QoS policies (including default QoS policies) and listener
  • getStatusCondition()
  • 'factory' operations and close()
  • getStatusChanges() and other get status operations (although the status of a disabled entity never changes)
  • 'lookup' operations

Other operations may explicitly state that they may be called on disabled entities; those that do not will fail with org.omg.dds.core.NotEnabledException.

It is legal to delete an Entity that has not been enabled by calling close(). Entities created from a factory that is disabled are created disabled regardless of the setting of org.omg.dds.core.policy.EntityFactory.

Calling enable on an Entity whose factory is not enabled will fail with org.omg.dds.core.PreconditionNotMetException.

If org.omg.dds.core.policy.EntityFactory#isAutoEnableCreatedEntities() is true, the enable operation on the factory will automatically enable all entities created from the factory.

The Listeners associated with an entity are not called until the entity is enabled. org.omg.dds.core.Conditions associated with an entity that is not enabled are "inactive," that is, have a triggerValue == false.

In addition to the general description, the enable operation on a org.omg.dds.sub.Subscriber has special meaning in specific usecases. This applies only to Subscribers with PresentationQoS coherent-access set to true with access-scope set to group.

In this case the subscriber is always created in a disabled state, regardless of the factory's auto-enable created entities setting. While the subscriber remains disabled, DataReaders can be created that will participate in coherent transactions of the subscriber.

See org.omg.dds.sub.Subscriber#beginAccess() and org.omg.dds.sub.Subscriber#endAccess() for more information.

All DataReaders will also be created in a disabled state. Coherency with group access-scope requires data to be delivered as a transaction, atomically, to all eligible readers. Therefore data should not be delivered to any single DataReader immediately after it's created, as usual, but only after the application has finished creating all DataReaders for a given Subscriber. At this point, the application should enable the Subscriber which in turn enables all its DataReaders.

Note that for a DataWriter which has a corresponding Publisher with a PresentationQoS with coherent-access set to true and access-scope set to topic or group that the HistoryQoS of the DataWriter should be set to KEEP_ALL otherwise the enable operation will fail. See org.omg.dds.pub.Publisher#createDataWriter(Topic, DataWriterQos, DataWriterListener, Collection)

◆ getAllDataDisposedTopicStatus()

AllDataDisposedStatus org.opensplice.dds.topic.Topic< TYPE >.getAllDataDisposedTopicStatus ( )

This operation obtains the org.opensplice.dds.core.status.AllDataDisposedStatus of the org.opensplice.dds.topic.Topic.

The AllDataDisposedStatus can also be monitored using a org.opensplice.dds.topic.TopicListener or by using the associated StatusCondition.

Returns
The AllDataDisposedStatus of the Topic.

◆ getEnvironment()

ServiceEnvironment org.omg.dds.core.DDSObject.getEnvironment ( )
inherited
Returns
the org.omg.dds.core.ServiceEnvironment object that directly or indirectly was used to create this object.

Implemented in org.omg.dds.core.ServiceEnvironment, org.opensplice.dds.sub.ReflectionDataReader< TYPE, OUT_TYPE >, org.opensplice.dds.core.ModifiableTimeImpl, org.opensplice.dds.pub.ReflectionDataWriter< TYPE >, org.opensplice.dds.core.DurationImpl, org.opensplice.dds.topic.ContentFilteredTopicImpl< TYPE >, org.opensplice.dds.sub.ReadConditionImpl< TYPE >, org.opensplice.dds.core.EntityQosImpl< T extends QosPolicy >, org.opensplice.dds.type.TypeSupportImpl< TYPE >, org.opensplice.dds.topic.PublicationBuiltinTopicDataImpl, org.opensplice.dds.topic.SubscriptionBuiltinTopicDataImpl, org.opensplice.dds.topic.TopicBuiltinTopicDataImpl, org.opensplice.dds.domain.DomainParticipantFactoryImpl, org.opensplice.dds.core.QosProviderImpl, org.opensplice.dds.core.status.OfferedIncompatibleQosStatusImpl, org.opensplice.dds.core.status.RequestedIncompatibleQosStatusImpl, org.opensplice.dds.core.InstanceHandleImpl, org.opensplice.dds.core.StatusConditionImpl< T extends Entity<?, ?>, org.opensplice.dds.core.status.LivelinessChangedStatusImpl, org.opensplice.dds.core.status.PublicationMatchedStatusImpl, org.opensplice.dds.core.status.SubscriptionMatchedStatusImpl, org.opensplice.dds.sub.SampleImpl< TYPE >, org.opensplice.dds.core.policy.ShareImpl, org.opensplice.dds.core.status.OfferedDeadlineMissedStatusImpl, org.opensplice.dds.core.status.SampleRejectedStatusImpl, org.opensplice.dds.core.WaitSetImpl, org.opensplice.dds.topic.ParticipantBuiltinTopicDataImpl, org.opensplice.dds.core.status.RequestedDeadlineMissedStatusImpl, org.opensplice.dds.topic.BuiltinTopicKeyImpl, org.opensplice.dds.core.GuardConditionImpl, org.opensplice.dds.core.event.AllDataDisposedEventImpl< TYPE >, org.opensplice.dds.core.policy.QosPolicyCountImpl, org.opensplice.dds.core.status.InconsistentTopicStatusImpl, org.opensplice.dds.core.status.LivelinessLostStatusImpl, org.opensplice.dds.core.status.SampleLostStatusImpl, org.opensplice.dds.core.policy.QosPolicyImpl, org.opensplice.dds.core.status.AllDataDisposedStatusImpl, org.opensplice.dds.core.IllegalArgumentExceptionImpl, org.opensplice.dds.core.InconsistentPolicyExceptionImpl, org.opensplice.dds.core.policy.PolicyFactoryImpl, org.opensplice.dds.core.policy.TypeConsistencyEnforcementImpl, org.opensplice.dds.core.PreconditionNotMetExceptionImpl, org.opensplice.dds.core.AlreadyClosedExceptionImpl, org.opensplice.dds.core.IllegalOperationExceptionImpl, org.opensplice.dds.core.ImmutablePolicyExceptionImpl, org.opensplice.dds.core.NotEnabledExceptionImpl, org.opensplice.dds.core.OutOfResourcesExceptionImpl, org.opensplice.dds.core.DDSExceptionImpl, org.opensplice.dds.core.status.DataAvailableStatusImpl, and org.opensplice.dds.core.status.DataOnReadersStatusImpl.

◆ getInconsistentTopicStatus()

InconsistentTopicStatus org.omg.dds.topic.Topic< TYPE >.getInconsistentTopicStatus ( )
inherited

This method allows the application to retrieve the org.omg.dds.core.status.InconsistentTopicStatus of the Topic.

Each org.omg.dds.core.DomainEntity has a set of relevant communication statuses. A change of status causes the corresponding Listener to be invoked and can also be monitored by means of the associated org.omg.dds.core.StatusCondition.

Returns
the InconsistentTopicStatus object
Exceptions
org.omg.dds.core.DDSExceptionAn internal error has occurred.
org.omg.dds.core.AlreadyClosedExceptionThe corresponding DataReader has been closed.
org.omg.dds.core.OutOfResourcesExceptionThe Data Distribution Service ran out of resources to complete this operation.
See also
TopicListener
StatusCondition

Implemented in org.opensplice.dds.topic.TopicImpl< TYPE >.

◆ getInstanceHandle()

InstanceHandle org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.getInstanceHandle ( )
inherited
Returns
the org.omg.dds.core.InstanceHandle that represents the Entity.

◆ getListener()

LISTENER org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.getListener ( )
inherited

This operation allows access to the existing Listener attached to the Entity.

Returns
The attached listener if set, or null otherwise.
See also
#setListener(EventListener)
#setListener(EventListener, Collection)

◆ getName()

String org.omg.dds.topic.TopicDescription< TYPE >.getName ( )
inherited

Returns the name used to create the TopicDescription.

Returns
the name.

Implemented in org.opensplice.dds.topic.TopicImpl< TYPE >, and org.opensplice.dds.topic.ContentFilteredTopicImpl< TYPE >.

◆ getParent()

DomainParticipant org.omg.dds.topic.Topic< TYPE >.getParent ( )
inherited

◆ getQos()

QOS org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.getQos ( )
inherited

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

This operation must be provided by each of the derived Entity classes (org.omg.dds.domain.DomainParticipant, org.omg.dds.topic.Topic, org.omg.dds.pub.Publisher, org.omg.dds.pub.DataWriter, org.omg.dds.sub.Subscriber, org.omg.dds.sub.DataReader) so that the policies meaningful to the particular Entity are retrieved.

See also
#setQos(EntityQos)

◆ getStatusChanges()

Set<Class<? extends Status> > org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.getStatusChanges ( )
inherited

This operation retrieves the list of communication statuses in the Entity that are 'triggered.

' That is, the list of statuses whose value has changed since the last time the application read the status.

When the entity is first created or if the entity is not enabled, all communication statuses are in the "untriggered" state so the list returned will be empty.

The list of statuses returned refers to the statuses that are triggered on the Entity itself and does not include statuses that apply to contained entities.

Returns
a new Set containing the triggered statuses.

◆ getStatusCondition()

StatusCondition<Topic<TYPE> > org.omg.dds.topic.Topic< TYPE >.getStatusCondition ( )
inherited

◆ getTypeName()

String org.omg.dds.topic.TopicDescription< TYPE >.getTypeName ( )
inherited

Returns the type name used to create the TopicDescription.

Returns
the type name

Implemented in org.opensplice.dds.topic.TopicImpl< TYPE >, and org.opensplice.dds.topic.ContentFilteredTopicImpl< TYPE >.

◆ getTypeSupport()

◆ retain()

void org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.retain ( )
inherited

Indicates that references to this object may go out of scope but that the application expects to look it up again later.

Therefore, the Service must consider this object to be still in use and may not close it automatically.

◆ setListener() [1/3]

void org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.setListener ( LISTENER  listener)
inherited

This operation installs a Listener on the Entity.

The listener will only be invoked on all communication statuses pertaining to the concrete type of this entity.

It is permitted to use null as the value of the listener. The null listener behaves as a Listener whose operations perform no action.

Only one listener can be attached to each Entity. If a listener was already set, the operation will replace it with the new one. Consequently if the value null is passed for the listener parameter, any existing listener will be removed.

Parameters
listenerthe listener to attach.
See also
getListener()
#setListener(EventListener, Collection)

◆ setListener() [2/3]

void org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.setListener ( LISTENER  listener,
Collection< Class<? extends Status >>  statuses 
)
inherited

This operation installs a Listener on the Entity.

The listener will only be invoked on the changes of communication status indicated by the specified mask.

It is permitted to use null as the value of the listener. The null listener behaves as a Listener whose operations perform no action.

Only one listener can be attached to each Entity. If a listener was already set, the operation will replace it with the new one. Consequently if the value null is passed for the listener parameter, any existing listener will be removed.

See also
getListener()
#setListener(EventListener)

◆ setListener() [3/3]

void org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.setListener ( LISTENER  listener,
Class<? extends Status >...  statuses 
)
inherited

This operation installs a Listener on the Entity.

The listener will only be invoked on the changes of communication status indicated by the specified mask.

It is permitted to use null as the value of the listener. The null listener behaves as a Listener whose operations perform no action.

Only one listener can be attached to each Entity. If a listener was already set, the operation will replace it with the new one. Consequently if the value null is passed for the listener parameter, any existing listener will be removed.

See also
getListener()
#setListener(EventListener)

◆ setQos()

void org.omg.dds.core.Entity< LISTENER extends EventListener, QOS extends EntityQos<?>.setQos ( QOS  qos)
inherited

This operation is used to set the QoS policies of the Entity.

This operation must be provided by each of the derived Entity classes (org.omg.dds.domain.DomainParticipant, org.omg.dds.topic.Topic, org.omg.dds.pub.Publisher, org.omg.dds.pub.DataWriter, org.omg.dds.sub.Subscriber, org.omg.dds.sub.DataReader) so that the policies that are meaningful to each Entity can be set.

The set of policies specified as the parameter are applied on top of the existing QoS, replacing the values of any policies previously set.

Certain policies are "immutable"; they can only be set at Entity creation time, or before the entity is made enabled. If setQos is invoked after the Entity is enabled and it attempts to change the value of an "immutable" policy, the operation will fail with org.omg.dds.core.ImmutablePolicyException.

Certain values of QoS policies can be incompatible with the settings of the other policies. The setQos operation will also fail if it specifies a set of values that once combined with the existing values would result in an inconsistent set of policies. In this case, it shall fail with org.omg.dds.core.InconsistentPolicyException.

If the application supplies a non-default value for a QoS policy that is not supported by the implementation of the service, the setQos operation will fail with UnsupportedOperationException.

The existing set of policies are only changed if the setQos operation succeeds. In all other cases, none of the policies is modified.

Exceptions
ImmutablePolicyExceptionif an immutable policy changes its value.
InconsistentPolicyExceptionif a combination of policies is inconsistent with one another.
UnsupportedOperationExceptionif an unsupported policy has a non-default value.
See also
getQos()

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