Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / orbsvcs / ImplRepo_Service / ImR_Locator.idl
blobe4ca1b9a665aadee9d0dd6d3722e7b45c5c25b30
1 // -*- IDL -*-
2 #include "ImR_Activator.idl"
4 module ImplementationRepository
7 interface Locator : AdministrationExt
9 /// Register an activator
10 /// @return Returns a token that can be used (along with activator name) to
11 /// unregister the activator.
12 long register_activator (in string name, in Activator act);
14 /// Unregister an activator. You must pass in the token
15 /// returned from register_activator.
16 void unregister_activator (in string name, in long token);
18 /// Activators call this method to notify death of child
19 /// process including pid to disambiguate child instances
20 void child_death_pid (in string name, in long pid);
22 /// Activators call this method to notify spawn of child
23 /// process to supply pid for reference
24 void spawn_pid (in string name, in long pid);
27 enum UpdateType
29 repo_update,
30 repo_remove,
31 access
34 enum EntityType
36 repo_activator,
37 repo_server
40 struct RepoIdent
42 long repo_id;
43 long repo_type;
46 enum AAM_Status
48 AAM_INIT,
49 AAM_SERVER_STARTED_RUNNING,
50 AAM_WAIT_FOR_RUNNING,
51 AAM_WAIT_FOR_PING,
52 AAM_WAIT_FOR_ALIVE,
53 AAM_WAIT_FOR_DEATH,
54 AAM_SERVER_READY,
55 AAM_SERVER_DEAD,
56 AAM_NOT_MANUAL,
57 AAM_NO_ACTIVATOR,
58 AAM_NO_COMMANDLINE,
59 AAM_RETRIES_EXCEEDED,
60 AAM_UPDATE_FAILED,
61 AAM_ACTIVE_TERMINATE
64 struct RepoInfo
66 EntityType kind;
67 RepoIdent repo;
70 union UpdateAction switch (UpdateType)
72 case repo_update:
73 RepoInfo info;
74 case repo_remove:
75 EntityType kind;
76 case access:
77 AAM_Status state;
80 struct UpdateInfo
82 string name;
83 UpdateAction action;
86 typedef sequence<UpdateInfo> UpdateInfoSeq;
88 exception InvalidPeer
90 string reason;
93 interface UpdatePushNotification
95 /// indicate existing server with name was updated
96 oneway void notify_update (in unsigned long long seq_num, in UpdateInfoSeq info);
98 /// register peer as replica and indicate sequence number
99 void register_replica (in UpdatePushNotification peer,
100 inout string ft_imr_ior,
101 out unsigned long long seq_num)
102 raises (InvalidPeer);