1//File: CosCompoundLifeCycle.idl 2//Part of the LifeCycle Service 3 4#ifndef _COS_COMPOUND_LIFE_CYCLE_IDL_ 5#define _COS_COMPOUND_LIFE_CYCLE_IDL_ 6 7// omniORB specific pragmas to insert extra includes into the stub header. 8#pragma hh #include "COS_sysdep.h" 9 10#include <CosLifeCycle.idl> 11#include <CosRelationships.idl> 12#include <CosGraphs.idl> 13 14#pragma prefix "omg.org" 15 16module CosCompoundLifeCycle { 17 interface OperationsFactory; 18 interface Operations; 19 interface Node; 20 interface Role; 21 interface Relationship; 22 interface PropagationCriteriaFactory; 23 24 enum Operation {copy, move, remove}; 25 26 struct RelationshipHandle { 27 CosRelationships::Relationship the_relationship; 28 CosObjectIdentity::ObjectIdentifier constant_random_id; 29 }; 30 31 interface OperationsFactory { 32 Operations create_compound_operations(); 33 }; 34 35 interface Operations { 36 Node copy ( 37 in Node starting_node, 38 in CosLifeCycle::FactoryFinder there, 39 in CosLifeCycle::Criteria the_criteria) 40 raises (CosLifeCycle::NoFactory, 41 CosLifeCycle::NotCopyable, 42 CosLifeCycle::InvalidCriteria, 43 CosLifeCycle::CannotMeetCriteria); 44 void move ( 45 in Node starting_node, 46 in CosLifeCycle::FactoryFinder there, 47 in CosLifeCycle::Criteria the_criteria) 48 raises (CosLifeCycle::NoFactory, 49 CosLifeCycle::NotMovable, 50 CosLifeCycle::InvalidCriteria, 51 CosLifeCycle::CannotMeetCriteria); 52 void remove (in Node starting_node) 53 raises (CosLifeCycle::NotRemovable); 54 void destroy(); 55 }; 56 57 interface Node : CosGraphs::Node { 58 exception NotLifeCycleObject {}; 59 void copy_node ( 60 in CosLifeCycle::FactoryFinder there, 61 in CosLifeCycle::Criteria the_criteria, 62 out Node new_node, 63 out Roles roles_of_new_node) 64 raises (CosLifeCycle::NoFactory, 65 CosLifeCycle::NotCopyable, 66 CosLifeCycle::InvalidCriteria, 67 CosLifeCycle::CannotMeetCriteria); 68 void move_node ( 69 in CosLifeCycle::FactoryFinder there, 70 in CosLifeCycle::Criteria the_criteria) 71 raises (CosLifeCycle::NoFactory, 72 CosLifeCycle::NotMovable, 73 CosLifeCycle::InvalidCriteria, 74 CosLifeCycle::CannotMeetCriteria); 75 void remove_node () 76 raises (CosLifeCycle::NotRemovable); 77 CosLifeCycle::LifeCycleObject get_life_cycle_object() 78 raises (NotLifeCycleObject); 79 }; 80 81 interface Role : CosGraphs::Role { 82 Role copy_role ( 83 in CosLifeCycle::FactoryFinder there, 84 in CosLifeCycle::Criteria the_criteria) 85 raises (CosLifeCycle::NoFactory, 86 CosLifeCycle::NotCopyable, 87 CosLifeCycle::InvalidCriteria, 88 CosLifeCycle::CannotMeetCriteria); 89 void move_role ( 90 in CosLifeCycle::FactoryFinder there, 91 in CosLifeCycle::Criteria the_criteria) 92 raises (CosLifeCycle::NoFactory, 93 CosLifeCycle::NotMovable, 94 CosLifeCycle::InvalidCriteria, 95 CosLifeCycle::CannotMeetCriteria); 96 CosGraphs::PropagationValue life_cycle_propagation ( 97 in Operation op, 98 in RelationshipHandle rel, 99 in CosRelationships::RoleName to_role_name, 100 out boolean same_for_all); 101 }; 102 103 interface Relationship : CosRelationships::Relationship { 104 105 Relationship copy_relationship ( 106 in CosLifeCycle::FactoryFinder there, 107 in CosLifeCycle::Criteria the_criteria, 108 in CosGraphs::NamedRoles new_roles) 109 raises (CosLifeCycle::NoFactory, 110 CosLifeCycle::NotCopyable, 111 CosLifeCycle::InvalidCriteria, 112 CosLifeCycle::CannotMeetCriteria); 113 void move_relationship ( 114 in CosLifeCycle::FactoryFinder there, 115 in CosLifeCycle::Criteria the_criteria) 116 raises (CosLifeCycle::NoFactory, 117 CosLifeCycle::NotMovable, 118 CosLifeCycle::InvalidCriteria, 119 CosLifeCycle::CannotMeetCriteria); 120 CosGraphs::PropagationValue life_cycle_propagation ( 121 in Operation op, 122 in CosRelationships::RoleName from_role_name, 123 in CosRelationships::RoleName to_role_name, 124 out boolean same_for_all); 125 }; 126 127 interface PropagationCriteriaFactory { 128 CosGraphs::TraversalCriteria create(in Operation op); 129 }; 130 131}; 132 133#endif /* ifndef _COS_COMPOUND_LIFE_CYCLE_IDL_ */ 134 135