// Copyright 2005, 2006 THALES, SELEX Sistemi Integrati (SI), // Themis Computer and Progeny Systems Corporation. #include "AMS_Util.idl" #include "AMS_CIM.idl" #ifndef _AMS_Application_IDL_ #define _AMS_Application_IDL_ #pragma prefix "omg.org" #include "AMS_SupportedApplicationModel.idl" #include "AMS_ApplicationSpecification.idl" #include "AMS_ApplicationDeployment.idl" module AMS_ApplicationModule { // enum AMS_ReplicationStyle { RG_COLD_PASSIVE, RG_WARM_PASSIVE, RG_ACTIVE, RG_ACTIVE_WITH_VOTING, RG_STATELESS, RG_IMPL_DEFINED }; typedef sequence AMS_ReplicationStyleList; // enum AMS_BalancingStyle { LB_ROUND_ROBIN, LB_RANDOM, LB_IMPL_DEFINED }; typedef sequence AMS_BalancingStyleList; // enum AMS_RTSoftwareStatus { SW_STARTED, SW_STOPPED, SW_FAILED }; typedef sequence AMS_RTSoftwareStatusList; // enum AMS_StdState { ST_NONSTD, ST_ENV }; typedef sequence AMS_StdStateList; // const string AMS_SoftwareSystem_CLASSID = "IDL:omg.org/AMS_Application/AMS_SoftwareSystem:1.0"; interface AMS_SoftwareSystem ; typedef sequence AMS_SoftwareSystemList; interface AMS_SoftwareSystemListIterator : AMS_Util::AMS_Iterator { AMS_SoftwareSystem GetCurrentItem () raises (AMS_Util::AMS_NoSuchElementException); }; // const string AMS_Application_CLASSID = "IDL:omg.org/AMS_Application/AMS_Application:1.0"; interface AMS_Application ; typedef sequence AMS_ApplicationList; interface AMS_ApplicationListIterator : AMS_Util::AMS_Iterator { AMS_Application GetCurrentItem () raises (AMS_Util::AMS_NoSuchElementException); }; // const string AMS_ExecutableSoftwareElement_CLASSID = "IDL:omg.org/AMS_Application/AMS_ExecutableSoftwareElement:1.0"; interface AMS_ExecutableSoftwareElement ; typedef sequence AMS_ExecutableSoftwareElementList; interface AMS_ExecutableSoftwareElementListIterator : AMS_Util::AMS_Iterator { AMS_ExecutableSoftwareElement GetCurrentItem () raises (AMS_Util::AMS_NoSuchElementException); }; // const string AMS_RedundancyGroup_CLASSID = "IDL:omg.org/AMS_Application/AMS_RedundancyGroup:1.0"; interface AMS_RedundancyGroup ; typedef sequence AMS_RedundancyGroupList; interface AMS_RedundancyGroupListIterator : AMS_Util::AMS_Iterator { AMS_RedundancyGroup GetCurrentItem () raises (AMS_Util::AMS_NoSuchElementException); }; // const string AMS_LoadBalancingGroup_CLASSID = "IDL:omg.org/AMS_Application/AMS_LoadBalancingGroup:1.0"; interface AMS_LoadBalancingGroup ; typedef sequence AMS_LoadBalancingGroupList; interface AMS_LoadBalancingGroupListIterator : AMS_Util::AMS_Iterator { AMS_LoadBalancingGroup GetCurrentItem () raises (AMS_Util::AMS_NoSuchElementException); }; // const string AMS_Property_StdState_CLASSID = "IDL:omg.org/AMS_Application/AMS_Property_StdState:1.0"; interface AMS_Property_StdState; typedef sequence AMS_Property_StdStateList; interface AMS_Property_StdStateListIterator : AMS_Util::AMS_Iterator { AMS_Property_StdState GetCurrentItem () raises (AMS_Util::AMS_NoSuchElementException); }; // interface AMS_Property_StdState { attribute string Name; attribute string Value; attribute string InstanceID; attribute AMS_StdState Status; }; // interface AMS_SoftwareSystem : AMS_CIM::CIM_ApplicationSystem { // list of AMS_Application, AMS_SoftwareSystem or AMS_ExecutableSoftwareElement AMS_Util::AMS_ObjectListIterator GetSystemComponentIterator ( ); readonly attribute AMS_Util::AMS_ObjectList SystemComponent; // readonly attribute AMS_SoftwareSystem Owner; readonly attribute AMS_ApplicationSpecification::AMS_SoftwareFeatureSpec SystemFeature; attribute AMS_RTSoftwareStatus Status; attribute string Name; void StartUp ( ) raises (AMS_Util::AMS_Error); void ShutDown ( ) raises (AMS_Util::AMS_Error); }; // interface AMS_Application : AMS_CIM::CIM_ApplicationSystem { // list of AMS_ExecutableSoftwareElement, AMS_RedundancyGroup // or AMS_LoadBalancingGroup AMS_Util::AMS_ObjectListIterator GetSystemComponentIterator ( ); readonly attribute AMS_Util::AMS_ObjectList SystemComponent; // AMS_SoftwareSystem or AMS_Application readonly attribute Object Owner; // readonly attribute AMS_ApplicationSpecification::AMS_SoftwareFeatureSpec ApplicationFeature; AMS_ApplicationListIterator GetApplicationOfApplicationIterator ( ); readonly attribute AMS_ApplicationList ApplicationOfApplication; attribute AMS_RTSoftwareStatus Status; attribute string Name; void StartUp ( ) raises (AMS_Util::AMS_Error); void ShutDown ( ) raises (AMS_Util::AMS_Error); }; // interface AMS_ExecutableSoftwareElement : AMS_CIM::CIM_Service { // AMS_Application or AMS_SoftwareSystem readonly attribute Object Owner; // readonly attribute AMS_ApplicationSpecification::AMS_ESESpec SoftwareElementServiceImplementation; attribute AMS_SAM::AMS_State CurrentState; // AMS_RedundancyGroup or AMS_LoadBalancingGroup readonly attribute Object RedundancyComponent; // attribute AMS_RTSoftwareStatus Status; attribute AMS_ApplicationSpecification::AMS_RedundancyEltState RedState; readonly attribute AMS_ApplicationDeployment::AMS_DeploymentLink ESEDeployed; attribute string Name; void StartUp ( ) raises (AMS_Util::AMS_Error); void StartUpOnSpec ( in AMS_ApplicationSpecification::AMS_ESESpec spec ) raises (AMS_Util::AMS_Error); void StartUpOnHost(in AMS_LogicalHardware::AMS_Host host, in string commandLine ) raises (AMS_Util::AMS_Error); void ShutDown ( ) raises (AMS_Util::AMS_Error); void Load ( ) raises (AMS_Util::AMS_Error); void LoadAndStart ( ) raises (AMS_Util::AMS_Error); void Stop ( ) raises (AMS_Util::AMS_Error); void Continue ( ) raises (AMS_Util::AMS_Error); void Halt ( ) raises (AMS_Util::AMS_Error); void ForceShutDown ( ) raises (AMS_Util::AMS_Error); void ActivateAsPrimary ( ) raises (AMS_Util::AMS_Error); // AMS_Property_StdStateListIterator GetStdStateListIterator ( ); readonly attribute AMS_Property_StdStateList AMS_SpecificState; }; // interface AMS_RedundancyGroup : AMS_CIM::CIM_RedundancyGroup { AMS_ExecutableSoftwareElementListIterator GetRedundancyComponentIterator ( ); readonly attribute AMS_ExecutableSoftwareElementList RedundancyComponent; readonly attribute AMS_Application Owner; readonly attribute AMS_ApplicationSpecification::AMS_SoftwareFeatureSpec RedundancyFeature; attribute AMS_ReplicationStyle Style; attribute AMS_RTSoftwareStatus Status; attribute string Name; void StartUp ( ) raises (AMS_Util::AMS_Error); void ShutDown ( ) raises (AMS_Util::AMS_Error); }; // interface AMS_LoadBalancingGroup : AMS_CIM::CIM_RedundancyGroup { readonly attribute AMS_Application Owner; readonly attribute AMS_ApplicationSpecification::AMS_SoftwareFeatureSpec LoadBalancingFeature; AMS_ExecutableSoftwareElementListIterator GetRedundancyComponentIterator ( ); readonly attribute AMS_ExecutableSoftwareElementList RedundancyComponent; attribute AMS_BalancingStyle Style; attribute AMS_RTSoftwareStatus Status; attribute string Name; void StartUp ( ) raises (AMS_Util::AMS_Error); void ShutDown ( ) raises (AMS_Util::AMS_Error); }; }; #endif /* _AMS_Application_IDL_ */