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;
type DDS_DomainParticipant_Access is access all DDS_DomainParticipant with Storage_Size => 0;
type Register_Type_Procedure is not null access procedure (Participant : not null access DDS.DomainParticipant.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 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; | 
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); | 
procedure Register_Type_Registration
| ( | P | : Register_Type_Procedure); |