summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/ImplRepo/Impl_Repo.idl
blob: 780eb7522dd24b272d01fde56eb3a511978861ca (plain)
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
// $Id$

interface simple_object
  // = TITLE
  //    Defines an interface that encapsulates operations that cube
  //    numbers.
  //
  // = DESCRIPTION
  //    This interface encapsulates an operation that cubes a long.
{
  long simple_method (in long l);
  // cube a long

  oneway void shutdown ();
  // shutdown the application.
};

interface Ping_Object  
{    
  oneway void ping ();
  // Used for checking for liveness of a server.  When the server receives
  // this, it should send back a response indicating it is sill alive.  
  // Depending on the policy specified, a timeout can be reached where the
  // Implementation Repository will restart the server.  
};

interface Implementation_Repository
  // = TITLE
  //    Interface for communicating with the Implementation Repository
  //
  // = DESCRIPTION
  //    This interface exports all the administration functionality of
  //    the Implementation Repository.
{
  exception Already_Registered {};
  // Object already bound in the Implementation Repository
  
  exception Cannot_Activate  
  { 
    string reason_;  
  };  
  
  exception Not_Found {};
  // Object not found in the Implementation Repository

  struct Environment_Variable  
  {    
    string name_;    
    string value_;  
  };
  // One environment variable    
  
  struct INET_Addr  
  {    
    unsigned short port_;
    unsigned long host_;  
  };        
  // The location of a server
  
  typedef sequence<Environment_Variable> Environment;  
  // Complete environment

  typedef sequence<string> Command_Line_Options;  
  // Command line options
  
  struct Process_Options  
  {    
    string executable_name_;    
    // Executable name
    Command_Line_Options command_line_options_;     
    // Command line options
    Environment environment_;     
    // Environment    
    string working_directory_;    
    // Working directory    
    unsigned long creation_flags_;    
    // Creation flags
  };  
  
//  Object activate_object (in Object obj)      
//    raises (Not_Found,
//            Cannot_Activate);
  // Restart server that will contain this persistent object and return the
  // new Object reference.      
  //
  // The <Not_Found> exception is raised when <obj> is not found
  // in the Implementation Repository.  The <Cannot_Activate> exception
  // is raised when <obj> is found in the Repository but could not be
  // activated.    
    
//  INET_Addr activate_server (in string server)
//    raises (Not_Found,              
//            Cannot_Activate);
  // Restart server that is named <server> and return the host/port      
  // 
  // The <Not_Found> exception is raised when <server> is not found
  // in the Implementation Repository.  The <Cannot_Activate> exception
  // is raised when <server> is found in the Repository but could not be
  // activated.    
  
  
//  void register_server (in string server,
//                        in Process_Options options)
//    raises (Already_Registered);
  // Restart server process when client is looking for <server>.      
  //
  // The <Already_Registered> exception is raised when <server> has
  // already been registered with the Implementation Repository.      
  // 
  // The <Object_Not_Persistent> exception is raised when <server> is
  // not a Persistent Object Reference.
  
//  void reregister_server (in string server,
//                          in Process_Options options)
//    raises (Already_Registered);
  // Restart server process when client is looking for <server>.      
  //
  // The <Already_Registered> exception is raised when <server> has
  // already been registered with the Implementation Repository.      
  // 
  // The <Object_Not_Persistent> exception is raised when <server> is
  // not a Persistent Object Reference.
  
  
//  void remove_server (in string server)      
//    raises (Not_Found);
  // Remove <server> from the Implementation Repository.      
  //
  // The <Not_Found> exception is raised when <server> is not found
  // in the Implementation Repository.
  
//  Profile server_is_running (in string server,
  void server_is_running (in string server,
                             in INET_Addr addr, 
                             in Ping_Object ping);
  // Used to notify the Implementation Repository that <server> is alive and
  // well at <addr>.    
    
//  void server_is_shutting_down (in string server);
  // Used to tell the Implementation Repository that <server> is shutting
  // down. 
};