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
|
// -*- IDL -*-
#include "ImR_Activator.idl"
module ImplementationRepository
{
interface Locator : AdministrationExt
{
/// Register an activator
/// @return Returns a token that can be used (along with activator name) to
/// unregister the activator.
long register_activator (in string name, in Activator act);
/// Unregister an activator. You must pass in the token
/// returned from register_activator.
void unregister_activator (in string name, in long token);
/// Activators call this method to notify death of child
/// process including pid to disambiguate child instances
void child_death_pid (in string name, in long pid);
/// Activators call this method to notify spawn of child
/// process to supply pid for reference
void spawn_pid (in string name, in long pid);
};
enum UpdateType
{
repo_update,
repo_remove,
access
};
enum EntityType
{
repo_activator,
repo_server
};
struct RepoIdent
{
long repo_id;
long repo_type;
};
enum AAM_Status
{
AAM_INIT,
AAM_SERVER_STARTED_RUNNING,
AAM_WAIT_FOR_RUNNING,
AAM_WAIT_FOR_PING,
AAM_WAIT_FOR_ALIVE,
AAM_WAIT_FOR_DEATH,
AAM_SERVER_READY,
AAM_SERVER_DEAD,
AAM_NOT_MANUAL,
AAM_NO_ACTIVATOR,
AAM_NO_COMMANDLINE,
AAM_RETRIES_EXCEEDED,
AAM_UPDATE_FAILED,
AAM_ACTIVE_TERMINATE
};
struct RepoInfo
{
EntityType kind;
RepoIdent repo;
};
union UpdateAction switch (UpdateType)
{
case repo_update:
RepoInfo info;
case repo_remove:
EntityType kind;
case access:
AAM_Status state;
};
struct UpdateInfo
{
string name;
UpdateAction action;
};
typedef sequence<UpdateInfo> UpdateInfoSeq;
exception InvalidPeer
{
string reason;
};
interface UpdatePushNotification
{
/// indicate existing server with name was updated
oneway void notify_update (in unsigned long long seq_num, in UpdateInfoSeq info);
/// register peer as replica and indicate sequence number
void register_replica (in UpdatePushNotification peer,
inout string ft_imr_ior,
out unsigned long long seq_num)
raises (InvalidPeer);
};
};
|