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.  
  11.  
  12. with RTIDDS.Obj_Impl; 
  13. with DDS.DomainParticipant; 
  14. with DDS.DomainParticipantListener; 
  15. private with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h; 
  16. with RTIDDS.Low_Level.ndds_dds_c_dds_c_domain_h; 
  17.  
  18. --  <module name="DDSDomainModule" actualName="Domain Module">domain</module> 
  19. --  <dref>DomainParticipantFactory</dref> 
  20. package DDS.DomainParticipantFactory is 
  21.  
  22.    type Ref is new RTIDDS.Obj_Impl.Ref with private; 
  23.    type Ref_Access is access all Ref'Class; 
  24.  
  25.    PARTICIPANT_QOS_DEFAULT : aliased DDS.DomainParticipantQos; 
  26.    --  <dref>PARTICIPANT_QOS_DEFAULT</dref> 
  27.  
  28.    function Get_Instance return Ref_Access; 
  29.    --  <dref>DomainParticipantFactory_get_instance</dref> 
  30.  
  31.    function Create_Participant 
  32.      (Self       : not null access Ref; 
  33.       Domain_Id  : in DDS.DomainId_T := Default_Domain; 
  34.       Qos        : in DDS.DomainParticipantQos := PARTICIPANT_QOS_DEFAULT; 
  35.       A_Listener : in DDS.DomainParticipantListener.Ref_Access := null; 
  36.       Mask       : in DDS.StatusMask := DDS.STATUS_MASK_NONE) 
  37.       return DDS.DomainParticipant.Ref_Access; 
  38.    --  <dref>DomainParticipantFactory_create_participant</dref> 
  39.  
  40.    function Create_Participant_With_Profile 
  41.      (Self         : not null access Ref; 
  42.       Domain_Id    : in DDS.DomainId_T := Default_Domain; 
  43.       library_name : in DDS.String; 
  44.       profile_name : in DDS.String; 
  45.       A_Listener   : in DDS.DomainParticipantListener.Ref_Access := null; 
  46.       Mask         : in DDS.StatusMask := DDS.STATUS_MASK_NONE) 
  47.       return DDS.DomainParticipant.Ref_Access; 
  48.    function Create_Participant_With_Profile 
  49.      (Self         : not null access Ref; 
  50.       Domain_Id    : in DDS.DomainId_T := Default_Domain; 
  51.       library_name : in Standard.String; 
  52.       profile_name : in Standard.String; 
  53.       A_Listener   : in DDS.DomainParticipantListener.Ref_Access := null; 
  54.       Mask         : in DDS.StatusMask := DDS.STATUS_MASK_NONE) 
  55.       return DDS.DomainParticipant.Ref_Access; 
  56.    --  <dref>DomainParticipantFactory_create_participant_with_profile</dref> 
  57.  
  58.    function  Get_Or_Create_Participant 
  59.      (Self       : not null access Ref; 
  60.       Domain_Id  : in DDS.DomainId_T := Default_Domain; 
  61.       Qos        : in DDS.DomainParticipantQos := DDS.DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT; 
  62.       A_Listener : in DDS.DomainParticipantListener.Ref_Access := null; 
  63.       Mask       : in DDS.StatusMask := STATUS_MASK_NONE) return  DDS.DomainParticipant.Ref_Access; 
  64.  
  65.    function  Get_Or_Create_Participant_With_Profile 
  66.      (Self         : not null access Ref; 
  67.       Domain_Id    : in DDS.DomainId_T := Default_Domain; 
  68.       Library_Name : in DDS.String; 
  69.       Profile_Name : in DDS.String; 
  70.       A_Listener   : in DDS.DomainParticipantListener.Ref_Access := null; 
  71.       Mask         : in DDS.StatusMask := STATUS_MASK_NONE) return  DDS.DomainParticipant.Ref_Access; 
  72.  
  73.    procedure Delete_Participant 
  74.      (Self          : not null access Ref; 
  75.       A_Participant : in out DDS.DomainParticipant.Ref_Access); 
  76.    --  <dref>DomainParticipantFactory_delete_participant</dref> 
  77.  
  78.  
  79.    function Lookup_Participant 
  80.      (Self      : not null access Ref; 
  81.       Domain_Id : in DDS.DomainId_T) 
  82.       return DDS.DomainParticipant.Ref_Access; 
  83.    --  <dref>DomainParticipantFactory_lookup_participant</dref> 
  84.  
  85.  
  86.    procedure Set_Default_Participant_Qos 
  87.      (Self : not null access Ref; 
  88.       Qos  : in DDS.DomainParticipantQos); 
  89.    --  <dref>DomainParticipantFactory_set_default_participant_qos</dref> 
  90.  
  91.    procedure Set_Default_Participant_Qos_with_Profile 
  92.      (Self         : not null access Ref; 
  93.       libraryName  : in DDS.String; 
  94.       profile_name : in DDS.String); 
  95.    --  <dref>DomainParticipantFactory_set_default_participant_qos_with_profile</dref> 
  96.  
  97.    procedure Get_Default_Participant_Qos 
  98.      (Self    : not null access Ref; 
  99.       Qos     : in out DDS.DomainParticipantQos); 
  100.    --  <dref>DomainParticipantFactory_get_default_participant_qos</dref> 
  101.  
  102.  
  103.    procedure Set_Qos 
  104.      (Self : not null access Ref; 
  105.       Qos  : in DDS.DomainParticipantFactoryQos); 
  106.    --  <dref>DomainParticipantFactory_set_qos</dref> 
  107.    --  <internal> 
  108.    --  Sets the value for a participant factory QoS. 
  109.    --  The DDS.DomainParticipantFactoryQos::entity_factory can be changed. The other policies are immutable. 
  110.    --  Note that despite having QoS, the DDS.DomainParticipantFactory is not an DDS.Entity. 
  111.    --  Parameters: 
  112.    --     self <<in>> Cannot be NULL. 
  113.    --     qos  <<in>> Set of policies to be applied to DDS.DomainParticipantFactory. Policies must be consistent. 
  114.    --                 Immutable Policies Can Only Be Changed Before Calling Any Other 
  115.    --                 Data Distribution Service Functions Except for DDS.DomainParticipantFactory_Get_Qos. 
  116.    --  Raises: 
  117.    --     One of the Standard Return Codes, DDS.RETCODE_IMMUTABLE_POLICY if immutable policy is changed, 
  118.    --     or DDS-RETCODE_INCONSISTENT_POLICY if Policies Are Inconsistent 
  119.    --  See also: 
  120.    --     DDS.DomainParticipantFactoryQos for rules on consistency among QoS 
  121.    --  </internal> 
  122.  
  123.    procedure Load_Profiles 
  124.      (Self          : not null access Ref); 
  125.    --  <dref>DomainParticipantFactory_load_profiles</dref> 
  126.  
  127.    procedure Reload_Profiles 
  128.      (Self          : not null access Ref); 
  129.    --  <dref>DomainParticipantFactory_reload_profiles</dref> 
  130.  
  131.    procedure Unload_Profiles 
  132.      (Self          : not null access Ref); 
  133.    --  <dref>DomainParticipantFactory_unload_profiles</dref> 
  134.  
  135.    procedure Set_Default_Profile 
  136.      (Self          : not null access Ref; 
  137.       library_name  : DDS.String; 
  138.       profile_name  : DDS.String); 
  139.    --  <dref>DomainParticipantFactory_set_default_profile</dref> 
  140.  
  141.    procedure set_default_library 
  142.      (Self           : not null access Ref; 
  143.       library_name   : DDS.String); 
  144.    --  <dref>DomainParticipantFactory_set_default_library</dref> 
  145.  
  146.    function get_default_library 
  147.      (Self          : not null access Ref) return DDS.String; 
  148.    --  <dref>DomainParticipantFactory_get_default_library</dref> 
  149.  
  150.    function get_default_Profile 
  151.      (Self          : not null access Ref) return DDS.String; 
  152.    --  <dref>DomainParticipantFactory_get_default_profile</dref> 
  153.  
  154.    function get_default_profile_library 
  155.      (Self          : not null access Ref) return DDS.String; 
  156.    --  <dref>DomainParticipantFactory_get_default_profile_library</dref> 
  157.  
  158.    procedure get_qos_profile_libraries 
  159.      (Self   : not null access Ref; 
  160.       libSeq : not null access DDS.String_Seq.Sequence); 
  161.    function get_qos_profile_libraries 
  162.      (Self   : not null access Ref) return DDS.String_Seq.Sequence; 
  163.    --  <dref>DomainParticipantFactory_get_qos_profile_libraries</dref> 
  164.  
  165.    procedure get_qos_profiles 
  166.      (Self    : not null access Ref; 
  167.       profSeq : not null access DDS.String_Seq.Sequence; 
  168.       libName : in DDS.String); 
  169.    function get_qos_profiles 
  170.      (Self    : not null access Ref; 
  171.       libName : in DDS.String) return DDS.String_Seq.Sequence; 
  172.    --  <dref>DomainParticipantFactory_get_qos_profiles</dref> 
  173.  
  174.    ----------------------------------------------------------- 
  175.  
  176.    procedure get_participant_qos_from_profile 
  177.      (Self          : not null access Ref; 
  178.       QoS           : in out DDS.DomainParticipantQos; 
  179.       library_name  : DDS.String; 
  180.       profile_name  : DDS.String); 
  181.    --  <dref>DomainParticipantFactory_get_participant_qos_from_profile</dref> 
  182.  
  183.    ------------------------------------------------------ 
  184.  
  185.    procedure get_publisher_qos_from_profile 
  186.      (Self          : not null access Ref; 
  187.       QoS           : in out DDS.PublisherQos; 
  188.       library_name  : DDS.String; 
  189.       profile_name  : DDS.String); 
  190.    --  <dref>DomainParticipantFactory_get_publisher_qos_from_profile</dref> 
  191.  
  192.    ------------------------------------------------------ 
  193.  
  194.    procedure get_subscriber_qos_from_profile 
  195.      (Self          : not null access Ref; 
  196.       QoS           : in out DDS.SubscriberQos; 
  197.       library_name  : DDS.String; 
  198.       profile_name  : DDS.String); 
  199.    --  <dref>DomainParticipantFactory_get_subscriber_qos_from_profile</dref> 
  200.  
  201.  
  202.    ------------------------------------------------------ 
  203.  
  204.    procedure get_datareader_qos_from_profile 
  205.      (Self          : not null access Ref; 
  206.       QoS           : in out DDS.DataReaderQos; 
  207.       library_name  : DDS.String; 
  208.       profile_name  : DDS.String); 
  209.    --  <dref>DomainParticipantFactory_get_datareader_qos_from_profile</dref> 
  210.  
  211.  
  212.    ------------------------------------------------------ 
  213.  
  214.    procedure get_datareader_qos_from_profile_w_topic_name 
  215.      (Self          : not null access Ref; 
  216.       QoS           : in out DDS.DataReaderQos; 
  217.       library_name  : DDS.String; 
  218.       profile_name  : DDS.String; 
  219.       topic_name    : DDS.String); 
  220.    --  <dref>DomainParticipantFactory_get_datareader_qos_from_profile_w_topic_name</dref> 
  221.  
  222.  
  223.    ------------------------------------------------------ 
  224.  
  225.    procedure get_datawriter_qos_from_profile 
  226.      (Self          : not null access Ref; 
  227.       QoS           : in out DDS.DataWriterQos; 
  228.       library_name  : DDS.String; 
  229.       profile_name  : DDS.String); 
  230.    --  <dref>DomainParticipantFactory_get_datawriter_qos_from_profile</dref> 
  231.  
  232.    ------------------------------------------------------ 
  233.  
  234.    procedure get_datawriter_qos_from_profile_w_topic_name 
  235.      (Self          : not null access Ref; 
  236.       QoS           : in out DDS.DataWriterQos; 
  237.       library_name  : DDS.String; 
  238.       profile_name  : DDS.String; 
  239.       topic_name    : DDS.String); 
  240.    --  <dref>DomainParticipantFactory_get_datawriter_qos_from_profile_w_topic_name</dref> 
  241.  
  242.  
  243.    ------------------------------------------------------ 
  244.  
  245.    procedure get_topic_qos_from_profile 
  246.      (Self          : not null access Ref; 
  247.       QoS           : in out DDS.TopicQos; 
  248.       library_name  : DDS.String; 
  249.       profile_name  : DDS.String); 
  250.    --  <dref>DomainParticipantFactory_get_topic_qos_from_profile</dref> 
  251.  
  252.    ------------------------------------------------------ 
  253.  
  254.    procedure get_topic_qos_from_profile_w_topic_name 
  255.      (Self          : not null access Ref; 
  256.       QoS           : in out DDS.TopicQos; 
  257.       library_name  : DDS.String; 
  258.       profile_name  : DDS.String; 
  259.       topic_name    : DDS.String); 
  260.    --  <dref>DomainParticipantFactory_get_topic_qos_from_profile_w_topic_name</dref> 
  261.  
  262.    procedure Get_Qos 
  263.      (Self    : not null access Ref; 
  264.       Qos     : in out DDS.DomainParticipantFactoryQos); 
  265.    --  <dref>DomainParticipantFactory_get_qos</dref> 
  266.  
  267.    procedure Finalize_Instance (Self : in out Ref_Access); 
  268.    --  <dref>DomainParticipantFactory_finalize_instance</dref> 
  269.  
  270.    procedure Unregister_Thread (Self : not null access Ref); 
  271.    --  <dref>DomainParticipantFactory_unregister_thread</dref> 
  272.  
  273.    type DDS_DomainParticipantFactory_Access is access all RTIDDS.Low_Level.ndds_dds_c_dds_c_domain_h.DDS_DomainParticipantFactory with Storage_Size => 0; 
  274.  
  275.    function GetInterface (Self : not null access Ref) return DDS_DomainParticipantFactory_Access; 
  276.    procedure SetInterface (Self : not null access Ref; To : DDS_DomainParticipantFactory_Access); 
  277. private 
  278.  
  279.    type Ref is new RTIDDS.Obj_Impl.Ref with null record; 
  280.  
  281.    protected Initializeer is 
  282.       procedure Initialize; 
  283.    end Initializeer; 
  284.  
  285.    procedure On_Thread_Started_Callback 
  286.      (OnStartedParam : System.Address; 
  287.       Worker         : access RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h.REDAWorker); 
  288.    pragma Convention (C, On_Thread_Started_Callback); 
  289.    procedure On_Thread_Stopped_Callback 
  290.      (OnStartedParam : System.Address; 
  291.       Worker         : access RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h.REDAWorker); 
  292.    pragma Convention (C, On_Thread_Stopped_Callback); 
  293.  
  294. end DDS.DomainParticipantFactory;