File: CosCompoundLifeCycle.idl

package info (click to toggle)
omniorb-dfsg 4.3.3%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 13,172 kB
  • sloc: cpp: 115,843; python: 24,962; ansic: 13,414; sh: 2,665; makefile: 40
file content (134 lines) | stat: -rw-r--r-- 3,944 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
//File: CosCompoundLifeCycle.idl
//Part of the LifeCycle Service

#ifndef _COS_COMPOUND_LIFE_CYCLE_IDL_
#define _COS_COMPOUND_LIFE_CYCLE_IDL_

// omniORB specific pragmas to insert extra includes into the stub header.
#pragma hh #include "COS_sysdep.h"

#include <CosLifeCycle.idl>
#include <CosRelationships.idl>
#include <CosGraphs.idl>

#pragma prefix "omg.org"

module CosCompoundLifeCycle {
	interface OperationsFactory; 
	interface Operations;
	interface Node;
	interface Role;
	interface Relationship;
	interface PropagationCriteriaFactory;
	
	enum Operation {copy, move, remove};

	struct RelationshipHandle {
		CosRelationships::Relationship the_relationship;
		CosObjectIdentity::ObjectIdentifier constant_random_id;
	};

	interface OperationsFactory {
		Operations create_compound_operations();
	};

	interface Operations {
		Node copy (
			in Node starting_node,
			in CosLifeCycle::FactoryFinder there,
			in CosLifeCycle::Criteria the_criteria)
			raises (CosLifeCycle::NoFactory,
					CosLifeCycle::NotCopyable,
					CosLifeCycle::InvalidCriteria,
					CosLifeCycle::CannotMeetCriteria);
		void move (
			in Node starting_node,
			in CosLifeCycle::FactoryFinder there,
			in CosLifeCycle::Criteria the_criteria)
			raises (CosLifeCycle::NoFactory,
					CosLifeCycle::NotMovable,
					CosLifeCycle::InvalidCriteria,
					CosLifeCycle::CannotMeetCriteria);
		void remove (in Node starting_node)
			raises (CosLifeCycle::NotRemovable);
		void destroy();
		};

	interface Node : CosGraphs::Node {
		exception NotLifeCycleObject {};
		void copy_node ( 
			in CosLifeCycle::FactoryFinder there,
			in CosLifeCycle::Criteria the_criteria,
			out Node new_node,
			out Roles roles_of_new_node)
			raises (CosLifeCycle::NoFactory,
					CosLifeCycle::NotCopyable,
					CosLifeCycle::InvalidCriteria,
					CosLifeCycle::CannotMeetCriteria);
		void move_node (
			in CosLifeCycle::FactoryFinder there, 
			in CosLifeCycle::Criteria the_criteria)
			raises (CosLifeCycle::NoFactory,
				CosLifeCycle::NotMovable,
				CosLifeCycle::InvalidCriteria,
				CosLifeCycle::CannotMeetCriteria);
		void remove_node ()
			raises (CosLifeCycle::NotRemovable);
		CosLifeCycle::LifeCycleObject get_life_cycle_object()
			raises (NotLifeCycleObject);
		};

	interface Role : CosGraphs::Role {
		Role copy_role (
			in CosLifeCycle::FactoryFinder there, 
			in CosLifeCycle::Criteria the_criteria)
			raises (CosLifeCycle::NoFactory,
					CosLifeCycle::NotCopyable,
					CosLifeCycle::InvalidCriteria,
					CosLifeCycle::CannotMeetCriteria);
		void move_role (
			in CosLifeCycle::FactoryFinder there, 
			in CosLifeCycle::Criteria the_criteria)
			raises (CosLifeCycle::NoFactory,
					CosLifeCycle::NotMovable,
					CosLifeCycle::InvalidCriteria,
					CosLifeCycle::CannotMeetCriteria);
		CosGraphs::PropagationValue life_cycle_propagation (
			in Operation op,
			in RelationshipHandle rel,
			in CosRelationships::RoleName to_role_name,
			out boolean same_for_all);
		};

	interface Relationship : CosRelationships::Relationship {
		
		Relationship copy_relationship (
			in CosLifeCycle::FactoryFinder there,
			in CosLifeCycle::Criteria the_criteria,
			in CosGraphs::NamedRoles new_roles)
			raises (CosLifeCycle::NoFactory,
					CosLifeCycle::NotCopyable,
					CosLifeCycle::InvalidCriteria,
					CosLifeCycle::CannotMeetCriteria);
		void move_relationship (
			in CosLifeCycle::FactoryFinder there,
			in CosLifeCycle::Criteria the_criteria)
			raises (CosLifeCycle::NoFactory,
					CosLifeCycle::NotMovable,
					CosLifeCycle::InvalidCriteria,
					CosLifeCycle::CannotMeetCriteria);
		CosGraphs::PropagationValue life_cycle_propagation (
			in Operation op,
			in CosRelationships::RoleName from_role_name,
			in CosRelationships::RoleName to_role_name,
			out boolean same_for_all);
	};

	interface PropagationCriteriaFactory {
		CosGraphs::TraversalCriteria create(in Operation op);
	};

};

#endif /* ifndef _COS_COMPOUND_LIFE_CYCLE_IDL_ */