00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef TAO_IMR_I_H
00016 #define TAO_IMR_I_H
00017
00018 #include "tao/ImR_Client/ImplRepoC.h"
00019 #include "tao/corba.h"
00020 #include "ace/SString.h"
00021 #include "ace/Auto_Ptr.h"
00022
00023
00024 class TAO_IMR_Op;
00025
00026
00027
00028
00029
00030
00031
00032
00033 class TAO_IMR_i
00034 {
00035 public:
00036
00037
00038 TAO_IMR_i (void);
00039 ~TAO_IMR_i (void);
00040
00041
00042 int run (void);
00043
00044
00045 int init (int argc, char **argv);
00046
00047 private:
00048
00049 void print_usage (void);
00050
00051
00052 int parse_args (void);
00053
00054
00055 int argc_;
00056
00057
00058 ACE_TCHAR **argv_;
00059
00060
00061 CORBA::ORB_var orb_;
00062
00063
00064
00065 ImplementationRepository::Administration_var imr_;
00066
00067
00068 ACE_Auto_Ptr<TAO_IMR_Op> op_;
00069 };
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 class TAO_IMR_Op
00080 {
00081 public:
00082 enum RETURN_CODES {
00083 NORMAL = 0,
00084 UNKNOWN,
00085 NO_PERMISSION,
00086 ALREADY_REGISTERED,
00087 CANNOT_ACTIVATE,
00088 NOT_FOUND
00089 };
00090
00091
00092 static TAO_IMR_Op *make_op (const ACE_TCHAR *op_name);
00093
00094
00095 virtual ~TAO_IMR_Op (void);
00096
00097
00098 virtual int parse (int argc, ACE_TCHAR **argv) = 0;
00099
00100
00101 virtual int run (void) = 0;
00102
00103
00104 void set_imr (ImplementationRepository::Administration_ptr imr);
00105
00106 protected:
00107
00108 ImplementationRepository::Administration_ptr imr_;
00109
00110
00111
00112
00113 void display_server_information (const ImplementationRepository::ServerInformation &info);
00114 };
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124 class TAO_IMR_Op_Activate : public TAO_IMR_Op
00125 {
00126 public:
00127 virtual int parse (int argc, ACE_TCHAR **argv);
00128 virtual int run (void);
00129
00130 protected:
00131
00132 void print_usage (void);
00133
00134
00135 ACE_CString server_name_;
00136 };
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146 class TAO_IMR_Op_Autostart : public TAO_IMR_Op
00147 {
00148 public:
00149 virtual int parse (int argc, ACE_TCHAR **argv);
00150 virtual int run (void);
00151
00152 protected:
00153
00154 void print_usage (void);
00155 };
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166 class TAO_IMR_Op_IOR : public TAO_IMR_Op
00167 {
00168 public:
00169 virtual int parse (int argc, ACE_TCHAR **argv);
00170 virtual int run (void);
00171
00172 protected:
00173
00174 void print_usage (void);
00175
00176
00177 ACE_CString server_name_;
00178
00179
00180 ACE_CString filename_;
00181 };
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192 class TAO_IMR_Op_List : public TAO_IMR_Op
00193 {
00194 public:
00195 TAO_IMR_Op_List (void);
00196
00197 virtual int parse (int argc, ACE_TCHAR **argv);
00198 virtual int run (void);
00199
00200 protected:
00201
00202 void print_usage (void);
00203
00204
00205 ACE_CString server_name_;
00206
00207
00208 int verbose_server_information_;
00209
00210
00211
00212 void display_server_information (const ImplementationRepository::ServerInformation &info);
00213 };
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223 class TAO_IMR_Op_Remove : public TAO_IMR_Op
00224 {
00225 public:
00226 virtual int parse (int argc, ACE_TCHAR **argv);
00227 virtual int run (void);
00228
00229 protected:
00230
00231 void print_usage (void);
00232
00233 ACE_CString server_name_;
00234 };
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244 class TAO_IMR_Op_Shutdown : public TAO_IMR_Op
00245 {
00246 public:
00247 virtual int parse (int argc, ACE_TCHAR **argv);
00248 virtual int run (void);
00249
00250 protected:
00251
00252 void print_usage (void);
00253
00254 ACE_CString server_name_;
00255 };
00256
00257
00258
00259
00260 class TAO_IMR_Op_ShutdownRepo : public TAO_IMR_Op
00261 {
00262 public:
00263 TAO_IMR_Op_ShutdownRepo();
00264 virtual int parse (int argc, ACE_TCHAR **argv);
00265 virtual int run (void);
00266
00267 protected:
00268 void print_usage (void);
00269
00270 bool activators_;
00271 };
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281 class TAO_IMR_Op_Register : public TAO_IMR_Op
00282 {
00283 public:
00284 TAO_IMR_Op_Register(bool is_add);
00285
00286 virtual int parse (int argc, ACE_TCHAR **argv);
00287 virtual int run (void);
00288
00289 protected:
00290
00291
00292 bool is_add_;
00293
00294
00295 void addenv (ACE_TCHAR *opt);
00296
00297
00298 void print_usage (void);
00299
00300
00301 ACE_CString server_name_;
00302
00303 bool set_command_line_;
00304 ACE_CString command_line_;
00305
00306 bool set_environment_vars_;
00307 ImplementationRepository::EnvironmentList environment_vars_;
00308
00309 bool set_working_dir_;
00310 ACE_CString working_dir_;
00311
00312 bool set_activation_;
00313 ImplementationRepository::ActivationMode activation_;
00314
00315 bool set_retry_count_;
00316 int retry_count_;
00317
00318 bool set_activator_;
00319 ACE_CString activator_;
00320 };
00321
00322 #endif