-- (c) Copyright, Real-Time Innovations, $Date:: 2012-02-16 #$ -- All rights reserved. -- -- No duplications, whole or partial, manual or electronic, may be made -- without express written permission. Any such copies, or -- revisions thereof, must display this notice unaltered. -- This code contains trade secrets of Real-Time Innovations, Inc. pragma Ada_05; limited with DDS.Publisher;
with DDS.Topic; with DDS.DataWriterListener; with DDS.Domain_Entity; with System; -- <dref>DataWriter</dref> package DDS.DataWriter is
-- Detailed Description -- <<interface>> Allows an application to set the value of the -- data to be published under a given DDS.Topic. -- -- A DDS.DataWriter is attached to exactly one DDS.Publisher, -- that acts as a factory for it. -- -- A DDS.DataWriter is bound to exactly one DDS.Topic and therefore to exactly -- one data type. -- The DDS.Topic must exist prior to the DDS.DataWriter's creation. -- -- DDS.DataWriter is an abstract class. -- It must be specialized for each particular application data-type -- (see USER_DATA). The additional methods or functions that must be defined -- in the auto-generated class for a hypothetical application type Foo are -- specified in the example type DDS.DataWriter. -- -- The following operations may be called even if the DDS.DataWriter -- is not enabled. Other operations will fail exeption RETCODE_NOT_ENABLED -- if called on a disabled DDS.DataWriter: -- -- * The base-class operations DDS.DataWriter.set_qos, -- DDS.DataWriter.get_qos, -- DDS.DataWriter.set_listener, -- DDS.DataWriter.get_listener, -- DDS.DataWriter.enable, -- DDS.DataWriter.get_statuscondition, -- DDS.DataWriter.get_status_changes -- * DDS.DataWriter.get_liveliness_lost_status -- DDS.DataWriter.get_offered_deadline_missed_status -- DDS.DataWriter.get_offered_incompatible_qos_status -- DDS.DataWriter.get_publication_matched_status -- DDS.DataWriter.get_reliable_writer_cache_changed_status -- DDS.DataWriter.get_reliable_reader_activity_changed_status -- -- Several DDS.DataWriter may operate in different threads. -- If they share the same DDS.Publisher, the middleware guarantees that -- its operations are thread-safe. -- -- See also: -- DDS.example.FooDataWriter -- Operations Allowed in Listener Callbacks type Ref is limited interface and DDS.Domain_Entity.Ref;
type Ref_Access is access all Ref'Class;
procedure Set_Qos
(Self : not null access Ref;
Qos : in DDS.DataWriterQos) is abstract;
-- <dref>DataWriter_set_qos</dref> procedure Set_Qos_With_Profile (Self : not null access Ref;
Library_Name : String;
Profile_Name : String) is abstract;
procedure Set_Qos_With_Profile (Self : not null access Ref;
Library_Name : Standard.String;
Profile_Name : Standard.String) is abstract;
-- <dref>DataWriter_set_qos_with_profile</dref> -- <internal> -- Sets the writer QoS. -- This operation modifies the QoS of the dds.DataWriter. -- The dds.DataWriterQos.user_data, -- dds.DataWriterQos.deadline, -- dds.DataWriterQos.latency_budget, -- dds.DataWriterQos.ownership_strength, -- dds.DataWriterQos.transport_priority, -- dds.DataWriterQos.lifespan and -- dds.publication.DataWriterQos.writer_data_lifecycle can be changed. -- The other policies are immutable. -- See also: -- dds.DataWriterQos for rules on consistency among QoS -- set_qos (abstract) -- Operations Allowed in Listener Callbacks -- </internal> procedure Get_Qos
(Self : not null access Ref;
Qos : in out DDS.DataWriterQos) is abstract;
-- <dref>DataWriter_get_qos</dref> -- <internal> -- Gets the writer QoS. -- This method may potentially allocate memory depending on the sequences -- contained in some QoS policies. -- </internal> procedure Set_Listener
(Self : not null access Ref;
A_Listener : in DDS.DataWriterListener.Ref_Access;
Mask : in DDS.StatusMask) is abstract;
-- <dref>DataWriter_set_listener</dref> -- <internal> -- Sets the writer listener. -- </internal> function Get_Listener
(Self : not null access Ref)
return DDS.DataWriterListener.Ref_Access is abstract;
-- <dref>DataWriter_get_listener</dref> -- <internal> -- Get the writer listener. -- </internal> function Get_Topic
(Self : not null access Ref)
return DDS.Topic.Ref_Access is abstract;
-- <dref>DataWriter_get_topic</dref> -- <internal> -- Get the writer listener. -- </internal> function Get_Publisher
(Self : not null access Ref)
return access DDS.Publisher.Ref'Class is abstract;
-- <dref>DataWriter_get_publisher</dref> procedure Wait_For_Acknowledgments
(Self : not null access Ref;
Max_Wait : in DDS.Duration_T) is abstract;
-- <dref>DataWriter_wait_for_acknowledgments</dref> procedure Wait_For_Asynchronous_Publishing
(Self : not null access Ref;
Max_Wait : in DDS.Duration_T) is abstract;
-- <dref>DataWriter_wait_for_asynchronous_publishing</dref> procedure Get_Liveliness_Lost_Status
(Self : not null access Ref;
Status : in out DDS.LivelinessLostStatus) is abstract;
-- <dref>DataWriter_get_liveliness_lost_status</dref> -- <internal> -- Returns the StatusKind.LIVELINESS_LOST_STATUS -- communication status. -- </internal> procedure Get_Offered_Deadline_Missed_Status
(Self : not null access Ref;
Status : in out DDS.OfferedDeadlineMissedStatus) is abstract;
-- <dref>DataWriter_get_offered_deadline_missed_status</dref> -- <internal> -- Returns the StatusKind.OFFERED_DEADLINE_MISSED_STATUS -- communication status. -- </internal> procedure Get_Offered_Incompatible_Qos_Status
(Self : not null access Ref;
Status : in out DDS.OfferedIncompatibleQosStatus) is abstract;
-- <dref>DataWriter_get_offered_incompatible_qos_status</dref> -- <internal> -- Returns the StatusKind.OFFERED_INCOMPATIBLE_QOS_STATUS -- communication status -- </internal> procedure Get_Publication_Matched_Status
(Self : not null access Ref;
Status : in out DDS.PublicationMatchedStatus) is abstract;
-- <dref>DataWriter_get_publication_matched_status</dref> -- <internal> -- Returns the StatusKind.PUBLICATION_MATCHED_STATUS -- communication status. -- </internal> procedure Assert_Liveliness
(Self : not null access Ref) is abstract;
-- <dref>DataWriter_assert_liveliness</dref> function Get_Matched_Subscriptions
(Self : not null access Ref)
return DDS.InstanceHandle_Seq.Sequence is abstract;
-- <dref>DataWriter_get_matched_subscriptions</dref> function Get_Matched_Subscription_Data
(Self : not null access Ref;
Subscription_Handle : in DDS.InstanceHandle_T)
return DDS.SubscriptionBuiltinTopicData is abstract;
-- <dref>DataWriter_get_matched_subscription_data</dref> function Get_Matched_Subscription_Locators
(Self : not null access Ref)
return DDS.Locator_Seq.Sequence is abstract;
-- <dref>DataWriter_get_matched_subscription_locators</dref> procedure Get_Reliable_Reader_Activity_Changed_Status
(Self : not null access Ref;
status : in out DDS.ReliableReaderActivityChangedStatus) is abstract;
-- <dref>DataWriter_get_reliable_reader_activity_changed_status</dref> procedure Get_Reliable_Writer_Cache_Changed_Status
(Self : not null access Ref;
status : in out DDS.ReliableWriterCacheChangedStatus) is abstract;
-- <dref>DataWriter_get_reliable_writer_cache_changed_status</dref> procedure Get_DataWriter_Cache_Status
(Self : not null access Ref;
status : in out DDS.DataWriterCacheStatus) is abstract;
-- <dref>DataWriter_get_datawriter_cache_status</dref> procedure Get_DataWriter_Protocol_Status
(Self : not null access Ref;
status : in out DDS.DataWriterProtocolStatus) is abstract;
-- <dref>DataWriter_get_datawriter_protocol_status</dref> procedure Get_Matched_Subscription_Datawriter_Protocol_Status
(Self : not null access Ref;
status : in out DDS.DataWriterProtocolStatus;
subscription_handle : DDS.InstanceHandle_T) is abstract;
-- <dref>DataWriter_get_matched_subscription_datawriter_protocol_status</dref> procedure Get_Matched_Subscription_Datawriter_Protocol_Status_By_Locator
(Self : not null access Ref;
status : in out DDS.DataWriterProtocolStatus;
locator : DDS.Locator_T) is abstract;
-- <dref>DataWriter_get_matched_subscription_datawriter_protocol_status_by_locator</dref> procedure Flush
(Self : not null access Ref) is abstract;
-- <dref>DataWriter_flush</dref> procedure WriteI
(Self : not null access Ref;
Instance_Data : in System.Address;
Handle : in DDS.InstanceHandle_T_Access) is abstract;
end DDS.DataWriter;