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