All Downloads are FREE. Search and download functionalities are using the official Maven repository.

us.ihmc.pubsub.DomainFactory Maven / Gradle / Ivy

There is a newer version: 1.0.0
Show newest version
/**
 * Copyright 2024 Florida Institute for Human and Machine Cognition (IHMC)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package us.ihmc.pubsub;

import us.ihmc.pubsub.impl.intraprocess.IntraProcessDomain;
import us.ihmc.pubsub.impl.fastRTPS.FastRTPSDomain;

public class DomainFactory
{
   /**
    * Soon to be removed in favor of only FAST_RTPS mode.
    */
   @Deprecated
   public enum PubSubImplementation
   {
      FAST_RTPS, FAST_RTPS_SYSTEM_LIBRARY, INTRAPROCESS;
   }
   
   public static synchronized Domain getDefaultDomain()
   {
      return getDomain(PubSubImplementation.FAST_RTPS);
   }
   
   public static synchronized Domain getDomain(PubSubImplementation impl)
   {
      switch(impl)
      {
      case FAST_RTPS:
         return FastRTPSDomain.getInstance(false);
      case FAST_RTPS_SYSTEM_LIBRARY:
         return FastRTPSDomain.getInstance(true);
      case INTRAPROCESS:
         return IntraProcessDomain.getInstance();
      default:
         throw new RuntimeException("Invalid implementation specified");
      }
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy