diff options
Diffstat (limited to 'TAO/CIAO/tools/XML_Helpers/RTConfiguration.idl')
-rw-r--r-- | TAO/CIAO/tools/XML_Helpers/RTConfiguration.idl | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/TAO/CIAO/tools/XML_Helpers/RTConfiguration.idl b/TAO/CIAO/tools/XML_Helpers/RTConfiguration.idl new file mode 100644 index 00000000000..c2462580797 --- /dev/null +++ b/TAO/CIAO/tools/XML_Helpers/RTConfiguration.idl @@ -0,0 +1,117 @@ +// $Id$ + +/** + * @file RTConfiguration.idl + * + * @brief Define the data structure for configuraing RTComponentServer. + * + * Define the data structure for configuraing RTComponentServer. + */ + +#include "RTCORBA/RTCORBA.pidl" + +module CIAO +{ + module RTConfiguration + { + struct ThreadPool_Configuration + { + string name; + unsigned long stacksize; + unsigned long static_threads; + unsigned long dynamic_threads; + RTCORBA::Priority default_priority; + boolean allow_request_buffering; + unsigned long max_buffered_requests; + unsigned long max_request_buffer_size; + }; + + struct ThreadPoolLanes_Configuration + { + string name; + unsigned long stacksize; + RTCORBA::ThreadpoolLanes lanes; + boolean allow_borrowing; + boolean allow_request_buffering; + unsigned long max_buffered_requests; + unsigned long max_request_buffer_size; + }; + + typedef sequence<ThreadPool_Configuration> ThreadPool_Configurations; + typedef sequence<ThreadPoolLanes_Configuration> ThreadPoolLanes_Configurations; + + struct PriorityBands_Configuration + { + string name; + + RTCORBA::PriorityBands bands; + }; + typedef sequence<PriorityBands_Configuration> PriorityBands_Configurations; + + /** + * @brief RT-related resources global to a component server. + * + * These are Real-time related resources that are global within an + * RT component server. They can be shared by several containers. + */ + struct RTORB_Resources_Info + { + ThreadPool_Configurations tp_configs; + + ThreadPoolLanes_Configurations tpl_configs; + + PriorityBands_Configurations pb_configs; + }; + + // --------------------------------------------------------------- + // PolicySet + + struct Priority_Model_Config + { + RTCORBA::PriorityModel model; + RTCORBA::Priority default_priority; + }; + + /** + * @brief Containing the configuration information to create a RT + * policy in this framework. + * + * @sa RTPolicy_Set_Manager + * + * Supported RTPolicy types are: (PolicyType, type of any) + * (RTCORBA::PRIORITY_MODEL_POLICY_TYPE, + * CIAO::RTConfiguration::Priority_Model_Config) + * (RTCORBA::THREAD_POOL_POLICY_TYPE, name string) + * (RTCORBA::PRIORITY_BANDED_CONNECTION_POLICY_TYPE, name string) + * + * (name referred in name string must have been defined previously + * using appropriate *_Configuration types.) + */ + struct Policy_Config + { + CORBA::PolicyType type; + + any configuration; + }; + + typedef sequence<Policy_Config> Policy_Configs; + + /** + * @brief A Policy_Set contains a named collection of RTPolicies. + * + * An RTContainer associates with a policy set via its name. + */ + struct Policy_Set + { + string name; + + Policy_Configs configs; + }; + + /** + * An RTComponentServer can be associated with a Policy_Sets. + * There should be no name clashes among Policy_Set's. + */ + typedef sequence<Policy_Set> Policy_Sets; + }; +}; |