OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I386LINUX / util / I386LINUX / include / mico / imr.idl
1 /* -*- c++ -*- */
2
3 #pragma prefix "omg.org"
4
5 module CORBA {
6
7     /*
8      * Implementation Repository Entry
9      */
10     interface ImplementationDef {
11
12         enum ActivationMode {
13             ActivateShared,
14             ActivateUnshared,
15             ActivatePerMethod,
16             ActivatePersistent,
17             ActivateLibrary,
18             ActivatePOA
19         };
20
21         typedef sequence<octet> ObjectTag;
22
23         struct ObjectInfo {
24             string repoid;
25             ObjectTag tag;
26         };
27
28         typedef sequence<ObjectInfo> ObjectInfoList;
29
30         attribute ActivationMode mode;
31         attribute ObjectInfoList objs;
32         readonly attribute string name;
33         attribute string command;
34         readonly attribute string tostring;
35     };
36
37     /*
38      * Implementation Repository
39      */
40     interface ImplRepository {
41         typedef sequence<ImplementationDef> ImplDefSeq;
42
43         ImplementationDef restore (in string asstring);
44         ImplementationDef create (in ImplementationDef::ActivationMode mode,
45                                   in ImplementationDef::ObjectInfoList objs,
46                                   in string name,
47                                   in string command);
48         void destroy (in ImplementationDef impl_def);
49         ImplDefSeq find_by_name (in string name);
50         ImplDefSeq find_by_repoid (in string repoid);
51         ImplDefSeq find_by_repoid_tag (in string repoid,
52                                        in ImplementationDef::ObjectTag tag);
53         ImplDefSeq find_all ();
54     };
55
56     /*
57      * interface provided by an object adapter to the mediator
58      */
59     interface OAServer {
60         typedef sequence<Object> ObjSeq;
61
62         oneway void restore_request (in ObjSeq objs);
63         oneway void obj_inactive (in Object obj);
64         oneway void impl_inactive ();
65     };
66
67     /*
68      * object adapter mediator
69      */
70     interface OAMediator {
71         typedef sequence<octet> RefData;
72         typedef sequence<Object> ObjSeq;
73         typedef unsigned long ServerId;
74
75         void create_obj (in Object objref, in RefData id,
76                          out Object remote_objref, in ServerId svid);
77         void restore_obj (in Object objref, inout Object remote_objref,
78                           out RefData id, in ServerId svid);
79         oneway void activate_obj (in Object objref, in ServerId svid);
80         oneway void deactivate_obj (in Object objref, in ServerId svid);
81         oneway void migrate_obj (in Object objref, in ServerId svid,
82                                  in ImplementationDef impl);
83         oneway void orphan_obj (in Object objref, in ServerId svid);
84         oneway void dispose_obj (in Object objref, in ServerId svid);
85
86         void create_impl (in ImplementationDef impl,
87                           in OAServer server, inout ServerId id);
88         oneway void activate_impl (in ServerId id);
89         oneway void deactivate_impl (in ServerId id);
90         Object get_remote_object (in RefData key);
91
92         /*
93          * this cannot be oneway, because we must be sure the
94          * mediator has has seen the dispose_impl() before the
95          * server exists
96          */
97         void dispose_impl (in ServerId id);
98
99         ObjSeq get_restore_objs (in ServerId id);
100
101         // admin interface
102         boolean force_activation (in ImplementationDef impl);
103     };
104
105     /*
106      * POA Mediator
107      */
108
109     interface POAMediator {
110       string create_impl (in string svid, in string ior);
111       void activate_impl (in string svid);
112       void deactivate_impl (in string svid);
113
114       // admin interface
115       boolean force_activation (in ImplementationDef impl);
116       boolean hold (in ImplementationDef impl);
117       boolean stop (in ImplementationDef impl);
118       boolean continue (in ImplementationDef impl);
119       void shutdown_server();
120     };
121 };