-   
-   
-   
-   
-   
-   
-   
-   
-   
-   
- with Ada.Unchecked_Conversion;  
- with DDS.DomainParticipantListener;  
- with DDS.TopicListener;  
- with DDS.SubscriberListener;  
- with DDS.PublisherListener;  
- with DDS.Publisher;  
- with DDS.PublisherSeq;  
- with DDS.Topic;  
- with DDS.TopicDescription;  
- with DDS.Subscriber;  
- with DDS.SubscriberSeq;  
- with DDS.ContentFilteredTopic;  
- with DDS.MultiTopic;  
- with DDS.DomainParticipant;  
- limited with dds.DomainParticipantFactory;  
-   
- with DDS.Entity_Impl;  
- with DDS.Entity;  
- with DDS.DataWriter;  
- with DDS.DataWriterListener;  
- with DDS.DataReader;  
- with DDS.DataReaderListener;  
- with RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h; use RTIDDS.Low_Level.ndds_dds_c_dds_c_infrastructure_h;  
- package DDS.DomainParticipant_Impl is  
-   
-    type Ref is new DDS.Entity_Impl.Ref and DDS.DomainParticipant.Ref with record  
-       Domain_Id : DDS.DomainId_T := 0;  
-    end record;  
-   
-    type Ref_Access is access all Ref'Class;  
-   
-    function Create_Publisher  
-      (Self       : not null access Ref;  
-       Qos        : in DDS.PublisherQos;  
-       A_Listener : in DDS.PublisherListener.Ref_Access;  
-       Mask       : in DDS.StatusMask)  
-       return DDS.Publisher.Ref_Access;  
-   
-    function Create_Publisher_With_Profile  
-      (Self         : not null access Ref;  
-       Library_Name : in DDS.String;  
-       Profile_Name : in DDS.String;  
-       A_Listener   : in DDS.PublisherListener.Ref_Access := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.Publisher.Ref_Access;  
-    function Create_Publisher_With_Profile  
-      (Self         : not null access Ref;  
-       Library_Name : in Standard.String;  
-       Profile_Name : in Standard.String;  
-       A_Listener   : in DDS.PublisherListener.Ref_Access := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.Publisher.Ref_Access;  
-   
-    procedure Delete_Publisher  
-      (Self      : not null access Ref;  
-       Publisher : in out DDS.Publisher.Ref_Access);  
-   
-   
-    function Create_Subscriber  
-      (Self       : not null access Ref;  
-       Qos        : in DDS.SubscriberQos;  
-       A_Listener : in DDS.SubscriberListener.Ref_Access;  
-       Mask       : in DDS.StatusMask)  
-       return DDS.Subscriber.Ref_Access;  
-   
-    function Create_Subscriber_With_Profile  
-      (Self         : not null access Ref;  
-       Library_Name : in DDS.String;  
-       Profile_Name : in DDS.String;  
-       A_Listener   : in DDS.SubscriberListener.Ref_Access  := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.Subscriber.Ref_Access;  
-   
-    function Create_Subscriber_With_Profile  
-      (Self         : not null access Ref;  
-       Library_Name : in Standard.String;  
-       Profile_Name : in Standard.String;  
-       A_Listener   : in DDS.SubscriberListener.Ref_Access  := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.Subscriber.Ref_Access;  
-   
-   
-    procedure Delete_Subscriber  
-      (Self       :  not null access Ref;  
-       Subscriber :  in out DDS.Subscriber.Ref_Access);  
-   
-   
-    function Create_DataWriter  
-      (Self       : not null access Ref;  
-       A_Topic    : in DDS.Topic.Ref_Access;  
-       Qos        : in DDS.DataWriterQos := DDS.Publisher.DATAWRITER_QOS_DEFAULT;  
-       A_Listener : in DDS.DataWriterListener.Ref_Access := null;  
-       Mask       : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.DataWriter.Ref_Access;  
-   
-    function Create_DataWriter_With_Profile  
-      (Self         : not null access Ref;  
-       A_Topic      : in DDS.Topic.Ref_Access;  
-       Library_Name : in DDS.String;  
-       Profile_Name : in DDS.String;  
-       A_Listener   : in DDS.DataWriterListener.Ref_Access := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.DataWriter.Ref_Access;  
-    function Create_DataWriter_With_Profile  
-      (Self         : not null access Ref;  
-       A_Topic      : in DDS.Topic.Ref_Access;  
-       Library_Name : in Standard.String;  
-       Profile_Name : in Standard.String;  
-       A_Listener   : in DDS.DataWriterListener.Ref_Access := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.DataWriter.Ref_Access;  
-   
-    procedure Delete_DataWriter  
-      (Self         : not null access Ref;  
-       A_DataWriter : in out DDS.DataWriter.Ref_Access);  
-   
-   
-    function Create_DataReader  
-      (Self       : not null access Ref;  
-       Topic      : not null access DDS.TopicDescription.Ref'Class;  
-       Qos        : in DDS.DataReaderQoS := DDS.Subscriber.DATAREADER_QOS_DEFAULT;  
-       A_Listener : in DDS.DataReaderListener.Ref_Access := null;  
-       Mask       : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.DataReader.Ref_Access;  
-   
-    function Create_DataReader_With_Profile  
-      (Self         : not null access Ref;  
-       Topic        : not null access DDS.TopicDescription.Ref'Class;  
-       Library_Name : in DDS.String;  
-       Profile_Name : in DDS.String;  
-       A_Listener   : in DDS.DataReaderListener.Ref_Access := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.DataReader.Ref_Access;  
-    function Create_DataReader_With_Profile  
-      (Self         : not null access Ref;  
-       Topic        : not null access DDS.TopicDescription.Ref'Class;  
-       Library_Name : in Standard.String;  
-       Profile_Name : in Standard.String;  
-       A_Listener   : in DDS.DataReaderListener.Ref_Access := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.DataReader.Ref_Access;  
-   
-    procedure Delete_DataReader  
-      (Self         : not null access Ref;  
-       A_DataReader : in out DDS.DataReader.Ref_Access);  
-   
-   
-    function Get_Builtin_Subscriber  
-      (Self :  not null access Ref)  
-       return DDS.Subscriber.Ref_Access;  
-   
-    function Get_Implicit_Publisher  
-      (Self :  not null access Ref)  
-       return DDS.Publisher.Ref_Access;  
-   
-    function Get_Implicit_Subscriber  
-      (Self :  not null access Ref)  
-       return DDS.Subscriber.Ref_Access;  
-   
-    function Create_Topic  
-      (Self       : not null access Ref;  
-       Topic_Name : in DDS.String;  
-       Type_Name  : in DDS.String;  
-       Qos        : in DDS.TopicQos;  
-       A_Listener : in DDS.TopicListener.Ref_Access;  
-       Mask       : in DDS.StatusMask)  
-       return DDS.Topic.Ref_Access;  
-   
-    function Create_Topic_With_Profile  
-      (Self         : not null access Ref;  
-       Topic_Name   : in DDS.String;  
-       Type_Name    : in DDS.String;  
-       Library_Name : in DDS.String;  
-       Profile_Name : in DDS.String;  
-       A_Listener   : in DDS.TopicListener.Ref_Access := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.Topic.Ref_Access;  
-   
-    function Create_Topic_With_Profile  
-      (Self         : not null access Ref;  
-       Topic_Name   : in DDS.String;  
-       Type_Name    : in DDS.String;  
-       Library_Name : in Standard.String;  
-       Profile_Name : in Standard.String;  
-       A_Listener   : in DDS.TopicListener.Ref_Access := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE)  
-       return DDS.Topic.Ref_Access;  
-   
-    function  Get_Or_Create_Topic  
-      (Self       : not null access Ref;  
-       Topic_Name : in DDS.String;  
-       Type_Name  : in DDS.String;  
-       Qos        : in DDS.TopicQos := DDS.DomainParticipant.TOPIC_QOS_DEFAULT;  
-       A_Listener : in DDS.TopicListener.Ref_Access := null;  
-       Mask       : in DDS.StatusMask := STATUS_MASK_NONE) return  DDS.Topic.Ref_Access;  
-   
-    function  Get_Or_Create_Topic_With_Profile  
-      (Self         : not null access Ref;  
-       Topic_Name   : in DDS.String;  
-       Type_Name    : in DDS.String;  
-       Library_Name : in DDS.String;  
-       Profile_Name : in DDS.String;  
-       A_Listener   : in DDS.TopicListener.Ref_Access := null;  
-       Mask         : in DDS.StatusMask := STATUS_MASK_NONE) return  DDS.Topic.Ref_Access;  
-    procedure Delete_Topic  
-      (Self    : not null access Ref;  
-       A_Topic : in out DDS.Topic.Ref_Access);  
-   
-   
-    function Find_Topic  
-      (Self       : not null access Ref;  
-       Topic_Name : in DDS.String;  
-       Timeout    : in DDS.Duration_T)  
-       return DDS.Topic.Ref_Access;  
-   
-    function Lookup_Entity  
-      (Self : not null access Ref;  
-       Key  : in DDS.BuiltinTopicKey_T)  
-       return DDS.Entity.Ref_Access;  
-   
-    function Lookup_Topicdescription  
-      (Self : not null access Ref;  
-       Name : in DDS.String)  
-       return DDS.TopicDescription.Ref_Access;  
-   
-    function Create_Contentfilteredtopic  
-      (Self                  : not null access Ref;  
-       Name                  : in DDS.String;  
-       Related_Topic         : in DDS.Topic.Ref_Access;  
-       Filter_Expression     : in DDS.String;  
-       Filter_Parameters     : access DDS.String_Seq.Sequence)  
-       return DDS.ContentFilteredTopic.Ref_Access;  
-   
-    function Create_Contentfilteredtopic_With_Filter  
-      (Self                  : not null access Ref;  
-       Name                  : in DDS.String;  
-       Related_Topic         : in DDS.Topic.Ref_Access;  
-       Filter_Expression     : in DDS.String;  
-       Filter_Parameters     : access DDS.String_Seq.Sequence;  
-       Filter_Name           : in DDS.String)  
-       return DDS.ContentFilteredTopic.Ref_Access;  
-   
-    function Create_Correlation_Contentfilteredtopic  
-      (Participant      : not null access Ref;  
-       Topic            : not null DDS.Topic.Ref_Access;  
-       Correlation_Guid : DDS.Guid_T)  
-       return DDS.ContentFilteredTopic.Ref_Access;  
-   
-   
-    procedure Delete_Contentfilteredtopic  
-      (Self    : not null access Ref;  
-       CFTopic : in out DDS.ContentFilteredTopic.Ref_Access);  
-   
-    function Create_MultiTopic  
-      (Self                    : not null access Ref;  
-       Name                    : in DDS.String;  
-       Type_Name               : in DDS.String;  
-       Subscription_Expression : in DDS.String;  
-       Expression_Parameters   : access DDS.String_Seq.Sequence)  
-       return DDS.MultiTopic.Ref_Access;  
-   
-    procedure Delete_MultiTopic  
-      (Self     : not null access Ref;  
-       MTopic  : in out DDS.MultiTopic.Ref_Access);  
-   
-   
-   
-   
-   
-   
-   
-    procedure Delete_Contained_Entities  
-      (Self :  not null access Ref);  
-   
-   
-    procedure Set_Qos  
-      (Self : not null access Ref;  
-       Qos  : in DDS.DomainParticipantQos);  
-   
-    procedure Set_Qos_With_Profile  
-      (Self          : not null access Ref;  
-       Library_Name  : in String;  
-       Profile_Name  : in String);  
-    procedure Set_Qos_With_Profile  
-      (Self          : not null access Ref;  
-       Library_Name  : in Standard.String;  
-       Profile_Name  : in Standard.String);  
-   
-    procedure Get_Qos  
-      (Self : not null access Ref;  
-       Qos  : in out DDS.DomainParticipantQos);  
-   
-    procedure Set_Listener  
-      (Self       : not null access Ref;  
-       A_Listener : DDS.DomainParticipantListener.Ref_Access;  
-       Mask       : in DDS.StatusMask);  
-   
-    function Get_Listener  
-      (Self :  not null access Ref)  
-       return DDS.DomainParticipantListener.Ref_Access;  
-   
-   
-    procedure Ignore_Participant  
-      (Self   : not null access Ref;  
-       Handle : in DDS.InstanceHandle_T);  
-   
-   
-    procedure Ignore_Topic  
-      (Self   : not null access Ref;  
-       Handle : in DDS.InstanceHandle_T);  
-   
-    procedure Ignore_Publication  
-      (Self   : not null access Ref;  
-       Handle : in DDS.InstanceHandle_T);  
-   
-    procedure Ignore_Subscription  
-      (Self   : not null access Ref;  
-       Handle : in DDS.InstanceHandle_T);  
-   
-    function Get_Domain_Id  
-      (Self :  not null access Ref)  
-       return DDS.DomainId_T;  
-   
-    procedure Assert_Liveliness  
-      (Self :  not null access Ref);  
-   
-    procedure Set_Default_DataReader_Qos  
-      (Self : not null access Ref;  
-       Qos  : in DDS.DataReaderQoS);  
-   
-    procedure Set_Default_DataReader_Qos_With_Profile  
-      (Self     : not null access Ref;  
-       LibName  : DDS.String;  
-       ProfName : DDS.String);  
-    procedure Set_Default_DataReader_Qos_With_Profile  
-      (Self     : not null access Ref;  
-       LibName  : Standard.String;  
-       ProfName : Standard.String);  
-   
-    procedure Set_Default_DataWriter_Qos  
-      (Self : not null access Ref;  
-       Qos  : in DDS.DataWriterQos);  
-   
-    procedure Set_Default_DataWriter_Qos_With_Profile  
-      (Self     : not null access Ref;  
-       LibName  : DDS.String;  
-       ProfName : DDS.String);  
-    procedure Set_Default_DataWriter_Qos_With_Profile  
-      (Self     : not null access Ref;  
-       LibName  : Standard.String;  
-       ProfName : Standard.String);  
-   
-    procedure Set_Default_Publisher_Qos  
-      (Self : not null access Ref;  
-       Qos  : in DDS.PublisherQos);  
-   
-    procedure Set_Default_Publisher_Qos_With_Profile  
-      (Self     : not null access Ref;  
-       LibName  : DDS.String;  
-       ProfName : DDS.String);  
-    procedure Set_Default_Publisher_Qos_With_Profile  
-      (Self     : not null access Ref;  
-       LibName  : Standard.String;  
-       ProfName : Standard.String);  
-   
-    procedure Get_Default_Publisher_Qos  
-      (Self    : not null access Ref;  
-       Qos     : in out DDS.PublisherQos);  
-   
-    procedure Set_Default_Subscriber_Qos  
-      (Self : not null access Ref;  
-       Qos  : in DDS.SubscriberQos);  
-   
-    procedure Set_Default_Subscriber_Qos_With_Profile  
-      (Self : not null access Ref;  
-       LibraryName : DDS.String;  
-       ProfileName : DDS.String);  
-    procedure Set_Default_Subscriber_Qos_With_Profile  
-      (Self : not null access Ref;  
-       LibraryName : Standard.String;  
-       ProfileName : Standard.String);  
-   
-    procedure Get_Default_Subscriber_Qos  
-      (Self    : not null access Ref;  
-       Qos     : in out DDS.SubscriberQos);  
-   
-    procedure Get_Default_DataReader_Qos  
-      (Self : not null access Ref;  
-       Qos  : in out DDS.DataReaderQoS);  
-   
-    procedure Get_Default_DataWriter_Qos  
-      (Self : not null access Ref;  
-       Qos  : in out DDS.DataWriterQos);  
-   
-    procedure Set_Default_Topic_Qos  
-      (Self : not null access Ref;  
-       Qos  : in DDS.TopicQos);  
-   
-    procedure Set_Default_Topic_Qos_With_Profile  
-      (Self        : not null access Ref;  
-       LibraryName : DDS.String;  
-       ProfileName : DDS.String);  
-    procedure Set_Default_Topic_Qos_With_Profile  
-      (Self        : not null access Ref;  
-       LibraryName : Standard.String;  
-       ProfileName : Standard.String);  
-   
-    procedure Get_Default_Topic_Qos  
-      (Self    : not null access Ref;  
-       Qos     : in out DDS.TopicQos);  
-   
-    procedure Set_Default_Profile  
-      (Self          : not null access Ref;  
-       Library_Name  : DDS.String;  
-       Profile_Name  : DDS.String);  
-   
-    procedure Set_Default_Library  
-      (Self          : not null access Ref;  
-       Library_Name   : DDS.String);  
-   
-    function Get_Default_Library  
-      (Self : not null access Ref)  
-       return DDS.String;  
-   
-    function Get_Default_Profile  
-      (Self : not null access Ref)  
-       return DDS.String;  
-   
-    function Get_Default_Profile_Library  
-      (Self : not null access Ref)  
-       return DDS.String;  
-   
-    procedure Get_Default_Flowcontroller_Property  
-      (Self : not null access Ref;  
-       Property : in out DDS.FlowControllerProperty_T);  
-   
-    procedure Set_Default_Flowcontroller_Property  
-      (Self : not null access Ref;  
-       Property : in DDS.FlowControllerProperty_T);  
-   
-    function Get_Discovered_Participants  
-      (Self                :  access Ref)  
-       return DDS.InstanceHandle_Seq.Sequence;  
-   
-    function Get_Discovered_Participant_Data  
-      (Self               : not null access Ref;  
-       Participant_Handle : in DDS.InstanceHandle_T)  
-       return DDS.ParticipantBuiltinTopicData;  
-   
-    function Get_Discovered_Topics  
-      (Self :  access Ref)  
-       return DDS.InstanceHandle_Seq.Sequence;  
-   
-    function Get_Discovered_Topic_Data  
-      (Self         : not null access Ref;  
-       Topic_Handle : in DDS.InstanceHandle_T)  
-       return DDS.TopicBuiltinTopicData;  
-   
-    procedure Get_Discovered_Topic_Data  
-      (Self         : not null access Ref;  
-       Topic_Handle : in DDS.InstanceHandle_T;  
-       Data         : access DDS.TopicBuiltinTopicData);  
-   
-    function Contains_Entity  
-      (Self     : not null access Ref;  
-       A_Handle : in DDS.InstanceHandle_T)  
-       return Boolean;  
-   
-    function Get_Current_Time  
-      (Self : not null access Ref)  
-       return DDS.Time_T;  
-   
-    procedure Free (This : in out Ref_Access);  
-   
-    function CreateI  
-      (Participant_Factory   : not null access DDS.DomainParticipantFactory.ref;  
-       Domain_Id             : in DDS.DomainId_T;  
-       Qos                   : in DDS.DomainParticipantQos;  
-       A_Listener            : in DDS.DomainParticipantListener.Ref_Access;  
-       Mask                  : in DDS.StatusMask)  
-       return DDS.DomainParticipant.Ref_Access;  
-   
-    function CreateI  
-      (Participant_Factory : not null access DDS.DomainParticipantFactory.ref;  
-       Domain_Id             : in DDS.DomainId_T;  
-       Library_Name          : in DDS.String;  
-       Profile_Name          : in DDS.String;  
-       A_Listener            : in DDS.DomainParticipantListener.Ref_Access;  
-       Mask                  : in DDS.StatusMask)  
-       return DDS.DomainParticipant.Ref_Access;  
-   
-   
-    type DDS_DomainParticipant_Access is access all DDS_DomainParticipant with Storage_Size => 0;  
-    function Get_FacadeI (C_DomainParticpant : DDS_DomainParticipant_Access)  
-                          return Ref_Access;  
-    function As_Dds_Entety_Access is new Ada.Unchecked_Conversion (DDS_DomainParticipant_Access, DDS.Entity_Impl.DDS_Entity_Access);  
-   
-    function GetInterface (Self : not null access Ref) return DDS_DomainParticipant_Access;  
-    procedure SetInterface (Self : not null access Ref; To : DDS_DomainParticipant_Access);  
-   
-    procedure Add_Peer  
-      (Self             : not null access Ref;  
-       Peer_Desc_String : DDS.String);  
-   
-    procedure Register_Builtin_TypesI (Self : not null access Ref);  
-   
-    procedure Register_User_TypesI (Self : not null access Ref);  
-   
-    procedure Delete_Implicit_EntitiesI (Self : not null access Ref);  
-   
-    procedure Get_Publishers  
-      (Self : not null access Ref;  
-       Publishers : access DDS.PublisherSeq.Sequence);  
-   
-    procedure Get_Subscribers  
-      (Self        : not null access Ref;  
-       Subscribers : access DDS.SubscriberSeq.Sequence);  
-   
-    type Register_Type_Procedure is not null access procedure  
-      (Participant :  not null access DDS.DomainParticipant.Ref'Class);  
-   
-    procedure Register_Type_Registration (P : Register_Type_Procedure);  
- private  
-   
-    procedure Free_Impl is new Ada.Unchecked_Deallocation (Ref'Class, Ref_Access);  
-    procedure Free_Mem (This : in out Ref_Access) renames Free_Impl;  
-   
- end DDS.DomainParticipant_Impl;