/**
 * $Id: DAnCE_Properties.idl 95549 2012-02-23 11:59:40Z johnnyw $
 *
 * @file DAnCE_Properties.idl
 * @author William R. Otte <wotte@dre.vanderbilt.edu>
 *
 * Codifies properties used to configure the deployment engine.
 */

module DAnCE
{
  // Home Configuration Properties
  /// Describes the entrypoint for the home executor. Property value is string.
  const string HOME_FACTORY = "home factory";

  // Component Configuration Properties
  /// Describes the entrypoint for the component executor. Property value is string.
  const string COMPONENT_FACTORY = "component factory";

  /// Indicates that the component instance should be deployed using specified home ID.
  /// Property value is string.
  const string EXPLICIT_HOME = "edu.vanderbilt.dre.DAnCE.ExplicitHome";

  // Instance (i.e., Home or Component) Properties
  /// Indicates that the instance object reference should be registered in the
  /// Instance naming context using a specified name. Property value is string.
  const string REGISTER_NAMING = "edu.vanderbilt.dre.DAnCE.RegisterNaming";

  /// Indicates that the instance object reference should be printed to a specified
  /// file.  Property value is string.
  const string INSTANCE_IOR_FILE = "edu.vanderbilt.dre.DAnCE.InstanceIOR";

  /// Indicates the naming context for domain objects, which includes infrastructure
  /// and redirection.
  const string DOMAIN_NC = "edu.vanderbilt.dre.DAnCE.DomainNC";

  /// Indicates the naming context used for instance objects.
  const string INSTANCE_NC = "edu.vanderbilt.dre.DAnCE.InstanceNC";

  /// Indicates node address used in Node_Locator.
  const string NODE_RESOURCE_TYPE = "edu.vanderbilt.dre.DAnCE.NodeAddress";
  const string NODE_IOR = "edu.vanderbilt.dre.DAnCE.StringIOR";

  /// Indicates the POA in use for this entity.
  const string ENTITY_POA = "edu.dre.vanderbilt.DAnCE.POA";

  /// Indicates the maximum time that the locality manager will wait for any
  /// deployment step to complete, in seconds.
  const string LOCALITY_TIMEOUT = "edu.vanderbilt.dre.DAnCE.LocalityTimeout";

  /// Indicates the UUID that should be assigned to a locality instance
  const string LOCALITY_UUID = "edu.vanderbilt.dre.DAnCE.LocalityUUID";

  /// Indicates command line arguments that should be passed to locality managers
  /// when spawned.
  const string LOCALITY_ARGUMENTS = "edu.vanderbilt.dre.DAnCE.LocalityArguments";

  /// Indicates the executable name that should be used when spawing a locality manager
  const string LOCALITY_EXECUTABLE = "edu.vanderbilt.dre.DAnCE.LocalityExec";

  const string LOCALITY_MULTITHREAD = "edu.vanderbilt.dre.DAnCE.LocalityMultithread";

  /// Stringified IOR to be used as the naming context for a locality instance.
  const string LOCALITY_NAMINGCONTEXT = "edu.vanderbilt.dre.DAnCE.LocalityNamingContext";

  /// @Temporary: Indicate that the node/locality manager should load best-effort
  /// interceptors rather than first-failure semantics.
  const string LOCALITY_BESTEFFORT = "edu.vanderbilt.dre.DAnCE.BestEffort";

  // Implementation Types
  /// Property describing the implementation type of a monolithic implementation
  const string IMPL_TYPE = "edu.vanderbilt.dre.DAnCE.ImplementationType";

  const string CCM_CONTAINER = "edu.vanderbilt.dre.CCM.Container";
  const string CCM_HOME = "edu.vanderbilt.dre.CCM.Home";
  const string CCM_COMPONENT = "edu.vanderbilt.dre.CCM.Component";
  const string CCM_HOMEDCOMPONENT = "edu.vanderbilt.dre.CCM.HomedComponent";
  const string CCM_CONNECTOR = "edu.vanderbilt.dre.CCM.Connector";

  const string DANCE_LOCALITYMANAGER = "edu.vanderbilt.dre.DAnCE.LocalityManager";
  const string DANCE_INSTALLATIONHANDLER = "edu.vanderbilt.dre.DAnCE.InstanceHandler";
  const string DANCE_DEPLOYMENTINTERCEPTOR = "edu.vanderbilt.dre.DAnCE.DeploymentInterceptor";
  const string DANCE_CONFIGPLUGIN = "edu.vanderbilt.dre.DAnCE.ConfigPlugin";

  // Locality Manager execParameter properties
  const string DANCE_LM_PATH = "edu.vanderbilt.dre.DAnCE.LocalityManager.path";
  const string DANCE_LM_LIBPATH = "edu.vanderbilt.dre.DAnCE.LocalityManager.libpath";
  const string DANCE_LM_INSTALLER = "edu.vanderbilt.dre.DAnCE.LocalityManager.installer";
  const string DANCE_LM_PROCESSNAME = "edu.vanderbilt.dre.DAnCE.LocalityManager.ProcessName";
  const string DANCE_LM_CPUAFFINITY = "edu.vanderbilt.dre.DAnCE.LocalityManager.CPUAffinity";
  const string DANCE_LM_PROCESSPRIORITY = "edu.vanderbilt.dre.DAnCE.LocalityManager.ProcessPriority";
  const string DANCE_LM_CONFIGFILE = "edu.vanderbilt.dre.DAnCE.LocalityManager.ConfigFile";

  // Instance Deployment Handler installation properties

  /// Instance types that must be installed before the instance handled by the decorated handler
  const string DANCE_PLUGIN_ENTRYPT = "edu.vanderbilt.dre.DAnCE.InstanceHandler.EntryPoint";
  const string DANCE_PLUGIN_ARTIFACT = "edu.vanderbilt.dre.DAnCE.InstanceHandler.Artifact";
  const string DANCE_PLUGIN_OPENMODE = "edu.vanderbilt.dre.DAnCE.InstanceHandler.OpenMode";
  const string DANCE_IDH_DEPENDSON = "edu.vanderbilt.dre.DAnCE.InstanceHandler.DependsOn";

};

