/// <summary>
        /// Create a new domain participant.
        /// </summary>
        /// <param name="domainId"></param>
        /// <param name="qos"></param>
        /// <param name="listener"></param>
        /// <param name="statuses">Of which status changes the listener should be
        ///                        notified. A null collection signifies all status 
        ///                        changes</param>
        /// <returns></returns>

        public override DomainParticipant CreateParticipant(int domainId, DomainParticipantQos qos, DomainParticipantListener listener, ICollection<Type> statuses)
        {
            DomainParticipant dp = new DomainParticipantImpl(domainId, qos, listener, this.bootstrap_);
            if (((DomainParticipantFactoryQosImpl)this.Qos).EntityFactoryQosPolicy.IsAutoEnableCreatedEntities())
                dp.Enable();

            return dp;
        }
        /// <summary>
        /// Create a new domain participant.
        /// </summary>
        /// <param name="domainId"></param>
        /// <param name="qosLibraryName"></param>
        /// <param name="qosProfileName"></param>
        /// <param name="listener"></param>
        /// <param name="statuses">Of which status changes the listener should be
        ///                        notified. A null collection signifies all status
        ///                        changes</param>
        /// <returns></returns>

        public override DomainParticipant CreateParticipant(int domainId, string qosLibraryName, string qosProfileName, DomainParticipantListener listener, ICollection<Type> statuses)
        {
            throw new NotImplementedException();
        }
 /// <summary>
 /// Create a new domain participant.
 /// </summary>
 /// <param name="domainId"></param>
 /// <param name="qosLibraryName"></param>
 /// <param name="qosProfileName"></param>
 /// <param name="listener"></param>
 /// <param name="statuses">Of which status changes the listener should be
 ///                        notified. A null collection signifies all status
 ///                        changes</param>
 /// <returns></returns>
 public abstract DomainParticipant CreateParticipant(
         int domainId,
         string qosLibraryName,
         string qosProfileName,
         DomainParticipantListener listener,
         ICollection<Type> statuses);
 /// <summary>
 /// Create a new domain participant.
 /// </summary>
 /// <param name="domainId"></param>
 /// <param name="qos"></param>
 /// <param name="listener"></param>
 /// <param name="statuses">Of which status changes the listener should be
 ///                        notified. A null collection signifies all status 
 ///                        changes</param>
 /// <returns></returns>
 public abstract DomainParticipant CreateParticipant(
         int domainId,
         DomainParticipantQos qos,
         DomainParticipantListener listener,
         ICollection<Type> statuses);