File: CosTradingRepos.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 (144 lines) | stat: -rw-r--r-- 3,444 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
135
136
137
138
139
140
141
142
143
144
//File: CosTradingRepos.idl
//Part of the Trading Object Service

#ifndef _COS_TRADING_REPOS_IDL_
#define _COS_TRADING_REPOS_IDL_

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

#include <orb.idl>
#include <CosTrading.idl>

#pragma prefix "omg.org"

module CosTradingRepos {

	interface ServiceTypeRepository {

	// local types
		typedef sequence<CosTrading::ServiceTypeName> ServiceTypeNameSeq;
		enum PropertyMode {
			PROP_NORMAL, PROP_READONLY,
			PROP_MANDATORY, PROP_MANDATORY_READONLY
		};
		struct PropStruct {
			CosTrading::PropertyName name;
			CORBA::TypeCode value_type;
			PropertyMode mode;
		};
		typedef sequence<PropStruct> PropStructSeq;

		typedef CosTrading::Istring Identifier;  // IR::Identifier
		struct IncarnationNumber {
			unsigned long high;
			unsigned long low;
		};
		struct TypeStruct {
			Identifier if_name;
			PropStructSeq props;
			ServiceTypeNameSeq super_types;
			boolean masked;
			IncarnationNumber incarnation;
		};

		enum ListOption { all, since };
		union SpecifiedServiceTypes switch ( ListOption ) {
			case since: IncarnationNumber incarnation;
		};

	// local exceptions
		exception ServiceTypeExists {
			CosTrading::ServiceTypeName name;
		};
		exception InterfaceTypeMismatch {
			CosTrading::ServiceTypeName base_service;
			Identifier base_if;
			CosTrading::ServiceTypeName derived_service;
			Identifier derived_if;
		};
		exception HasSubTypes {
			CosTrading::ServiceTypeName the_type;
			CosTrading::ServiceTypeName sub_type;
		};
		exception AlreadyMasked {
			CosTrading::ServiceTypeName name;
		};
		exception NotMasked {
			CosTrading::ServiceTypeName name;
		};
		exception ValueTypeRedefinition {
			CosTrading::ServiceTypeName type_1;
			PropStruct definition_1;
			CosTrading::ServiceTypeName type_2;
			PropStruct definition_2;
		};
		exception DuplicateServiceTypeName {
			CosTrading::ServiceTypeName name;
		};

	// attributes
		readonly attribute IncarnationNumber incarnation;

	// operation signatures
		IncarnationNumber add_type (
			in CosTrading::ServiceTypeName name,
			in Identifier if_name,
			in PropStructSeq props,
			in ServiceTypeNameSeq super_types
		) raises (
			CosTrading::IllegalServiceType,
			ServiceTypeExists,
			InterfaceTypeMismatch,
			CosTrading::IllegalPropertyName,
			CosTrading::DuplicatePropertyName,
			ValueTypeRedefinition,
			CosTrading::UnknownServiceType,
			DuplicateServiceTypeName
		);
				
		void remove_type (
			in CosTrading::ServiceTypeName name
		) raises (
			CosTrading::IllegalServiceType,
			CosTrading::UnknownServiceType,
			HasSubTypes
		);

		ServiceTypeNameSeq list_types (
			in SpecifiedServiceTypes which_types
		);

		TypeStruct describe_type (
			in CosTrading::ServiceTypeName name
		) raises (
			CosTrading::IllegalServiceType,
			CosTrading::UnknownServiceType
		);

		TypeStruct fully_describe_type (
			in CosTrading::ServiceTypeName name
		) raises (
			CosTrading::IllegalServiceType,
			CosTrading::UnknownServiceType
		);

		void mask_type (
			in CosTrading::ServiceTypeName name
		) raises (
			CosTrading::IllegalServiceType,
			CosTrading::UnknownServiceType,
			AlreadyMasked
		);

		void unmask_type (
			in CosTrading::ServiceTypeName name
		) raises (
			CosTrading::IllegalServiceType,
			CosTrading::UnknownServiceType,
			NotMasked
		);

	};
}; /* end module CosTradingRepos */
#endif /* ifndef _COS_TRADING_REPOS_IDL_ */