# Index of ConfigValues

This page is currently a placeholder for all the configuration values we will support when creating various CCM deployment mechanisms, such as ComponentServers and Containers. The ConfigValues listed here are currently only partially supported in CIAO.

Note from self: There are discrepancy in this document. Most significantly, (RT)ComponentServer's don't get their ConfigValues directly from that passed in thru ServerActivator::create_component_server but rather, using some sort of pre-defined command line flags.

## ComponentServer

The `ConfigValues` for a `ComponentServer` are passed in via `ServerActivator::create_component_server` operation. CIAO accepts the following feature names:

FeatureName | type | Requirement | Remarks
--- | --- | --- | ---
CIAO-svcconf-id | string | Optional | Specify the canonical svc.conf id. This id should only serve as a hint for the deployment framework in determining the actual svc.conf file used to start up the component server. Currently, CIAO's ServerActivator maintains a set of svc.conf files and use this id value to map to the exact svc.conf file name.
CIAO-ORB[option] | string | Optional | Specify an ORB option that you want to pass to the ComponentServer ORB.

## RTComponentServer (Real-time ComponentServer)

Like a regular `ComponentServer`, the `ConfigValues` for a `RTComponentServer` are passed in via `ServerActivator::create_component_server` operation. On top of the `ConfigValues` accepted by the regular `ComponentServer`, a real-time ComponentServer also accepts the following feature names:

FeatureName | type | Requirement | Remarks
--- | --- | --- | ---
CIAO-rtcad-filename | string | Optional | Specify the filename of RTCAD extension XML file. The component server will invoke the XML parser and translate the content of the file into the following two ConfigValues (CIAO-RTresources and CIAO-RTPolicySets) to RTComponentServer implementation.
CIAO-RTresources | `CIAO::RTConfiguration::RTORB_Resources_Info` | Optional | `CIAO::RTConfiguration::RTORB_Resources_Info` as defined in `$CIAO_ROOT/tools/XML_Helpers/RTConfiguration.idl` defines the system wise resources an RT ORB should allocate. These resources then can be used to define the RT policies in the RTPolicySet described subsequently.
CIAO-RTPolicySets | `CIAO::RTConfiguration::Policy_Sets` | Optional | `CIAO::RTConfiguration::Policy_Sets`, also defined in `$CIAO_ROOT/tools/XML_Helpers/RTConfiguration.idl`, defines a list of policy sets, which are named sequences of policies. These policies often refer to the global resources defined in the previous CIAO-RTresource via names. Likewise, an RT-container also specifies the RTPolicySet its POA uses via the name defined here.

## Container

The `ConfigValues` for a `Container` are passed in via `ComponentServer::create_container` operation. CIAO accepts the following feature names:

FeatureName | type | Requirement | Remarks
--- | --- | --- | ---
CIAO-Container-Type | `string` | currently not supported. | Possible value: `session`, `rt-session`, `unclassified`, `rt-unclassified`.
CIAO-POAPolicies | `CORBA::PolicyList` | Currently not supported. | Must not conflict with CIAO-Container-Type setting. (Certain containers assume several POA policies.)
CIAO-RTPolicySet | `string` | Optional | Name, as defined in RTCompoenentServer's CIAO-RTPolicySets, of the PolicySet this container uses.

## CCMHome

The `ConfigValues` for a `CCMHome` are passed in via `Container::install_home` operation. CIAO accepts the following feature names:

FeatureName | type | Requirement | Remarks
--- | --- | --- | ---
CIAO-executor-path | `string` | REQUIRED | This string value specifies the location of the executor DLL. In the future, we should use UUIDs to identify the component executors and query the ComponentInstallation interface for the actual location of the DLL.
CIAO-executor-entrypt | `string` | REQUIRED | This string value specifies the entry point of the executor DLL. It points to a factory function for the component executor.
CIAO-servant-path | `string` | REQUIRED | This string value specifies the location of the servant DLL. In the future, we should use UUIDs to identify the component servants and query the ComponentInstallation interface for the actual location of the DLL. Servant are part of the Container framework and we can use type checking to ensure servant and container match with each other.
CIAO-executor-entrypt | `string` | REQUIRED | This string value specifies the entry point of the servant DLL. It points to a factory function for the compnent servant.