1
// This file contains OMG IDL and PIDL for the Common Object Services.
2
// CosNaming Module, p 3-6 CORBAservices, Naming Service V1.0, 3/94
4
// A few minor changes for the JacORB distribution:
6
// added am enclosing COSS module and changed scoped names accordingly
8
// corrected a few syntax errors
12
// forward declaration of Object
20
typedef string Istring;
21
struct NameComponent {
26
typedef sequence <NameComponent> Name;
28
enum BindingType {nobject, ncontext};
32
BindingType binding_type;
35
typedef sequence <Binding> BindingList;
36
interface BindingIterator;
38
interface NamingContext {
40
enum NotFoundReason { missing_node, not_context, not_object};
47
exception CannotProceed {
52
exception InvalidName{};
53
exception AlreadyBound {};
56
void bind(in Name n, in Object obj)
57
raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
58
void rebind(in Name n, in Object obj)
59
raises(NotFound, CannotProceed, InvalidName);
60
void bind_context(in Name n, in NamingContext nc)
61
raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
62
void rebind_context(in Name n, in NamingContext nc)
63
raises(NotFound, CannotProceed, InvalidName);
64
Object resolve (in Name n)
65
raises(NotFound, CannotProceed, InvalidName);
66
void unbind(in Name n)
67
raises(NotFound, CannotProceed, InvalidName);
68
NamingContext new_context();
69
NamingContext bind_new_context(in Name n)
70
raises(NotFound, AlreadyBound, CannotProceed, InvalidName);
73
void list (in unsigned long how_many,
74
out BindingList bl, out BindingIterator bi);
77
interface BindingIterator {
78
boolean next_one(out Binding b);
79
boolean next_n(in unsigned long how_many,
85
// Names Library interface in PIDL, CORBAservices p 3- 14, Naming Service V1.0 3/94
87
interface LNameComponent { // PIDL
91
void set_id(in string i);
94
void set_kind(in string k);
98
interface LName { // PIDL
99
exception NoComponent{};
100
exception OverFlow{};
101
exception InvalidName{};
102
LName insert_component(in unsigned long i,
104
raises(NoComponent, OverFlow);
105
LNameComponent get_component(in unsigned long i)
107
LNameComponent delete_component(in unsigned long i)
109
unsigned long num_components();
110
boolean equal(in LName ln);
111
boolean less_than(in LName ln);
114
void from_idl_form(in Name n);
118
LName create_lname(); // C/C++
119
LNameComponent create_lname_component(); // C/C++
122
// CosEventComm Module, CORBAservices p 4-8, Event Service V1.0 3/94
124
module CosEventComm {
126
exception Disconnected{};
128
interface PushConsumer {
129
void push (in any data) raises(Disconnected);
130
void disconnect_push_consumer();
133
interface PushSupplier {
134
void disconnect_push_supplier();
137
interface PullSupplier {
138
any pull () raises(Disconnected);
139
any try_pull (out boolean has_event)
140
raises(Disconnected);
141
void disconnect_pull_supplier();
144
interface PullConsumer {
145
void disconnect_pull_consumer();
150
// CosEventChannelAdmin Module, p 4-15 CORBAservices, Event
151
// Service V1.0, 3/94
153
// #include "CosEventComm.idl"
155
module CosEventChannelAdmin {
157
exception AlreadyConnected {};
158
exception TypeError {};
160
interface ProxyPushConsumer: ::COSS::CosEventComm::PushConsumer {
161
void connect_push_supplier(
162
in ::COSS::CosEventComm::PushSupplier push_supplier)
163
raises(AlreadyConnected);
166
interface ProxyPullSupplier: ::COSS::CosEventComm::PullSupplier {
167
void connect_pull_consumer(
168
in ::COSS::CosEventComm::PullConsumer pull_consumer)
169
raises(AlreadyConnected);
172
interface ProxyPullConsumer: ::COSS::CosEventComm::PullConsumer {
173
void connect_pull_supplier(
174
in ::COSS::CosEventComm::PullSupplier pull_supplier)
175
raises(AlreadyConnected,TypeError);
178
interface ProxyPushSupplier: ::COSS::CosEventComm::PushSupplier {
179
void connect_push_consumer(
180
in ::COSS::CosEventComm::PushConsumer
182
raises(AlreadyConnected, TypeError);
186
interface ConsumerAdmin {
187
ProxyPushSupplier obtain_push_supplier();
188
ProxyPullSupplier obtain_pull_supplier();
191
interface SupplierAdmin {
192
ProxyPushConsumer obtain_push_consumer();
193
ProxyPullConsumer obtain_pull_consumer();
196
interface EventChannel {
197
ConsumerAdmin for_consumers();
198
SupplierAdmin for_suppliers();
205
// CosTyped Event Module, p 4-22 CORBAservices, Event Service
208
// // #include "CosEventComm.idl"
210
module CosTypedEventComm {
212
interface TypedPushConsumer : ::COSS::CosEventComm::PushConsumer {
213
Object get_typed_consumer();
216
interface TypedPullSupplier : ::COSS::CosEventComm::PullSupplier {
217
Object get_typed_supplier();
222
// CosTypedEventChannelAdmin Module, p 4- 25 CORBAservices,
223
// Event Service V1.0, 3/94
225
// // #include "CosEventChannel.idl"
226
// // #include "CosTypedEventComm.idl"
227
module CosTypedEventChannelAdmin {
228
exception InterfaceNotSupported {};
229
exception NoSuchImplementation {};
232
interface TypedProxyPushConsumer :
233
::COSS::CosEventChannelAdmin::ProxyPushConsumer,
234
::COSS::CosTypedEventComm::TypedPushConsumer { };
236
interface TypedProxyPullSupplier :
237
::COSS::CosEventChannelAdmin::ProxyPullSupplier,
238
::COSS::CosTypedEventComm::TypedPullSupplier { };
240
interface TypedSupplierAdmin :
241
::COSS::CosEventChannelAdmin::SupplierAdmin {
242
TypedProxyPushConsumer obtain_typed_push_consumer(
243
in Key supported_interface)
244
raises(InterfaceNotSupported);
245
::COSS::CosEventChannelAdmin::ProxyPullConsumer obtain_typed_pull_consumer (
246
in Key uses_interface)
247
raises(NoSuchImplementation);
250
interface TypedConsumerAdmin :
251
::COSS::CosEventChannelAdmin::ConsumerAdmin {
252
TypedProxyPullSupplier obtain_typed_pull_supplier(
253
in Key supported_interface)
254
raises (InterfaceNotSupported);
255
::COSS::CosEventChannelAdmin::ProxyPushSupplier obtain_typed_push_supplier(
256
in Key uses_interface)
257
raises(NoSuchImplementation);
260
interface TypedEventChannel {
261
TypedConsumerAdmin for_consumers();
262
TypedSupplierAdmin for_suppliers();
268
// CosPersistencePID Module, p 5-20 CORBAservices,
269
// Persistent Object Service V1.0, 3/94
271
//#ifndef __COSPERSISTENCE
272
//#define __COSPERSISTENCE
274
module CosPersistencePID {
277
attribute string datastore_type;
278
string get_PIDString();
283
// CosPersistencePDS Module, p 5-20 CORBAservices,
284
// Persistent Object Service V1.0, 3/94
286
// #include "CosPersistencePID.idl"
288
module CosPersistencePDS {
292
PDS connect (in Object obj,
293
in ::COSS::CosPersistencePID::PID p);
294
void disconnect (in Object obj,
295
in ::COSS::CosPersistencePID::PID p);
296
void store (in Object obj,
297
in ::COSS::CosPersistencePID::PID p);
298
void restore (in Object obj,
299
in ::COSS::CosPersistencePID::PID p);
300
void delete (in Object obj,
301
in ::COSS::CosPersistencePID::PID p);
306
// CosPersistencePO Module, p 5-12 CORBAservices,
307
// Persistent Object Service V1.0, 3/94
309
// // #include "CosPersistencePDS.idl"
310
// CosPersistencePDS.idl
311
// // #includes CosPersistencePID.idl
313
module CosPersistencePO {
316
attribute ::COSS::CosPersistencePID::PID p;
317
::COSS::CosPersistencePDS::PDS connect (
318
in ::COSS::CosPersistencePID::PID p);
319
void disconnect (in ::COSS::CosPersistencePID::PID p);
320
void store (in ::COSS::CosPersistencePID::PID p);
321
void restore (in ::COSS::CosPersistencePID::PID p);
322
void delete (in ::COSS::CosPersistencePID::PID p);
332
// CosPersistencePOM Module, p 5-15 CORBAservices,
333
// Persistent Object Service V1.0, 3/94
335
// #include "CosPersistencePDS.idl"
337
// CosPersistencePDS.idl // #includes CosPersistencePID.idl
339
module CosPersistencePOM {
344
::COSS::CosPersistencePDS::PDS connect (
346
in ::COSS::CosPersistencePID::PID p);
349
in ::COSS::CosPersistencePID::PID p);
352
in ::COSS::CosPersistencePID::PID p);
355
in ::COSS::CosPersistencePID::PID p);
358
in ::COSS::CosPersistencePID::PID p);
362
// CosPersistencePDS_DA Module, p 5-22 CORBAservices,
363
// Persistent Object Service, V1.0, 3/94
365
// #include "CosPersistencePDS.idl"
366
// CosPersistencePDS.idl // #includes CosPersistencePID.idl
368
module CosPersistencePDS_DA {
370
typedef string DAObjectID;
372
interface PID_DA : ::COSS::CosPersistencePID::PID {
373
attribute DAObjectID oid;
377
boolean dado_same(in DAObject d);
378
DAObjectID dado_oid();
384
interface DAObjectFactory {
388
interface DAObjectFactoryFinder {
389
DAObjectFactory find_factory(in string key);
392
interface PDS_DA : ::COSS::CosPersistencePDS::PDS {
394
void set_data(in DAObject new_data);
395
DAObject lookup(in DAObjectID id);
397
PID_DA get_object_pid(in DAObject dao);
398
DAObjectFactoryFinder data_factories();
401
typedef sequence<string> AttributeNames;
402
interface DynamicAttributeAccess {
403
AttributeNames attribute_names();
404
any attribute_get(in string name);
405
void attribute_set(in string name, in any value);
408
typedef string ClusterID;
409
typedef sequence<ClusterID> ClusterIDs;
410
interface PDS_ClusteredDA : PDS_DA{
411
ClusterID cluster_id();
412
string cluster_kind();
413
ClusterIDs clusters_of();
414
PDS_ClusteredDA create_cluster(in string kind);
415
PDS_ClusteredDA open_cluster(in ClusterID cluster);
416
PDS_ClusteredDA copy_cluster(
421
// CosPersistenceDDO Module, p 5-32 CORBAservices, Persistent Object Service V1.0, 3/94
423
// #include "CosPersistencePID.idl"
424
module CosPersistenceDDO {
427
attribute string object_type;
428
attribute ::COSS::CosPersistencePID::PID p;
430
short add_data_property (in short data_id);
431
short get_data_count();
432
short get_data_property_count (in short data_id);
433
void get_data_property (in short data_id,
434
in short property_id,
435
out string property_name,
436
out any property_value);
437
void set_data_property (in short data_id,
438
in short property_id,
439
in string property_name,
440
in any property_value);
441
void get_data (in short data_id,
442
out string data_name,
444
void set_data (in short data_id,
450
// CosPersistenceDS_CLI module, p 5-34 CORBAservices,
451
// Persistent Object Service V1.0, 3/94
453
// #include "CosPersistenceDDO.idl"
454
// CosPersistenceDDO.idl // #includes CosPersistencePID.idl
456
module CosPersistenceDS_CLI {
457
interface UserEnvironment {
458
void set_option (in long option,in any value);
459
void get_option (in long option,out any value);
463
interface Connection {
464
void set_option (in long option,in any value);
465
void get_option (in long option,out any value);
468
interface ConnectionFactory {
469
Connection create_object (
470
in UserEnvironment user_envir);
474
void set_position (in long position,in any value);
475
::COSS::CosPersistenceDDO::DDO fetch_object();
478
interface CursorFactory {
479
Cursor create_object (
480
in Connection connection);
483
interface PID_CLI : ::COSS::CosPersistencePID::PID {
484
attribute string datastore_id;
490
interface Datastore_CLI {
491
void connect (in Connection connection,
492
in string datastore_id,
494
in string authentication);
495
void disconnect (in Connection connection);
496
Connection get_connection (
497
in string datastore_id,
498
in string user_name);
499
void add_object (in Connection connection,
500
in ::COSS::CosPersistenceDDO::DDO data_obj);
502
in Connection connection,
503
in ::COSS::CosPersistenceDDO::DDO data_obj);
505
in Connection connection,
506
in ::COSS::CosPersistenceDDO::DDO data_obj);
507
void retrieve_object(
508
in Connection connection,
509
in ::COSS::CosPersistenceDDO::DDO data_obj);
510
Cursor select_object(
511
in Connection connection,
513
void transact (in UserEnvironment user_envir,
514
in short completion_type);
515
void assign_PID (in PID_CLI p);
516
void assign_PID_relative (
517
in PID_CLI source_pid,
518
in PID_CLI target_pid);
519
boolean is_identical_PID (
522
string get_object_type (in PID_CLI p);
523
void register_mapping_schema (in string schema_file);
524
Cursor execute (in Connection connection,
531
// CosLifeCycle Module, p 6-10 CORBAservices, LifeCycle Service V1.0, 3/94
533
// #include "Naming.idl"
537
typedef ::COSS::CosNaming::Name Key;
538
typedef Object Factory;
539
typedef sequence <Factory> Factories;
541
::COSS::CosNaming::Istring name;
544
typedef sequence <NameValuePair> Criteria;
546
exception NoFactory {
549
exception NotCopyable { string reason; };
550
exception NotMovable { string reason; };
551
exception NotRemovable { string reason; };
552
exception InvalidCriteria{
553
Criteria invalid_criteria;
555
exception CannotMeetCriteria {
556
Criteria unmet_criteria;
560
interface FactoryFinder {
561
Factories find_factories(in Key factory_key)
565
interface LifeCycleObject {
566
LifeCycleObject copy(in FactoryFinder there,
567
in Criteria the_criteria)
568
raises(NoFactory, NotCopyable, InvalidCriteria,
570
void move(in FactoryFinder there,
571
in Criteria the_criteria)
572
raises(NoFactory, NotMovable, InvalidCriteria,
575
raises(NotRemovable);
578
interface GenericFactory {
579
boolean supports(in Key k);
580
Object create_object(
582
in Criteria the_criteria)
583
raises (NoFactory, InvalidCriteria,
590
// LifeCycleService Module, p 6- 55 CORBAservices, Life Cycle
591
// Service V1.0, 3/94
593
// #include "LifeCycle.idl"
595
module LifeCycleService {
597
typedef sequence <::COSS::CosLifeCycle::NameValuePair> PolicyList;
598
typedef sequence <::COSS::CosLifeCycle::Key> Keys;
599
typedef sequence <::COSS::CosLifeCycle::NameValuePair> PropertyList;
600
typedef sequence <::COSS::CosNaming::NameComponent> NameComponents;
602
interface LifeCycleServiceAdmin {
604
attribute PolicyList policies;
606
void bind_generic_factory(
607
in ::COSS::CosLifeCycle::GenericFactory gf,
608
in ::COSS::CosNaming::NameComponent name,
610
in PropertyList other_properties)
611
raises (::COSS::CosNaming::NamingContext::AlreadyBound, ::COSS::CosNaming::NamingContext::InvalidName);
613
void unbind_generic_factory(
614
in ::COSS::CosNaming::NameComponent name)
615
raises (::COSS::CosNaming::NamingContext::NotFound, ::COSS::CosNaming::NamingContext::InvalidName);
617
::COSS::CosLifeCycle::GenericFactory resolve_generic_factory(
618
in ::COSS::CosNaming::NameComponent name)
619
raises (::COSS::CosNaming::NamingContext::NotFound, ::COSS::CosNaming::NamingContext::InvalidName);
621
NameComponents list_generic_factories();
623
boolean match_service (in ::COSS::CosLifeCycle::GenericFactory f);
627
void get_link_properties(
628
in ::COSS::CosNaming::NameComponent name,
630
out PropertyList other_properties)
631
raises (::COSS::CosNaming::NamingContext::NotFound, ::COSS::CosNaming::NamingContext::InvalidName);
635
// CosTransactions Module, p 10-66
636
// CORBAservices, Transaction Service V1.0, 3/94
638
module CosTransactions {
642
StatusMarkedRollback,
656
// Standard exceptions
657
exception TransactionRequired {};
658
exception TransactionRolledBack {};
659
exception InvalidTransaction {};
661
// Heuristic exceptions
662
exception HeuristicRollback {};
663
exception HeuristicCommit {};
664
exception HeuristicMixed {};
665
exception HeuristicHazard {};
667
// Exception from Orb operations
668
exception WrongTransaction {};
670
// Other transaction-specific exceptions
671
exception SubtransactionsUnavailable {};
672
exception NotSubtransaction {};
673
exception Inactive {};
674
exception NotPrepared {};
675
exception NoTransaction {};
676
exception InvalidControl {};
677
exception Unavailable {};
679
// Forward references for interfaces defined later in module
681
interface Terminator;
682
interface Coordinator;
684
interface RecoveryCoordinator;
685
interface SubtransactionAwareResource;
686
interface TransactionFactory;
687
interface TransactionalObject;
690
// Current transaction pseudo object (PIDL)
693
raises(SubtransactionsUnavailable);
694
void commit(in boolean report_heuristics)
701
raises(NoTransaction);
703
raises(NoTransaction);
706
string get_transaction_name();
707
void set_timeout(in unsigned long seconds);
709
Control get_control();
711
void resume(in Control which)
712
raises(InvalidControl);
715
interface TransactionFactory {
716
Control create(in unsigned long time_out);
720
Terminator get_terminator()
722
Coordinator get_coordinator()
726
interface Terminator {
727
void commit(in boolean report_heuristics)
736
interface Coordinator {
739
Status get_parent_status();
740
Status get_top_level_status();
742
boolean is_same_transaction(in Coordinator tc);
743
boolean is_related_transaction(in Coordinator tc);
744
boolean is_ancestor_transaction(in Coordinator tc);
745
boolean is_descendant_transaction(in Coordinator tc);
746
boolean is_top_level_transaction();
748
unsigned long hash_transaction();
749
unsigned long hash_top_level_tran();
751
RecoveryCoordinator register_resource(in Resource r)
754
void register_subtran_aware(in SubtransactionAwareResource r)
755
raises(Inactive, NotSubtransaction);
760
string get_transaction_name();
762
Control create_subtransaction()
763
raises(SubtransactionsUnavailable, Inactive);
766
interface RecoveryCoordinator {
767
Status replay_completion(in Resource r)
771
}; // end module CosTransactions
774
// CosConcurrency Control Module, p 7-8 CORBAservices,
775
// Concurrency Control Service V1.0, 3/94
777
// #include <CosTransactions.idl>
778
module CosConcurrencyControl {
788
exception LockNotHeld{};
790
interface LockCoordinator
797
void lock(in lock_mode mode);
798
boolean try_lock(in lock_mode mode);
800
void unlock(in lock_mode mode)
802
void change_mode(in lock_mode held_mode,
803
in lock_mode new_mode)
805
LockCoordinator get_coordinator(
806
in ::COSS::CosTransactions::Coordinator which);
809
interface TransactionalLockSet
811
void lock(in ::COSS::CosTransactions::Coordinator current,
813
boolean try_lock(in ::COSS::CosTransactions::Coordinator current,
815
void unlock(in ::COSS::CosTransactions::Coordinator current,
818
void change_mode(in ::COSS::CosTransactions::Coordinator current,
819
in lock_mode held_mode,
820
in lock_mode new_mode)
822
LockCoordinator get_coordinator(
823
in ::COSS::CosTransactions::Coordinator which);
826
interface LockSetFactory
829
LockSet create_related(in LockSet which);
830
TransactionalLockSet create_transactional();
831
TransactionalLockSet create_transactional_related(in
832
TransactionalLockSet which);
836
// CosObjectIdentity Module, p 9-19 CORBAservices, Relationship
837
// Service V1.0, 3/94
840
module CosObjectIdentity {
842
typedef unsigned long ObjectIdentifier;
844
interface IdentifiableObject {
845
readonly attribute ObjectIdentifier constant_random_id;
846
boolean is_identical (
847
in IdentifiableObject other_object);
853
// CosRelationships Module, p 9-21 CORBAservices, Relationship
854
// Service V1.0, 3/94
856
// #include <ObjectIdentity.idl>
858
module CosRelationships {
860
interface RoleFactory;
861
interface RelationshipFactory;
862
interface Relationship;
864
interface RelationshipIterator;
866
typedef Object RelatedObject;
867
typedef sequence<Role> Roles;
868
typedef string RoleName;
869
typedef sequence<RoleName> RoleNames;
871
struct NamedRole {RoleName name; Role aRole;};
872
typedef sequence<NamedRole> NamedRoles;
874
struct RelationshipHandle {
875
Relationship the_relationship;
876
::COSS::CosObjectIdentity::ObjectIdentifier constant_random_id;
878
typedef sequence<RelationshipHandle> RelationshipHandles;
880
interface RelationshipFactory {
881
struct NamedRoleType {
883
::CORBA::InterfaceDef named_role_type;
885
typedef sequence<NamedRoleType> NamedRoleTypes;
886
readonly attribute ::CORBA::InterfaceDef relationship_type;
887
readonly attribute unsigned short degree;
888
readonly attribute NamedRoleTypes named_role_types;
889
exception RoleTypeError {NamedRoles culprits;};
890
exception MaxCardinalityExceeded {
891
NamedRoles culprits;};
892
exception DegreeError {unsigned short required_degree;};
893
exception DuplicateRoleName {NamedRoles culprits;};
894
exception UnknownRoleName {NamedRoles culprits;};
896
Relationship create (in NamedRoles named_roles)
897
raises (RoleTypeError,
898
MaxCardinalityExceeded,
904
interface Relationship :
905
::COSS::CosObjectIdentity::IdentifiableObject {
906
exception CannotUnlink {
907
Roles offending_roles;
909
readonly attribute NamedRoles named_roles;
910
void destroy () raises(CannotUnlink);
914
exception UnknownRoleName {};
915
exception UnknownRelationship {};
916
exception RelationshipTypeError {};
917
exception CannotDestroyRelationship {
918
RelationshipHandles offenders;
920
exception ParticipatingInRelationship {
921
RelationshipHandles the_relationships;
923
readonly attribute RelatedObject related_object;
924
RelatedObject get_other_related_object (
925
in RelationshipHandle rel,
926
in RoleName target_name)
927
raises (UnknownRoleName,
928
UnknownRelationship);
929
Role get_other_role (in RelationshipHandle rel,
930
in RoleName target_name)
931
raises (UnknownRoleName, UnknownRelationship);
932
void get_relationships (
933
in unsigned long how_many,
934
out RelationshipHandles rels,
935
out RelationshipIterator iterator);
936
void destroy_relationships()
937
raises(CannotDestroyRelationship);
938
void destroy() raises(ParticipatingInRelationship);
939
boolean check_minimum_cardinality ();
940
void link (in RelationshipHandle rel,
941
in NamedRoles named_roles)
942
raises(RelationshipFactory::MaxCardinalityExceeded,
943
RelationshipTypeError);
944
void unlink (in RelationshipHandle rel)
945
raises (UnknownRelationship);
948
interface RoleFactory {
949
exception NilRelatedObject {};
950
exception RelatedObjectTypeError {};
951
readonly attribute ::CORBA::InterfaceDef role_type;
952
readonly attribute unsigned long max_cardinality;
953
readonly attribute unsigned long min_cardinality;
954
// the following isn't allowed in IDL,
955
// readonly attribute sequence <::CORBA::InterfaceDef> related_object_types;
956
typedef sequence <::CORBA::InterfaceDef> InterfaceDefSeq;
957
readonly attribute InterfaceDefSeq related_object_types;
958
Role create_role (in RelatedObject related_object)
959
raises (NilRelatedObject, RelatedObjectTypeError);
962
interface RelationshipIterator {
963
boolean next_one (out RelationshipHandle rel);
964
boolean next_n (in unsigned long how_many,
965
out RelationshipHandles rels);
971
// CosCompoundExternalization Module, p 8-20 CORBAservices,
972
// Externalization Service V1.0, 3/94
974
// #include <Graphs.idl>
975
// #include <Stream.idl>
977
// CosGraphs Module, p 9-39 CORBAservices, Relationship Service
980
// #include <Relationships.idl>
981
// #include <ObjectIdentity.idl>
985
interface TraversalFactory;
987
interface TraversalCriteria;
989
interface NodeFactory;
991
interface EdgeIterator;
995
::COSS::CosObjectIdentity::ObjectIdentifier constant_random_id;
997
typedef sequence<NodeHandle> NodeHandles;
1001
::COSS::CosRelationships::RoleName the_name;
1003
typedef sequence<NamedRole> NamedRoles;
1006
NodeHandle the_node;
1009
typedef sequence<EndPoint> EndPoints;
1013
::COSS::CosRelationships::RelationshipHandle the_relationship;
1014
EndPoints relatives;
1016
typedef sequence<Edge> Edges;
1018
enum PropagationValue {deep, shallow, none, inhibit};
1019
enum Mode {depthFirst, breadthFirst, bestFirst};
1021
interface TraversalFactory {
1022
Traversal create_traversal_on (
1023
in NodeHandle root_node,
1024
in TraversalCriteria the_criteria,
1028
interface Traversal {
1029
typedef unsigned long TraversalScopedId;
1030
struct ScopedEndPoint {
1032
TraversalScopedId id;
1034
typedef sequence<ScopedEndPoint> ScopedEndPoints;
1035
struct ScopedRelationship {
1036
::COSS::CosRelationships::RelationshipHandle
1037
scoped_relationship;
1038
TraversalScopedId id;
1041
ScopedEndPoint from;
1042
ScopedRelationship the_relationship;
1043
ScopedEndPoints relatives;
1045
typedef sequence<ScopedEdge> ScopedEdges;
1046
boolean next_one (out ScopedEdge the_edge);
1047
boolean next_n (in short how_many,
1048
out ScopedEdges the_edges);
1052
interface TraversalCriteria {
1053
struct WeightedEdge {
1055
unsigned long weight;
1056
sequence<NodeHandle> next_nodes;
1058
typedef sequence<WeightedEdge> WeightedEdges;
1059
void visit_node(in NodeHandle a_node,
1060
in Mode search_mode);
1061
boolean next_one (out WeightedEdge the_edge);
1062
boolean next_n (in short how_many,
1063
out WeightedEdges the_edges);
1067
interface Node: ::COSS::CosObjectIdentity::IdentifiableObject {
1068
typedef sequence<Role> Roles;
1069
exception NoSuchRole {};
1070
exception DuplicateRoleType {};
1072
readonly attribute ::COSS::CosRelationships::RelatedObject
1074
readonly attribute Roles roles_of_node;
1075
Roles roles_of_type (
1076
in ::CORBA::InterfaceDef role_type);
1077
void add_role (in Role a_role)
1078
raises (DuplicateRoleType);
1079
void remove_role (in ::CORBA::InterfaceDef of_type)
1080
raises (NoSuchRole);
1083
interface NodeFactory {
1084
Node create_node (in Object related_object);
1087
interface Role : ::COSS::CosRelationships::Role {
1088
void get_edges ( in long how_many,
1089
out Edges the_edges,
1090
out EdgeIterator the_rest);
1093
interface EdgeIterator {
1094
boolean next_one (out Edge the_edge);
1095
boolean next_n ( in unsigned long how_many,
1096
out Edges the_edges);
1104
// CosStream Module, 8-15 CORBAservices,
1105
// Externalization Service V1.0, 3/94
1107
// #include <LifeCycle.idl>
1108
// #include <ObjectIdentity.idl>
1109
// #include <CompoundExternalization.idl>
1111
exception ObjectCreationError{};
1112
exception StreamDataFormatError{};
1115
interface Streamable: ::COSS::CosObjectIdentity::IdentifiableObject
1117
readonly attribute ::COSS::CosLifeCycle::Key external_form_id;
1118
void externalize_to_stream(
1119
in StreamIO targetStreamIO);
1120
void internalize_from_stream(
1121
in StreamIO sourceStreamIO,
1122
in ::COSS::CosLifeCycle::FactoryFinder there)
1123
raises( ::COSS::CosLifeCycle::NoFactory,
1124
ObjectCreationError,
1125
StreamDataFormatError );
1128
interface StreamableFactory {
1129
Streamable create_uninitialized();
1133
interface StreamIO {
1134
void write_string(in string aString);
1135
void write_char(in char aChar);
1136
void write_octet(in octet anOctet);
1137
void write_unsigned_long(
1138
in unsigned long anUnsignedLong);
1139
void write_unsigned_short(
1140
in unsigned short anUnsignedShort);
1141
void write_long(in long aLong);
1142
void write_short(in short aShort);
1143
void write_float(in float aFloat);
1144
void write_double(in double aDouble);
1145
void write_boolean(in boolean aBoolean);
1146
void write_object(in Streamable aStreamable);
1147
// void write_graph(in ::COSS::CosCompoundExternalization::Node aNode);
1148
string read_string()
1149
raises(StreamDataFormatError);
1151
raises(StreamDataFormatError );
1153
raises(StreamDataFormatError );
1154
unsigned long read_unsigned_long()
1155
raises(StreamDataFormatError );
1156
unsigned short read_unsigned_short()
1157
raises( StreamDataFormatError );
1159
raises(StreamDataFormatError );
1161
raises(StreamDataFormatError );
1163
raises(StreamDataFormatError );
1164
double read_double()
1165
raises(StreamDataFormatError );
1166
boolean read_boolean()
1167
raises(StreamDataFormatError );
1168
Streamable read_object(
1169
in ::COSS::CosLifeCycle::FactoryFinder there,
1170
in Streamable aStreamable)
1171
raises(StreamDataFormatError );
1173
// in ::COSS::CosCompoundExternalization::Node starting_node,
1174
// in ::COSS::CosLifeCycle::FactoryFinder there)
1175
// raises(StreamDataFormatError );
1179
module CosCompoundExternalization {
1182
interface Relationship;
1183
interface PropagationCriteriaFactory;
1185
struct RelationshipHandle {
1186
Relationship theRelationship;
1187
::COSS::CosObjectIdentity::ObjectIdentifier constantRandomId;
1190
interface Node : ::COSS::CosGraphs::Node, ::COSS::CosStream::Streamable{
1191
void externalize_node (in ::COSS::CosStream::StreamIO sio);
1192
void internalize_node (in ::COSS::CosStream::StreamIO sio,
1193
in ::COSS::CosLifeCycle::FactoryFinder there,
1194
out ::COSS::CosGraphs::Node::Roles rolesOfNode)
1195
raises (::COSS::CosLifeCycle::NoFactory);
1198
interface Role : ::COSS::CosGraphs::Role {
1199
void externalize_role (in ::COSS::CosStream::StreamIO sio);
1200
void internalize_role (in ::COSS::CosStream::StreamIO sio);
1201
::COSS::CosGraphs::PropagationValue externalize_propagation (
1202
in RelationshipHandle rel,
1203
in ::COSS::CosRelationships::RoleName toRoleName,
1204
out boolean sameForAll);
1207
interface Relationship :
1208
::COSS::CosRelationships::Relationship {
1209
void externalize_relationship (
1210
in ::COSS::CosStream::StreamIO sio);
1211
void internalize_relationship(
1212
in ::COSS::CosStream::StreamIO sio,
1213
in ::COSS::CosGraphs::NamedRoles newRoles);
1214
::COSS::CosGraphs::PropagationValue externalize_propagation (
1215
in ::COSS::CosRelationships::RoleName fromRoleName,
1216
in ::COSS::CosRelationships::RoleName toRoleName,
1217
out boolean sameForAll);
1220
interface PropagationCriteriaFactory {
1221
::COSS::CosGraphs::TraversalCriteria create_for_externalize( );
1226
// CosExternalization Module, 8-12 CORBAservices,
1227
// Externalization Service V1.0, 3/94
1230
// #include <LifeCycle.idl>
1231
// #include <Stream.idl>
1232
module CosExternalization {
1233
exception InvalidFileNameError{};
1234
exception ContextAlreadyRegistered{};
1235
interface Stream: ::COSS::CosLifeCycle::LifeCycleObject{
1237
in ::COSS::CosStream::Streamable theObject);
1238
::COSS::CosStream::Streamable internalize(
1239
in ::COSS::CosLifeCycle::FactoryFinder there)
1240
raises( ::COSS::CosLifeCycle::NoFactory,
1241
::COSS::CosStream::StreamDataFormatError );
1242
void begin_context()
1243
raises( ContextAlreadyRegistered);
1247
interface StreamFactory {
1250
interface FileStreamFactory {
1252
in string theFileName)
1253
raises( InvalidFileNameError );
1257
// CosContainment Module, p 9- 48 CORBAservices, Relationship
1258
// Service V1.0, 3/94
1260
// #include <Graphs.idl>
1262
module CosContainment {
1264
interface Relationship :
1265
::COSS::CosRelationships::Relationship {};
1267
interface ContainsRole : ::COSS::CosGraphs::Role {};
1269
interface ContainedInRole : ::COSS::CosGraphs::Role {};
1273
// CosExternalizationContainment Module, p 8-26 CORBAservices,
1274
// Externalization Service V1.0, 3/94
1276
// #include <Containment.idl>
1277
// #include <CompoundExternalization.idl>
1279
module CosExternalizationContainment {
1281
interface Relationship :
1282
::COSS::CosCompoundExternalization::Relationship,
1283
::COSS::CosContainment::Relationship {};
1285
interface ContainsRole :
1286
::COSS::CosCompoundExternalization::Role,
1287
::COSS::CosContainment::ContainsRole {};
1289
interface ContainedInRole :
1290
::COSS::CosCompoundExternalization::Role,
1291
::COSS::CosContainment::ContainedInRole {};
1294
// CosReference Module, p 9-50 CORBAservices,
1295
// Relationship Service V1.0, 3/94
1297
// #include <Graphs.idl>
1299
module CosReference {
1301
interface Relationship :
1302
::COSS::CosRelationships::Relationship {};
1304
interface ReferencesRole : ::COSS::CosGraphs::Role {};
1306
interface ReferencedByRole : ::COSS::CosGraphs::Role {};
1310
// CosExternalizationReference Module, p 8-28 CORBAservices,
1311
// Externalization Service V1.0, 3/94
1313
// #include <Reference.idl>
1314
// #include <CompoundExternalization.idl>
1316
module CosExternalizationReference {
1318
interface Relationship :
1319
::COSS::CosCompoundExternalization::Relationship,
1320
::COSS::CosReference::Relationship {};
1322
interface ReferencesRole :
1323
::COSS::CosCompoundExternalization::Role,
1324
::COSS::CosReference::ReferencesRole {};
1326
interface ReferencedByRole :
1327
::COSS::CosCompoundExternalization::Role,
1328
::COSS::CosReference::ReferencedByRole {};
1331
// PIDL for CosTSInteroperation Module, p 10-59
1332
// CORBAservices, Transaction Service V1.0, 3/94
1333
module CosTSInteroperation { // PIDL
1335
long formatID; /*format identifier. 0 is OSI TP */
1337
sequence <octet> tid;
1339
struct TransIdentity {
1340
::COSS::CosTransactions::Coordinator coordinator;
1341
::COSS::CosTransactions::Terminator terminator;
1344
struct PropagationContext {
1345
unsigned long timeout;
1346
TransIdentity current;
1347
sequence <TransIdentity> parents;
1348
any implementation_specific_data;
1352
// PIDL for CosTSPortability Module, p 10-63
1353
// CORBAservices, Transaction Service V1.0, 3/94
1355
module CosTSPortability { // PIDL
1359
void sending_request(in ReqId id,
1360
out ::COSS::CosTSInteroperation::PropagationContext ctx);
1361
void received_reply(in ReqId id,
1362
in ::COSS::CosTSInteroperation::PropagationContext ctx,
1363
in ::CORBA::Environment env);
1366
interface Receiver {
1367
void received_request(in ReqId id,
1368
in ::COSS::CosTSInteroperation::PropagationContext ctx);
1369
void sending_reply(in ReqId id,
1370
out::COSS::CosTSInteroperation::PropagationContext ctx);
1374
// CosCompoundLifeCycle Module, p 6-30 CORBAservices,
1375
// Life Cycle Service V1.0, 3/94
1377
// #include <LifeCycle.idl>
1378
// #include <Relationships.idl>
1379
// #include <Graphs.idl>
1381
module CosCompoundLifeCycle {
1382
interface OperationsFactory;
1383
interface Operations;
1386
interface Relationship;
1387
interface PropagationCriteriaFactory;
1389
enum Operation {copy, move, remove};
1391
struct RelationshipHandle {
1392
Relationship the_relationship;
1393
::COSS::CosObjectIdentity::ObjectIdentifier constant_random_id;
1396
interface OperationsFactory {
1397
Operations create_compound_operations();
1400
interface Operations {
1402
in Node starting_node,
1403
in ::COSS::CosLifeCycle::FactoryFinder there,
1404
in ::COSS::CosLifeCycle::Criteria the_criteria)
1405
raises (::COSS::CosLifeCycle::NoFactory,
1406
::COSS::CosLifeCycle::NotCopyable,
1407
::COSS::CosLifeCycle::InvalidCriteria,
1408
::COSS::CosLifeCycle::CannotMeetCriteria);
1410
in Node starting_node,
1411
in ::COSS::CosLifeCycle::FactoryFinder there,
1412
in ::COSS::CosLifeCycle::Criteria the_criteria)
1413
raises (::COSS::CosLifeCycle::NoFactory,
1414
::COSS::CosLifeCycle::NotMovable,
1415
::COSS::CosLifeCycle::InvalidCriteria,
1416
::COSS::CosLifeCycle::CannotMeetCriteria);
1417
void remove (in Node starting_node)
1418
raises (::COSS::CosLifeCycle::NotRemovable);
1422
interface Node : ::COSS::CosGraphs::Node {
1423
exception NotLifeCycleObject {};
1424
void copy_node ( in ::COSS::CosLifeCycle::FactoryFinder there,
1425
in ::COSS::CosLifeCycle::Criteria the_criteria,
1427
out ::COSS::CosGraphs::Node::Roles roles_of_new_node)
1428
raises (::COSS::CosLifeCycle::NoFactory,
1429
::COSS::CosLifeCycle::NotCopyable,
1430
::COSS::CosLifeCycle::InvalidCriteria,
1431
::COSS::CosLifeCycle::CannotMeetCriteria);
1432
void move_node (in ::COSS::CosLifeCycle::FactoryFinder there,
1433
in ::COSS::CosLifeCycle::Criteria the_criteria)
1434
raises (::COSS::CosLifeCycle::NoFactory,
1435
::COSS::CosLifeCycle::NotMovable,
1436
::COSS::CosLifeCycle::InvalidCriteria,
1437
::COSS::CosLifeCycle::CannotMeetCriteria);
1439
raises (::COSS::CosLifeCycle::NotRemovable);
1440
::COSS::CosLifeCycle::LifeCycleObject get_life_cycle_object()
1441
raises (NotLifeCycleObject);
1444
interface Role : ::COSS::CosGraphs::Role {
1445
Role copy_role (in ::COSS::CosLifeCycle::FactoryFinder there,
1446
in ::COSS::CosLifeCycle::Criteria the_criteria)
1447
raises (::COSS::CosLifeCycle::NoFactory,
1448
::COSS::CosLifeCycle::NotCopyable,
1449
::COSS::CosLifeCycle::InvalidCriteria,
1450
::COSS::CosLifeCycle::CannotMeetCriteria);
1451
void move_role (in ::COSS::CosLifeCycle::FactoryFinder there,
1452
in ::COSS::CosLifeCycle::Criteria the_criteria)
1453
raises (::COSS::CosLifeCycle::NoFactory,
1454
::COSS::CosLifeCycle::NotMovable,
1455
::COSS::CosLifeCycle::InvalidCriteria,
1456
::COSS::CosLifeCycle::CannotMeetCriteria);
1457
::COSS::CosGraphs::PropagationValue life_cycle_propagation (
1459
in RelationshipHandle rel,
1460
in ::COSS::CosRelationships::RoleName to_role_name,
1461
out boolean same_for_all);
1464
interface Relationship :
1465
::COSS::CosRelationships::Relationship {
1466
Relationship copy_relationship (
1467
in ::COSS::CosLifeCycle::FactoryFinder there,
1468
in ::COSS::CosLifeCycle::Criteria the_criteria,
1469
in ::COSS::CosGraphs::NamedRoles new_roles)
1470
raises (::COSS::CosLifeCycle::NoFactory,
1471
::COSS::CosLifeCycle::NotCopyable,
1472
::COSS::CosLifeCycle::InvalidCriteria,
1473
::COSS::CosLifeCycle::CannotMeetCriteria);
1474
void move_relationship (
1475
in ::COSS::CosLifeCycle::FactoryFinder there,
1476
in ::COSS::CosLifeCycle::Criteria the_criteria)
1477
raises (::COSS::CosLifeCycle::NoFactory,
1478
::COSS::CosLifeCycle::NotMovable,
1479
::COSS::CosLifeCycle::InvalidCriteria,
1480
::COSS::CosLifeCycle::CannotMeetCriteria);
1481
::COSS::CosGraphs::PropagationValue life_cycle_propagation (
1483
in ::COSS::CosRelationships::RoleName from_role_name,
1484
in ::COSS::CosRelationships::RoleName to_role_name,
1485
out boolean same_for_all);
1488
interface PropagationCriteriaFactory {
1489
::COSS::CosGraphs::TraversalCriteria create(in Operation op);
1494
// CosLifeCycleContainment Module, p 6-42 CORBAservices,
1495
// Life Cycle Service V1.0, 3/94
1497
// #include <Containment.idl>
1498
// #include <CompoundLifeCycle.idl>
1500
module CosLifeCycleContainment {
1502
interface Relationship :
1503
::COSS::CosCompoundLifeCycle::Relationship,
1504
::COSS::CosContainment::Relationship {};
1506
interface ContainsRole :
1507
::COSS::CosCompoundLifeCycle::Role,
1508
::COSS::CosContainment::ContainsRole {};
1510
interface ContainedInRole :
1511
::COSS::CosCompoundLifeCycle::Role,
1512
::COSS::CosContainment::ContainedInRole {};
1515
// CosLifeCycleReference Module, p 6-44 CORBAservices,
1516
// Life Cycle Service V1.0, 3/94
1518
// #include <Reference.idl>
1519
// #include <CompoundLifeCycle.idl>
1521
module CosLifeCycleReference {
1523
interface Relationship :
1524
::COSS::CosCompoundLifeCycle::Relationship,
1525
::COSS::CosReference::Relationship {};
1527
interface ReferencesRole :
1528
::COSS::CosCompoundLifeCycle::Role,
1529
::COSS::CosReference::ReferencesRole {};
1531
interface ReferencedByRole :
1532
::COSS::CosCompoundLifeCycle::Role,
1533
::COSS::CosReference::ReferencedByRole {};
1537
}; // end module COSS