diff options
Diffstat (limited to 'CIAO/ciao/CCM_Container.idl')
-rw-r--r-- | CIAO/ciao/CCM_Container.idl | 142 |
1 files changed, 137 insertions, 5 deletions
diff --git a/CIAO/ciao/CCM_Container.idl b/CIAO/ciao/CCM_Container.idl index d6555e16170..b8a6ab3286b 100644 --- a/CIAO/ciao/CCM_Container.idl +++ b/CIAO/ciao/CCM_Container.idl @@ -16,10 +16,142 @@ #if !defined (CCM_CONTAINER_IDL) #define CCM_CONTAINER_IDL -#include "ciao/CCM_Component.idl" -#include "ciao/CCM_CCMException.idl" -#include "ciao/CCM_HomeExecutorBase.idl" -#include "ciao/CCM_SessionContext.idl" -#include "ciao/CCM_SessionComponent.idl" +#include "CCM_Component.idl" +#include "orbsvcs/SecurityLevel2.idl" +#include "CCM_Transaction.idl" +// *************** Basic Container interfaces *************** + +module Components +{ + typeprefix Components "omg.org"; + + typedef SecurityLevel2::Credentials Principal; + + local interface CCMContext + { + Principal get_caller_principal(); + + CCMHome get_CCM_home(); + + boolean get_rollback_only() + raises (IllegalState); + + Transaction::UserTransaction get_user_transaction() + raises (IllegalState); + + boolean is_caller_in_role (in string role); + + void set_rollback_only() + raises (IllegalState); + }; + + enum CCMExceptionReason + { + SYSTEM_ERROR, + CREATE_ERROR, + REMOVE_ERROR, + DUPLICATE_KEY, + FIND_ERROR, + OBJECT_NOT_FOUND, + NO_SUCH_ENTITY + }; + + exception CCMException + { + CCMExceptionReason reason; + }; + + local interface EnterpriseComponent {}; + + local interface SessionContext : CCMContext + { + Object get_CCM_object() + raises (IllegalState); + }; + + local interface SessionComponent : EnterpriseComponent + { + void set_session_context ( in SessionContext ctx) + raises (CCMException); + + void ccm_activate() + raises (CCMException); + + void ccm_passivate() + raises (CCMException); + + + void ccm_remove () + raises (CCMException); + + /** + * This method is invoked before ccm_activate () is called. All + * components in the assembly get this callback before the + * ccm_activate () is called. + * @note CIAO specific + */ + void ciao_preactivate () + raises (CCMException); + + /** + * This method is invoked after ccm_activate () is called. All + * components in the assembly get this callback after the + * ccm_activate () is called. + * @note CIAO specific + */ + void ciao_postactivate () + raises (CCMException); + }; + + local interface SessionSynchronization + { + void after_begin () + raises (CCMException); + + void before_completion () + raises (CCMException); + + void after_completion (in boolean committed) + raises (CCMException); + }; + + local interface EntityContext : CCMContext + { + Object get_CCM_object () + raises (IllegalState); + + PrimaryKeyBase get_primary_key () + raises (IllegalState); + }; + + local interface EntityComponent : EnterpriseComponent + { + void set_entity_context (in EntityContext ctx) + raises (CCMException); + + void unset_entity_context () + raises (CCMException); + + void ccm_activate () + raises (CCMException); + + void ccm_load () + raises (CCMException); + + void ccm_store () + raises (CCMException); + + void ccm_passivate () + raises (CCMException); + + void ccm_remove () + raises (CCMException); + }; + + + local interface HomeExecutorBase + { + }; +}; #endif /* CCM_CONTAINER_IDL */ |