1. --  (c) Copyright, Real-Time Innovations, $Date:: 2012-02-16 #$ 
  2. --  All rights reserved. 
  3. -- 
  4. --  No duplications, whole or partial, manual or electronic, may be made 
  5. --  without express written permission.  Any such copies, or 
  6. --  revisions thereof, must display this notice unaltered. 
  7. --  This code contains trade secrets of Real-Time Innovations, Inc. 
  8.  
  9.  
  10. pragma Style_Checks ("NM32766"); 
  11.  
  12. limited with DDS.DomainParticipant; 
  13.  
  14. with DDS.PublisherListener; 
  15. with DDS.DataWriterListener; 
  16. with DDS.Topic; 
  17. with DDS.DataWriter; 
  18. with Dds.Domain_Entity; 
  19.  
  20. --  <module name="DDSPublicationModule" actualName="Publication Module">publication</module> 
  21. --  <dref>Publisher</dref> 
  22. package DDS.Publisher is 
  23.    pragma Elaborate_Body; 
  24.    DATAWRITER_QOS_DEFAULT : aliased  constant DataWriterQos with 
  25.      Convention => Ada, 
  26.      Import, 
  27.      Link_Name => "DDS__Publisher_DATAWRITER_QOS_DEFAULT"; 
  28.    --  <dref>DATAREADER_QOS_DEFAULT</dref> 
  29.  
  30.    DATAWRITER_QOS_USE_TOPIC_QOS :  aliased  constant DataWriterQos with 
  31.      Convention => Ada, 
  32.      Import, 
  33.      Link_Name => "DDS__Publisher_DATAWRITER_QOS_USE_TOPIC_QOS"; 
  34.    --  <dref>DATAREADER_QOS_USE_TOPIC_QOS</dref> 
  35.  
  36.  
  37.    type Ref is limited Interface and DDS.Domain_Entity.Ref; 
  38.    type Ref_Access is access all Ref'Class; 
  39.  
  40.    type Ref_Access_Access is access all Ref_Access; 
  41.    type Ref_Access_Array is array (Natural range <>) of aliased Ref_Access; 
  42.    procedure Initialize 
  43.      (Self : in out Ref_Access) is null; 
  44.    procedure Finalize 
  45.      (Self : in out Ref_Access) is null; 
  46.    procedure Copy 
  47.      (Dst : in out Ref_Access; 
  48.       Src : in Ref_Access); 
  49.  
  50.  
  51.    function Create_DataWriter 
  52.      (Self       : not null access Ref; 
  53.       A_Topic    : not null DDS.Topic.Ref_Access; 
  54.       Qos        : in DDS.DataWriterQos := DATAWRITER_QOS_DEFAULT; 
  55.       A_Listener : in DDS.DataWriterListener.Ref_Access := null; 
  56.       Mask       : in DDS.StatusMask := STATUS_MASK_NONE) 
  57.       return DDS.DataWriter.Ref_Access is abstract; 
  58.    --  <dref>Publisher_create_datawriter</dref> 
  59.  
  60.    function Create_DataWriter_With_Profile 
  61.      (Self         : not null access Ref; 
  62.       A_Topic      : not null DDS.Topic.Ref_Access; 
  63.       Library_Name : in DDS.String; 
  64.       Profile_Name : in DDS.String; 
  65.       A_Listener   : in DDS.DataWriterListener.Ref_Access := null; 
  66.       Mask         : in DDS.StatusMask := STATUS_MASK_NONE) 
  67.       return DDS.DataWriter.Ref_Access is abstract; 
  68.    function Create_DataWriter_With_Profile 
  69.      (Self         : not null access Ref; 
  70.       A_Topic      : in DDS.Topic.Ref_Access; 
  71.       Library_Name : in Standard.String; 
  72.       Profile_Name : in Standard.String; 
  73.       A_Listener   : in DDS.DataWriterListener.Ref_Access := null; 
  74.       Mask         : in DDS.StatusMask := STATUS_MASK_NONE) 
  75.       return DDS.DataWriter.Ref_Access is abstract; 
  76.    --  <dref>Publisher_create_datawriter_with_profile</dref> 
  77.  
  78.  
  79.    procedure Delete_DataWriter 
  80.      (Self         : not null access Ref; 
  81.       A_DataWriter : in out DDS.DataWriter.Ref_Access) is abstract; 
  82.    --  <dref>Publisher_delete_datawriter</dref> 
  83.  
  84.    function Lookup_DataWriter 
  85.      (Self       : not null access Ref; 
  86.       Topic_Name : in DDS.String_Ptr) 
  87.      return DDS.DataWriter.Ref_Access is abstract; 
  88.    --  <dref>Publisher_lookup_datawriter</dref> 
  89.    --  <dref>Shared_Publisher_lookup_datawriter</dref> 
  90.  
  91.    procedure Delete_Contained_Entities 
  92.      (Self : not null access Ref) is abstract; 
  93.    --  <dref>Publisher_delete_contained_entities</dref> 
  94.  
  95.    procedure Set_Qos 
  96.      (Self : not null access Ref; 
  97.       Qos  : in DDS.PublisherQos) is abstract; 
  98.    --  <dref>Publisher_set_qos</dref> 
  99.  
  100.    procedure Set_Qos_With_Profile 
  101.      (Self          : not null access Ref; 
  102.       library_name  : in String; 
  103.       Profile_Name  : in String) is abstract; 
  104.    --  <dref>Publisher_set_qos_with_profile</dref> 
  105.  
  106.    procedure Get_Qos 
  107.      (Self : not null access Ref; 
  108.       Qos  : in out DDS.PublisherQos) is abstract; 
  109.    --  <dref>Publisher_get_qos</dref> 
  110.  
  111.    procedure Set_Listener 
  112.      (Self       : not null access Ref; 
  113.       A_Listener : in DDS.PublisherListener.Ref_Access; 
  114.       Mask       : in DDS.StatusMask) is abstract; 
  115.    --  <dref>Publisher_set_listener</dref> 
  116.  
  117.    function Get_Listener 
  118.      (Self : not null access Ref) 
  119.       return DDS.PublisherListener.Ref_Access is abstract; 
  120.    --  <dref>Publisher_get_listener</dref> 
  121.  
  122.    procedure Suspend_Publications 
  123.      (Self : not null access Ref) is abstract; 
  124.    --  <dref>Publisher_suspend_publications</dref> 
  125.  
  126.    procedure Resume_Publications 
  127.      (Self : not null access Ref) is abstract; 
  128.    --  <dref>Publisher_resume_publications</dref> 
  129.  
  130.    procedure Begin_Coherent_Changes 
  131.      (Self : not null access Ref) is abstract; 
  132.    --  <dref>Publisher_begin_coherent_changes</dref> 
  133.  
  134.    procedure End_Coherent_Changes 
  135.      (Self : not null access Ref) is abstract; 
  136.    --  <dref>Publisher_end_coherent_changes</dref> 
  137.  
  138.    procedure Wait_For_Acknowledgments 
  139.      (Self     : not null access Ref; 
  140.       Max_Wait : in DDS.Duration_T) is abstract; 
  141.    --  <dref>Publisher_wait_for_acknowledgments</dref> 
  142.  
  143.    procedure Wait_For_Asynchronous_Publishing 
  144.      (Self     : not null  access Ref; 
  145.       Max_Wait : in DDS.Duration_T) is abstract; 
  146.    --  <dref>Publisher_wait_for_asynchronous_publishing</dref> 
  147.  
  148.    function Get_Participant 
  149.      (Self : not null access Ref) 
  150.       return access DDS.DomainParticipant.Ref'Class is abstract; 
  151.    --  <dref>Publisher_get_participant</dref> 
  152.  
  153.    procedure Set_Default_DataWriter_Qos 
  154.      (Self : not null access Ref; 
  155.       Qos  : in DDS.DataWriterQos) is abstract; 
  156.    --  <dref>Publisher_set_default_datawriter_qos</dref> 
  157.  
  158.    procedure Set_Default_DataWriter_Qos_With_Profile 
  159.      (Self     : not null access Ref; 
  160.       libName  : DDS.String; 
  161.       profName : DDS.String) is abstract; 
  162.    procedure Set_Default_DataWriter_Qos_With_Profile 
  163.      (Self     : not null access Ref; 
  164.       libName  : Standard.String; 
  165.       profName : Standard.String) is abstract; 
  166.    --  <dref>Publisher_set_default_datawriter_qos_with_profile</dref> 
  167.  
  168.    procedure Get_Default_DataWriter_Qos 
  169.      (Self : not null access Ref; 
  170.       Qos  : in out DDS.DataWriterQos) is abstract; 
  171.    --  <dref>Publisher_get_default_datawriter_qos</dref> 
  172.  
  173.    procedure Copy_From_Topic_Qos 
  174.      (Self               : not null access Ref; 
  175.       A_DataWriter_Qos   : in out DDS.DataWriterQos; 
  176.       A_Topic_Qos        : in DDS.TopicQos) is abstract; 
  177.    --  <dref>Publisher_copy_from_topic_qos</dref> 
  178.  
  179.    procedure Set_Default_Profile 
  180.      (Self          : not null access Ref; 
  181.       Library_Name  : DDS.String; 
  182.       Profile_Name  : DDS.String) is abstract; 
  183.    --  <dref>Publisher_set_default_profile</dref> 
  184.  
  185.    procedure Set_Default_Library 
  186.      (Self          : not null access Ref; 
  187.       Library_Name   : DDS.String) is abstract; 
  188.    --  <dref>Publisher_set_default_library</dref> 
  189.  
  190.    function Get_Default_Library 
  191.      (Self : not null access Ref) 
  192.       return DDS.String is abstract; 
  193.    --  <dref>Publisher_get_default_library</dref> 
  194.  
  195.    function Get_Default_Profile 
  196.      (Self : not null access Ref) 
  197.       return DDS.String is abstract; 
  198.    --  <dref>Publisher_get_default_profile</dref> 
  199.  
  200.    function Get_Default_Profile_Library 
  201.      (Self : not null access Ref) 
  202.       return DDS.String is abstract; 
  203.    --  <dref>Publisher_get_default_profile_library</dref> 
  204.  
  205. end DDS.Publisher;