-- (c) Copyright, Real-Time Innovations, $Date:: 2012-02-16 #$ -- All rights reserved. -- -- No duplications, whole or partial, manual or electronic, may be made -- without express written permission. Any such copies, or -- revisions thereof, must display this notice unaltered. -- This code contains trade secrets of Real-Time Innovations, Inc. with RTIDDS.Obj_Impl; with DDS.DomainParticipant; with DDS.DomainParticipantListener; private with RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h;
with RTIDDS.Low_Level.ndds_dds_c_dds_c_domain_h; -- <module name="DDSDomainModule" actualName="Domain Module">domain</module> -- <dref>DomainParticipantFactory</dref> package DDS.DomainParticipantFactory is
type Ref is new RTIDDS.Obj_Impl.Ref with private;
type Ref_Access is access all Ref'Class;
PARTICIPANT_QOS_DEFAULT : aliased DDS.DomainParticipantQos;
-- <dref>PARTICIPANT_QOS_DEFAULT</dref> function Get_Instance return Ref_Access;
-- Gets the singleton instance of this class. -- <dref>DomainParticipantFactory_get_instance</dref> function Create_Participant
(Self : not null access Ref;
Domain_Id : in DDS.DomainId_T := Default_Domain;
Qos : in DDS.DomainParticipantQos := PARTICIPANT_QOS_DEFAULT;
A_Listener : in DDS.DomainParticipantListener.Ref_Access := null;
Mask : in DDS.StatusMask := DDS.STATUS_MASK_NONE)
return DDS.DomainParticipant.Ref_Access;
-- Creates a new DDS.DomainParticipant. -- -- Precondition -- The specified QoS policies must be consistent or the operation will fail and no DDS.DomainParticipant will be created. -- -- If you want to create multiple participants on a given host in the same domain, -- make sure each one has a different participant index (set in the DDS.WireProtocolQosPolicy). -- This in turn will ensure each participant uses a different port number -- (since the unicast port numbers are calculated from the participant index and the domain ID). -- -- Note that if there is a single participant per host in a given domain, -- the participant index can be left at the default value (-1). -- <dref>DomainParticipantFactory_create_participant</dref> function Create_Participant_With_Profile
(Self : not null access Ref;
Domain_Id : in DDS.DomainId_T := Default_Domain;
Library_Name : in DDS.String;
Profile_Name : in DDS.String;
A_Listener : in DDS.DomainParticipantListener.Ref_Access := null;
Mask : in DDS.StatusMask := DDS.STATUS_MASK_NONE)
return DDS.DomainParticipant.Ref_Access;
function Create_Participant_With_Profile
(Self : not null access Ref;
Domain_Id : in DDS.DomainId_T := Default_Domain;
Library_Name : in Standard.String;
Profile_Name : in Standard.String;
A_Listener : in DDS.DomainParticipantListener.Ref_Access := null;
Mask : in DDS.StatusMask := DDS.STATUS_MASK_NONE)
return DDS.DomainParticipant.Ref_Access;
-- <dref>DomainParticipantFactory_create_participant_with_profile</dref> -- Precondition -- The DDS.DomainParticipantQos in the input profile must be consistent, -- or the operation will fail and no DDS.DomainParticipant will be created. -- -- If you want to create multiple participants on a given host in the same domain, -- make sure each one has a different participant index (set in the DDS.WireProtocolQosPolicy). -- This in turn will ensure each participant uses a different port number -- (since the unicast port numbers are calculated from the participant index and the domain ID). -- -- Note that if there is a single participant per host in a given domain, -- the participant index can be left at the default value (-1). -- -- MT Safety: -- Safe. -- -- Returns -- domain participant or NULL on failure function Get_Or_Create_Participant
(Self : not null access Ref;
Domain_Id : in DDS.DomainId_T := Default_Domain;
Qos : in DDS.DomainParticipantQos := DDS.DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT;
A_Listener : in DDS.DomainParticipantListener.Ref_Access := null;
Mask : in DDS.StatusMask := STATUS_MASK_NONE) return DDS.DomainParticipant.Ref_Access;
function Get_Or_Create_Participant_With_Profile
(Self : not null access Ref;
Domain_Id : in DDS.DomainId_T := Default_Domain;
Library_Name : in DDS.String;
Profile_Name : in DDS.String;
A_Listener : in DDS.DomainParticipantListener.Ref_Access := null;
Mask : in DDS.StatusMask := STATUS_MASK_NONE) return DDS.DomainParticipant.Ref_Access;
-- Precondition -- The DDS.DomainParticipantQos in the input profile must be consistent, -- or the operation will fail and no DDS.DomainParticipant will be created. -- -- If you want to create multiple participants on a given host in the same domain, -- make sure each one has a different participant index (set in the DDS.WireProtocolQosPolicy). -- This in turn will ensure each participant uses a different port number -- (since the unicast port numbers are calculated from the participant index and the domain ID). -- -- Note that if there is a single participant per host in a given domain, -- the participant index can be left at the default value (-1). -- -- MT Safety: -- Safe. -- -- Returns -- domain participant or NULL on failure procedure Delete_Participant
(Self : not null access Ref;
A_Participant : in out DDS.DomainParticipant.Ref_Access);
-- Deletes an existing DDS.DomainParticipant and sets the pointer to null on success. -- -- Precondition -- All domain entities belonging to the participant must have already been deleted. -- Otherwise it fails with the error RETCODE_PRECONDITION_NOT_MET. -- -- Postcondition -- Listener installed on the DDS.DomainParticipant will not be called after this method returns successfully. -- -- MT Safety: -- UNSAFE. It is not safe to delete an entity while another thread may be simultaneously calling an API that uses the entity. -- -- -- Exceptions -- DDS_PRECONDITION_NOT_MET. -- <dref>DomainParticipantFactory_delete_participant</dref> function Lookup_Participant
(Self : not null access Ref;
Domain_Id : in DDS.DomainId_T)
return DDS.DomainParticipant.Ref_Access;
-- Locates an existing DDS.DomainParticipant. -- -- If no such DDS.DomainParticipant exists, the operation will return NULL value. -- -- If multiple DDS.DomainParticipant entities belonging to that domainId exist, -- then the operation will return one of them. It is not specified which one. -- -- Returns -- domain participant if it exists, or NULL -- <dref>DomainParticipantFactory_lookup_participant</dref> procedure Set_Default_Participant_Qos
(Self : not null access Ref;
Qos : in DDS.DomainParticipantQos);
-- Sets the default DDS.DomainParticipantQos values for this domain participant factory. -- -- This method may potentially allocate memory depending on the sequences contained in some QoS policies. -- <dref>DomainParticipantFactory_set_default_participant_qos</dref> procedure Set_Default_Participant_Qos_with_Profile
(Self : not null access Ref;
libraryName : in DDS.String;
Profile_Name : in DDS.String);
-- Sets the default DDS.DomainParticipantQos values for this domain participant factory based on the input XML QoS profile. -- -- This method may potentially allocate memory depending on the sequences contained in some QoS policies. -- -- This default value will be used for newly created DDS.DomainParticipant -- if DDS.DomainParticipantFactory.PARTICIPANT_QOS_DEFAULT is specified as the -- qos parameter when DDS.DomainParticipantFactory.create_participant is called. -- <dref>DomainParticipantFactory_set_default_participant_qos_with_profile</dref> procedure Get_Default_Participant_Qos
(Self : not null access Ref;
Qos : in out DDS.DomainParticipantQos);
-- Initializes the QoS instance with default values. -- -- The retrieved qos will match the set of values specified on the last successful call -- to DDS.DomainParticipantFactory.set_default_participant_qos, or -- DDS.DomainParticipantFactory.set_default_participant_qos_with_profile, -- or else, if the call was never made, the default values listed in DDS.DomainParticipantQos. -- -- This method may potentially allocate memory depending on the sequences contained in some QoS policies. -- -- <dref>DomainParticipantFactory_get_default_participant_qos</dref> procedure Set_Qos
(Self : not null access Ref;
Qos : in DDS.DomainParticipantFactoryQos);
-- <dref>DomainParticipantFactory_set_qos</dref> -- <internal> -- Sets the value for a participant factory QoS. -- The DDS.DomainParticipantFactoryQos::entity_factory can be changed. The other policies are immutable. -- Note that despite having QoS, the DDS.DomainParticipantFactory is not an DDS.Entity. -- Parameters: -- self <<in>> Cannot be NULL. -- qos <<in>> Set of policies to be applied to DDS.DomainParticipantFactory. Policies must be consistent. -- Immutable Policies Can Only Be Changed Before Calling Any Other -- Data Distribution Service Functions Except for DDS.DomainParticipantFactory_Get_Qos. -- Raises: -- One of the Standard Return Codes, DDS.RETCODE_IMMUTABLE_POLICY if immutable policy is changed, -- or DDS-RETCODE_INCONSISTENT_POLICY if Policies Are Inconsistent -- See also: -- DDS.DomainParticipantFactoryQos for rules on consistency among QoS -- </internal> procedure Load_Profiles
(Self : not null access Ref);
-- Loads the XML QoS profiles. -- -- The XML QoS profiles are loaded implicitly after the first DDS.DomainParticipant -- is created or explicitly, after a call to this method. -- -- This has the same effect as DDS.DomainParticipantFactory.reload_profiles. -- <dref>DomainParticipantFactory_load_profiles</dref> procedure Reload_Profiles
(Self : not null access Ref);
-- Reloads the XML QoS profiles. -- -- The XML QoS profiles are loaded implicitly after the first DDS.DomainParticipant -- is created or explicitly, after a call to this method. -- -- This has the same effect as DDS.DomainParticipantFactory.load_profiles. -- <dref>DomainParticipantFactory_reload_profiles</dref> procedure Unload_Profiles
(Self : not null access Ref);
-- Unloads the XML QoS profiles. -- -- The resources associated with the XML QoS profiles are freed. -- Any reference to the profiles after calling this method will fail with an error. -- <dref>DomainParticipantFactory_unload_profiles</dref> procedure Set_Default_Profile
(Self : not null access Ref;
Library_Name : DDS.String;
Profile_Name : DDS.String);
-- Sets the default XML profile for a DDS.DomainParticipantFactory. -- -- This method specifies the profile that will be used as the default the next -- time a default DomainParticipantFactory profile is needed during a call -- to a DomainParticipantFactory method. -- When calling a DDS.DomainParticipantFactory method that requires a -- profile_name parameter, you can use null to refer to the default profile. -- (This same information applies to setting a default library.) -- -- This method does not set the default QoS for newly created DomainParticipants; -- for this functionality, use DDS.DomainParticipantFactory.set_default_participant_qos_with_profile -- (you may pass in null after having called set_default_profile()). -- -- Note: if the profile set with this function no longer exists after reloading the QoS profiles -- (for example, by changing DDS.DomainParticipantFactoryQos.profile) the -- default profile will be set to the last one marked with the -- attribute is_default_qos=true or null no such profile exists. -- <dref>DomainParticipantFactory_set_default_profile</dref> procedure set_default_library
(Self : not null access Ref;
Library_Name : DDS.String);
-- Sets the default XML library for a DDS.DomainParticipantFactory. -- -- Any API requiring a library_name as a parameter can use DDS.Null_String -- to refer to the default library set with this function. -- -- Note: if the library set with this function no longer exists after reloading -- the QoS profiles (for example, by changing DDS.DomainParticipantFactoryQos.profile) -- the default library will be set to the last library containing a profile -- with the attribute is_default_qos=true or null no such library exists. -- <dref>DomainParticipantFactory_set_default_library</dref> function get_default_library
(Self : not null access Ref) return DDS.String;
-- Gets the default XML library associated with a DDS.DomainParticipantFactory. -- -- @return -- The returned library name is determined as follows: -- -- If it was previously set with DDS.DomainParticipantFactory.set_default_library, -- this function returns that library name -- Otherwise, if one or more profiles have the XML attribute is_default_qos="true", -- this function returns the library where the last one is contained. -- Otherwise, this function returns null. -- <dref>DomainParticipantFactory_get_default_library</dref> function get_default_Profile
(Self : not null access Ref) return DDS.String;
-- Gets the default XML profile associated with a DDS.DomainParticipantFactory. -- -- Returns -- The returned profile name is determined as follows: -- -- If it was previously set with DDS.DomainParticipantFactory.set_default_profile, -- this function returns that profile name -- Otherwise, if one or more profile have the XML attribute is_default_qos="true", -- this function returns the profile where the last one is contained. -- Otherwise, this function returns null. -- <dref>DomainParticipantFactory_get_default_profile</dref> function get_default_profile_library
(Self : not null access Ref) return DDS.String;
-- -- Gets the library where the default XML profile is contained for a DDS.DomainParticipantFactory. -- -- The default profile library is automatically set when DDS.DomainParticipantFactory.set_default_profile is called. -- -- This library can be different than the DDS.DomainParticipantFactory default library -- <dref>DomainParticipantFactory_get_default_profile_library</dref> procedure get_qos_profile_libraries
(Self : not null access Ref;
libSeq : not null access DDS.String_Seq.Sequence);
function get_qos_profile_libraries
(Self : not null access Ref) return DDS.String_Seq.Sequence;
-- Gets the names of all XML QoS profile libraries associated with the DDS.DomainParticipantFactory -- <dref>DomainParticipantFactory_get_qos_profile_libraries</dref> procedure get_qos_profiles
(Self : not null access Ref;
profSeq : not null access DDS.String_Seq.Sequence;
libName : in DDS.String);
function get_qos_profiles
(Self : not null access Ref;
libName : in DDS.String) return DDS.String_Seq.Sequence;
-- Gets the names of all XML QoS profiles associated with the input XML QoS profile library. -- <dref>DomainParticipantFactory_get_qos_profiles</dref> ----------------------------------------------------------- procedure Get_Participant_Qos_From_Profile
(Self : not null access Ref;
QoS : in out DDS.DomainParticipantQos;
Library_Name : DDS.String;
Profile_Name : DDS.String);
-- Gets the DDSDomainParticipantQos values associated with the input XML QoS profile. -- -- -- qos Qos to be filled up.. -- library_name Library name containing the XML QoS profile. -- If library_name is null RTI Connext will use the -- default library (see DDS.DomainParticipantFactory.set_default_library). -- profile_name XML QoS Profile name. If profile_name is null -- RTI Connext will use the default profile (see DDS.DomainParticipantFactory.set_default_profile). -- -- If the input profile cannot be found, the method fails with DDS.RETCODE_ERROR. -- <dref>DomainParticipantFactory_get_participant_qos_from_profile</dref> ------------------------------------------------------ procedure Get_Publisher_Qos_From_Profile
(Self : not null access Ref;
QoS : in out DDS.PublisherQos;
Library_Name : DDS.String;
Profile_Name : DDS.String);
-- Gets the DDS.PublisherQos values associated with the input XML QoS profile. -- <dref>DomainParticipantFactory_get_publisher_qos_from_profile</dref> ------------------------------------------------------ procedure Get_Subscriber_Qos_From_Profile
(Self : not null access Ref;
QoS : in out DDS.SubscriberQos;
Library_Name : DDS.String;
Profile_Name : DDS.String);
-- Gets the DDS.SubscriberQos values associated with the input XML QoS profile. -- <dref>DomainParticipantFactory_get_subscriber_qos_from_profile</dref> ------------------------------------------------------ procedure get_datareader_qos_from_profile
(Self : not null access Ref;
QoS : in out DDS.DataReaderQoS;
Library_Name : DDS.String;
Profile_Name : DDS.String);
-- Gets the DDS.DataReaderQoS values associated with the input XML QoS profile. -- <dref>DomainParticipantFactory_get_datareader_qos_from_profile</dref> ------------------------------------------------------ procedure get_datareader_qos_from_profile_w_topic_name
(Self : not null access Ref;
QoS : in out DDS.DataReaderQoS;
Library_Name : DDS.String;
Profile_Name : DDS.String;
topic_name : DDS.String);
-- Gets the DDS.DataReaderQoS values associated with the input XML QoS profile while applying topic filters to the input topic name. -- <dref>DomainParticipantFactory_get_datareader_qos_from_profile_w_topic_name</dref> ------------------------------------------------------ procedure get_datawriter_qos_from_profile
(Self : not null access Ref;
QoS : in out DDS.DataWriterQos;
Library_Name : DDS.String;
Profile_Name : DDS.String);
-- Gets the DDS.DataWriterQos values associated with the input XML QoS profile. -- <dref>DomainParticipantFactory_get_datawriter_qos_from_profile</dref> ------------------------------------------------------ procedure get_datawriter_qos_from_profile_w_topic_name
(Self : not null access Ref;
QoS : in out DDS.DataWriterQos;
Library_Name : DDS.String;
Profile_Name : DDS.String;
topic_name : DDS.String);
-- Gets the DDS.DataWriterQos values associated with the input XML QoS profile while applying topic filters to the input topic name. -- <dref>DomainParticipantFactory_get_datawriter_qos_from_profile_w_topic_name</dref> ------------------------------------------------------ procedure get_topic_qos_from_profile
(Self : not null access Ref;
QoS : in out DDS.TopicQos;
Library_Name : DDS.String;
Profile_Name : DDS.String);
-- Gets the DDS.TopicQos values associated with the input XML QoS profile. -- <dref>DomainParticipantFactory_get_topic_qos_from_profile</dref> ------------------------------------------------------ procedure Get_Topic_Qos_From_Profile_W_Topic_Name
(Self : not null access Ref;
QoS : in out DDS.TopicQos;
Library_Name : DDS.String;
Profile_Name : DDS.String;
topic_name : DDS.String);
-- Gets the DDS.TopicQos values associated with the input XML QoS profile while applying topic filters to the input topic name. -- <dref>DomainParticipantFactory_get_topic_qos_from_profile_w_topic_name</dref> procedure Get_Qos
(Self : not null access Ref;
Qos : in out DDS.DomainParticipantFactoryQos);
-- Gets the value for participant factory QoS. -- <dref>DomainParticipantFactory_get_qos</dref> procedure Finalize_Instance (Self : in out Ref_Access);
-- <dref>DomainParticipantFactory_finalize_instance</dref> procedure Unregister_Thread (Self : not null access Ref);
-- <dref>DomainParticipantFactory_unregister_thread</dref> type DDS_DomainParticipantFactory_Access is access all RTIDDS.Low_Level.ndds_dds_c_dds_c_domain_h.DDS_DomainParticipantFactory with Storage_Size => 0;
function GetInterface (Self : not null access Ref) return DDS_DomainParticipantFactory_Access;
procedure SetInterface (Self : not null access Ref; To : DDS_DomainParticipantFactory_Access);
private type Ref is new RTIDDS.Obj_Impl.Ref with null record;
protected Initializeer is
procedure Initialize; end Initializeer; procedure On_Thread_Started_Callback (OnStartedParam : System.Address;
Worker : access RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h.REDAWorker); pragma Convention (C, On_Thread_Started_Callback); procedure On_Thread_Stopped_Callback (OnStartedParam : System.Address;
Worker : access RTIDDS.Low_Level.ndds_reda_reda_worker_impl_h.REDAWorker); pragma Convention (C, On_Thread_Stopped_Callback); end DDS.DomainParticipantFactory;