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