00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
#ifndef ___ADMIN_RPC_ADMIN_H
00015
#define ___ADMIN_RPC_ADMIN_H
00016
00017
#include <NMSTL/rpc>
00018
#include "CPViewDescription.h"
00019
#include "Name.h"
00020
#include "Query.h"
00021
#include "Schema.h"
00022
#include "Stats.h"
00023
#include "StreamDef.h"
00024
00025 namespace Borealis {
class Admin; };
00026
00027
00028 NMSTL_NAMESPACE_BEGIN;
00029
00030
#ifdef DOXYGEN_SKIP
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
template<
typename T>
class Remote;
00042 class Remote<Borealis::
Admin> {
00043
public:
00046
void create_schema(
const Callback<
void, RPC< void > >& completion,
00047 Schema schema);
00048
00050 RPC< void >
create_schema(Schema schema);
00051
00054
void create_stream(
const Callback<
void, RPC< void > >& completion,
00055 StreamDef streamdef);
00056
00058 RPC< void >
create_stream(StreamDef streamdef);
00059
00062
void create_cp(
const Callback<
void, RPC< void > >& completion,
00063 CPViewDescription view_desc, StreamDef streamdef);
00064
00066 RPC< void >
create_cp(CPViewDescription view_desc, StreamDef streamdef);
00067
00070
void create_query(
const Callback<
void, RPC< void > >& completion,
00071 Query query);
00072
00074 RPC< void >
create_query(Query query);
00075
00078
void create_query_xml(
const Callback<
void, RPC< void > >& completion,
00079 string query);
00080
00082 RPC< void >
create_query_xml(string query);
00083
00086
void set_query_status(
const Callback<
void, RPC< void > >& completion,
00087 Name name, QueryStatus status);
00088
00090 RPC< void >
set_query_status(Name name, QueryStatus status);
00091
00094
void set_queries_status(
const Callback<
void, RPC< void > >& completion,
00095 vector<Name> name, QueryStatus status);
00096
00098 RPC< void >
set_queries_status(vector<Name> name, QueryStatus status);
00099
00102
void subscribe(
const Callback<
void, RPC< void > >& completion,
00103 Subscription sub,
unsigned int add_or_remove);
00104
00106 RPC< void >
subscribe(Subscription sub,
unsigned int add_or_remove);
00107
00110
void subscribe_many(
const Callback<
void, RPC< void > >& completion,
00111 vector<Subscription> sub,
unsigned int add_or_remove);
00112
00114 RPC< void >
subscribe_many(vector<Subscription> sub,
unsigned int add_or_remove);
00115
00118
void create_and_start_queries(
const Callback<
void, RPC< void > >& completion,
00119 vector<Query> queries);
00120
00122 RPC< void >
create_and_start_queries(vector<Query> queries);
00123
00126
void queries_and_subscriptions(
const Callback<
void, RPC< void > >& completion,
00127 vector<Query> queries, vector<Subscription> subs,
unsigned int add_or_remove);
00128
00130 RPC< void >
queries_and_subscriptions(vector<Query> queries, vector<Subscription> subs,
unsigned int add_or_remove);
00131
00134
void move_load(
const Callback<
void, RPC< void > >& completion,
00135 vector<Name> query_names, string partner);
00136
00138 RPC< void >
move_load(vector<Name> query_names, string partner);
00139
00142
void split_query(
const Callback<
void, RPC< void > >& completion,
00143 Name query_hunk_name, map<Name, vector<Name> > boxes_per_hunk);
00144
00146 RPC< void >
split_query(Name query_hunk_name, map<Name, vector<Name> > boxes_per_hunk);
00147
00150
void merge_query(
const Callback<
void, RPC< void > >& completion,
00151 vector<Name> existing_query_hunk_names, Name new_query_hunk_name);
00152
00154 RPC< void >
merge_query(vector<Name> existing_query_hunk_names, Name new_query_hunk_name);
00155
00158
void add_stream_observer(
const Callback<
void, RPC< InputStreamInfo > >& completion);
00159
00162
void add_query_observer(
const Callback<
void, RPC< Query > >& completion);
00163
00166
void add_sub_observer(
const Callback<
void, RPC< vector<Subscription> > >& completion);
00167
00168 };
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
#else // !defined(DOXYGEN_SKIP)
00182
00183
namespace __nmstl_tmp_rpc_defs {
00184
template<
typename X>
struct RPCDefs;
00185
template<
typename X>
struct Remote;
00186
using namespace Borealis;
00187
template<>
00188
struct RPCDefs<Borealis::
Admin> {
00189
static const int create_schema_METHOD_ID = 20000;
00190
struct create_schema_IN :
public rpc_request_1< void > {
00191 Schema schema;
00192 create_schema_IN() {}
00193 create_schema_IN(Schema schema) : schema(schema) {}
00194 rpc_message *clone()
const {
return new create_schema_IN(*
this); }
00195 string as_string()
const {
00196 string out;
00197 out <<
"create_schema_IN{" <<
"schema=" << schema <<
"}";
00198
return out;
00199 }
00200 NMSTL_SIMPLY_SERIALIZABLE(create_schema_IN, << Serial::tag(
"param") << schema );
00201 NMSTL_SERIAL_TAG(create_schema_IN,
"params");
00202 };
00203
class create_schema_OUT {
00204 RPCStatus m_stat;
00205
public:
00206 operator const void * ()
const {
return m_stat; }
00207
const RPCStatus& stat()
const {
return m_stat; }
00208
bool get()
const {
return true; }
00209 };
00210
static const int create_stream_METHOD_ID = 20001;
00211
struct create_stream_IN :
public rpc_request_1< void > {
00212 StreamDef streamdef;
00213 create_stream_IN() {}
00214 create_stream_IN(StreamDef streamdef) : streamdef(streamdef) {}
00215 rpc_message *clone()
const {
return new create_stream_IN(*
this); }
00216 string as_string()
const {
00217 string out;
00218 out <<
"create_stream_IN{" <<
"streamdef=" << streamdef <<
"}";
00219
return out;
00220 }
00221 NMSTL_SIMPLY_SERIALIZABLE(create_stream_IN, << Serial::tag(
"param") << streamdef );
00222 NMSTL_SERIAL_TAG(create_stream_IN,
"params");
00223 };
00224
class create_stream_OUT {
00225 RPCStatus m_stat;
00226
public:
00227 operator const void * ()
const {
return m_stat; }
00228
const RPCStatus& stat()
const {
return m_stat; }
00229
bool get()
const {
return true; }
00230 };
00231
static const int create_cp_METHOD_ID = 20002;
00232
struct create_cp_IN :
public rpc_request_1< void > {
00233 CPViewDescription view_desc; StreamDef streamdef;
00234 create_cp_IN() {}
00235 create_cp_IN(CPViewDescription view_desc, StreamDef streamdef) : view_desc(view_desc), streamdef(streamdef) {}
00236 rpc_message *clone()
const {
return new create_cp_IN(*
this); }
00237 string as_string()
const {
00238 string out;
00239 out <<
"create_cp_IN{" <<
"view_desc=" << view_desc <<
", streamdef=" << streamdef <<
"}";
00240
return out;
00241 }
00242 NMSTL_SIMPLY_SERIALIZABLE(create_cp_IN, << Serial::tag(
"param") << view_desc << streamdef );
00243 NMSTL_SERIAL_TAG(create_cp_IN,
"params");
00244 };
00245
class create_cp_OUT {
00246 RPCStatus m_stat;
00247
public:
00248 operator const void * ()
const {
return m_stat; }
00249
const RPCStatus& stat()
const {
return m_stat; }
00250
bool get()
const {
return true; }
00251 };
00252
static const int create_query_METHOD_ID = 20003;
00253
struct create_query_IN :
public rpc_request_1< void > {
00254 Query query;
00255 create_query_IN() {}
00256 create_query_IN(Query query) : query(query) {}
00257 rpc_message *clone()
const {
return new create_query_IN(*
this); }
00258 string as_string()
const {
00259 string out;
00260 out <<
"create_query_IN{" <<
"query=" << query <<
"}";
00261
return out;
00262 }
00263 NMSTL_SIMPLY_SERIALIZABLE(create_query_IN, << Serial::tag(
"param") << query );
00264 NMSTL_SERIAL_TAG(create_query_IN,
"params");
00265 };
00266
class create_query_OUT {
00267 RPCStatus m_stat;
00268
public:
00269 operator const void * ()
const {
return m_stat; }
00270
const RPCStatus& stat()
const {
return m_stat; }
00271
bool get()
const {
return true; }
00272 };
00273
static const int create_query_xml_METHOD_ID = 20004;
00274
struct create_query_xml_IN :
public rpc_request_1< void > {
00275 string query;
00276 create_query_xml_IN() {}
00277 create_query_xml_IN(string query) : query(query) {}
00278 rpc_message *clone()
const {
return new create_query_xml_IN(*
this); }
00279 string as_string()
const {
00280 string out;
00281 out <<
"create_query_xml_IN{" <<
"query=" << query <<
"}";
00282
return out;
00283 }
00284 NMSTL_SIMPLY_SERIALIZABLE(create_query_xml_IN, << Serial::tag(
"param") << query );
00285 NMSTL_SERIAL_TAG(create_query_xml_IN,
"params");
00286 };
00287
class create_query_xml_OUT {
00288 RPCStatus m_stat;
00289
public:
00290 operator const void * ()
const {
return m_stat; }
00291
const RPCStatus& stat()
const {
return m_stat; }
00292
bool get()
const {
return true; }
00293 };
00294
static const int set_query_status_METHOD_ID = 20005;
00295
struct set_query_status_IN :
public rpc_request_1< void > {
00296 Name name; QueryStatus status;
00297 set_query_status_IN() {}
00298 set_query_status_IN(Name name, QueryStatus status) : name(name), status(status) {}
00299 rpc_message *clone()
const {
return new set_query_status_IN(*
this); }
00300 string as_string()
const {
00301 string out;
00302 out <<
"set_query_status_IN{" <<
"name=" << name <<
", status=" << status <<
"}";
00303
return out;
00304 }
00305 NMSTL_SIMPLY_SERIALIZABLE(set_query_status_IN, << Serial::tag(
"param") << name << status );
00306 NMSTL_SERIAL_TAG(set_query_status_IN,
"params");
00307 };
00308
class set_query_status_OUT {
00309 RPCStatus m_stat;
00310
public:
00311 operator const void * ()
const {
return m_stat; }
00312
const RPCStatus& stat()
const {
return m_stat; }
00313
bool get()
const {
return true; }
00314 };
00315
static const int set_queries_status_METHOD_ID = 20006;
00316
struct set_queries_status_IN :
public rpc_request_1< void > {
00317 vector<Name> name; QueryStatus status;
00318 set_queries_status_IN() {}
00319 set_queries_status_IN(vector<Name> name, QueryStatus status) : name(name), status(status) {}
00320 rpc_message *clone()
const {
return new set_queries_status_IN(*
this); }
00321 string as_string()
const {
00322 string out;
00323 out <<
"set_queries_status_IN{" <<
"name=" << name <<
", status=" << status <<
"}";
00324
return out;
00325 }
00326 NMSTL_SIMPLY_SERIALIZABLE(set_queries_status_IN, << Serial::tag(
"param") << name << status );
00327 NMSTL_SERIAL_TAG(set_queries_status_IN,
"params");
00328 };
00329
class set_queries_status_OUT {
00330 RPCStatus m_stat;
00331
public:
00332 operator const void * ()
const {
return m_stat; }
00333
const RPCStatus& stat()
const {
return m_stat; }
00334
bool get()
const {
return true; }
00335 };
00336
static const int subscribe_METHOD_ID = 20007;
00337
struct subscribe_IN :
public rpc_request_1< void > {
00338 Subscription sub;
unsigned int add_or_remove;
00339 subscribe_IN() {}
00340 subscribe_IN(Subscription sub,
unsigned int add_or_remove) : sub(sub), add_or_remove(add_or_remove) {}
00341 rpc_message *clone()
const {
return new subscribe_IN(*
this); }
00342 string as_string()
const {
00343 string out;
00344 out <<
"subscribe_IN{" <<
"sub=" << sub <<
", add_or_remove=" << add_or_remove <<
"}";
00345
return out;
00346 }
00347 NMSTL_SIMPLY_SERIALIZABLE(subscribe_IN, << Serial::tag(
"param") << sub << add_or_remove );
00348 NMSTL_SERIAL_TAG(subscribe_IN,
"params");
00349 };
00350
class subscribe_OUT {
00351 RPCStatus m_stat;
00352
public:
00353 operator const void * ()
const {
return m_stat; }
00354
const RPCStatus& stat()
const {
return m_stat; }
00355
bool get()
const {
return true; }
00356 };
00357
static const int subscribe_many_METHOD_ID = 20008;
00358
struct subscribe_many_IN :
public rpc_request_1< void > {
00359 vector<Subscription> sub;
unsigned int add_or_remove;
00360 subscribe_many_IN() {}
00361 subscribe_many_IN(vector<Subscription> sub,
unsigned int add_or_remove) : sub(sub), add_or_remove(add_or_remove) {}
00362 rpc_message *clone()
const {
return new subscribe_many_IN(*
this); }
00363 string as_string()
const {
00364 string out;
00365 out <<
"subscribe_many_IN{" <<
"sub=" << sub <<
", add_or_remove=" << add_or_remove <<
"}";
00366
return out;
00367 }
00368 NMSTL_SIMPLY_SERIALIZABLE(subscribe_many_IN, << Serial::tag(
"param") << sub << add_or_remove );
00369 NMSTL_SERIAL_TAG(subscribe_many_IN,
"params");
00370 };
00371
class subscribe_many_OUT {
00372 RPCStatus m_stat;
00373
public:
00374 operator const void * ()
const {
return m_stat; }
00375
const RPCStatus& stat()
const {
return m_stat; }
00376
bool get()
const {
return true; }
00377 };
00378
static const int create_and_start_queries_METHOD_ID = 20009;
00379
struct create_and_start_queries_IN :
public rpc_request_1< void > {
00380 vector<Query> queries;
00381 create_and_start_queries_IN() {}
00382 create_and_start_queries_IN(vector<Query> queries) : queries(queries) {}
00383 rpc_message *clone()
const {
return new create_and_start_queries_IN(*
this); }
00384 string as_string()
const {
00385 string out;
00386 out <<
"create_and_start_queries_IN{" <<
"queries=" << queries <<
"}";
00387
return out;
00388 }
00389 NMSTL_SIMPLY_SERIALIZABLE(create_and_start_queries_IN, << Serial::tag(
"param") << queries );
00390 NMSTL_SERIAL_TAG(create_and_start_queries_IN,
"params");
00391 };
00392
class create_and_start_queries_OUT {
00393 RPCStatus m_stat;
00394
public:
00395 operator const void * ()
const {
return m_stat; }
00396
const RPCStatus& stat()
const {
return m_stat; }
00397
bool get()
const {
return true; }
00398 };
00399
static const int queries_and_subscriptions_METHOD_ID = 20010;
00400
struct queries_and_subscriptions_IN :
public rpc_request_1< void > {
00401 vector<Query> queries; vector<Subscription> subs;
unsigned int add_or_remove;
00402 queries_and_subscriptions_IN() {}
00403 queries_and_subscriptions_IN(vector<Query> queries, vector<Subscription> subs,
unsigned int add_or_remove) : queries(queries), subs(subs), add_or_remove(add_or_remove) {}
00404 rpc_message *clone()
const {
return new queries_and_subscriptions_IN(*
this); }
00405 string as_string()
const {
00406 string out;
00407 out <<
"queries_and_subscriptions_IN{" <<
"queries=" << queries <<
", subs=" << subs <<
", add_or_remove=" << add_or_remove <<
"}";
00408
return out;
00409 }
00410 NMSTL_SIMPLY_SERIALIZABLE(queries_and_subscriptions_IN, << Serial::tag(
"param") << queries << subs << add_or_remove );
00411 NMSTL_SERIAL_TAG(queries_and_subscriptions_IN,
"params");
00412 };
00413
class queries_and_subscriptions_OUT {
00414 RPCStatus m_stat;
00415
public:
00416 operator const void * ()
const {
return m_stat; }
00417
const RPCStatus& stat()
const {
return m_stat; }
00418
bool get()
const {
return true; }
00419 };
00420
static const int move_load_METHOD_ID = 20011;
00421
struct move_load_IN :
public rpc_request_1< void > {
00422 vector<Name> query_names; string partner;
00423 move_load_IN() {}
00424 move_load_IN(vector<Name> query_names, string partner) : query_names(query_names), partner(partner) {}
00425 rpc_message *clone()
const {
return new move_load_IN(*
this); }
00426 string as_string()
const {
00427 string out;
00428 out <<
"move_load_IN{" <<
"query_names=" << query_names <<
", partner=" << partner <<
"}";
00429
return out;
00430 }
00431 NMSTL_SIMPLY_SERIALIZABLE(move_load_IN, << Serial::tag(
"param") << query_names << partner );
00432 NMSTL_SERIAL_TAG(move_load_IN,
"params");
00433 };
00434
class move_load_OUT {
00435 RPCStatus m_stat;
00436
public:
00437 operator const void * ()
const {
return m_stat; }
00438
const RPCStatus& stat()
const {
return m_stat; }
00439
bool get()
const {
return true; }
00440 };
00441
static const int split_query_METHOD_ID = 20012;
00442
struct split_query_IN :
public rpc_request_1< void > {
00443 Name query_hunk_name; map<Name, vector<Name> > boxes_per_hunk;
00444 split_query_IN() {}
00445 split_query_IN(Name query_hunk_name, map<Name, vector<Name> > boxes_per_hunk) : query_hunk_name(query_hunk_name), boxes_per_hunk(boxes_per_hunk) {}
00446 rpc_message *clone()
const {
return new split_query_IN(*
this); }
00447 string as_string()
const {
00448 string out;
00449 out <<
"split_query_IN{" <<
"query_hunk_name=" << query_hunk_name <<
", boxes_per_hunk=" << boxes_per_hunk <<
"}";
00450
return out;
00451 }
00452 NMSTL_SIMPLY_SERIALIZABLE(split_query_IN, << Serial::tag(
"param") << query_hunk_name << boxes_per_hunk );
00453 NMSTL_SERIAL_TAG(split_query_IN,
"params");
00454 };
00455
class split_query_OUT {
00456 RPCStatus m_stat;
00457
public:
00458 operator const void * ()
const {
return m_stat; }
00459
const RPCStatus& stat()
const {
return m_stat; }
00460
bool get()
const {
return true; }
00461 };
00462
static const int merge_query_METHOD_ID = 20013;
00463
struct merge_query_IN :
public rpc_request_1< void > {
00464 vector<Name> existing_query_hunk_names; Name new_query_hunk_name;
00465 merge_query_IN() {}
00466 merge_query_IN(vector<Name> existing_query_hunk_names, Name new_query_hunk_name) : existing_query_hunk_names(existing_query_hunk_names), new_query_hunk_name(new_query_hunk_name) {}
00467 rpc_message *clone()
const {
return new merge_query_IN(*
this); }
00468 string as_string()
const {
00469 string out;
00470 out <<
"merge_query_IN{" <<
"existing_query_hunk_names=" << existing_query_hunk_names <<
", new_query_hunk_name=" << new_query_hunk_name <<
"}";
00471
return out;
00472 }
00473 NMSTL_SIMPLY_SERIALIZABLE(merge_query_IN, << Serial::tag(
"param") << existing_query_hunk_names << new_query_hunk_name );
00474 NMSTL_SERIAL_TAG(merge_query_IN,
"params");
00475 };
00476
class merge_query_OUT {
00477 RPCStatus m_stat;
00478
public:
00479 operator const void * ()
const {
return m_stat; }
00480
const RPCStatus& stat()
const {
return m_stat; }
00481
bool get()
const {
return true; }
00482 };
00483
static const int add_stream_observer_METHOD_ID = 20014;
00484
struct add_stream_observer_IN :
public rpc_request_1< InputStreamInfo > {
00485
00486 add_stream_observer_IN() {}
00487 rpc_message *clone()
const {
return new add_stream_observer_IN(*
this); }
00488 string as_string()
const {
00489 string out;
00490 out <<
"add_stream_observer_IN{" <<
"}";
00491
return out;
00492 }
00493 NMSTL_SIMPLY_SERIALIZABLE(add_stream_observer_IN, << Serial::tag(
"param") );
00494 NMSTL_SERIAL_TAG(add_stream_observer_IN,
"params");
00495 };
00496
class add_stream_observer_OUT {
00497 RPCStatus m_stat;
00498 InputStreamInfo m_val;
00499
public:
00500 operator const void * ()
const {
return m_stat; }
00501
const RPCStatus& stat()
const {
return m_stat; }
00502 InputStreamInfo get()
const {
return m_val; }
00503 };
00504
static const int add_query_observer_METHOD_ID = 20015;
00505
struct add_query_observer_IN :
public rpc_request_1< Query > {
00506
00507 add_query_observer_IN() {}
00508 rpc_message *clone()
const {
return new add_query_observer_IN(*
this); }
00509 string as_string()
const {
00510 string out;
00511 out <<
"add_query_observer_IN{" <<
"}";
00512
return out;
00513 }
00514 NMSTL_SIMPLY_SERIALIZABLE(add_query_observer_IN, << Serial::tag(
"param") );
00515 NMSTL_SERIAL_TAG(add_query_observer_IN,
"params");
00516 };
00517
class add_query_observer_OUT {
00518 RPCStatus m_stat;
00519 Query m_val;
00520
public:
00521 operator const void * ()
const {
return m_stat; }
00522
const RPCStatus& stat()
const {
return m_stat; }
00523 Query get()
const {
return m_val; }
00524 };
00525
static const int add_sub_observer_METHOD_ID = 20016;
00526
struct add_sub_observer_IN :
public rpc_request_1< vector<Subscription> > {
00527
00528 add_sub_observer_IN() {}
00529 rpc_message *clone()
const {
return new add_sub_observer_IN(*
this); }
00530 string as_string()
const {
00531 string out;
00532 out <<
"add_sub_observer_IN{" <<
"}";
00533
return out;
00534 }
00535 NMSTL_SIMPLY_SERIALIZABLE(add_sub_observer_IN, << Serial::tag(
"param") );
00536 NMSTL_SERIAL_TAG(add_sub_observer_IN,
"params");
00537 };
00538
class add_sub_observer_OUT {
00539 RPCStatus m_stat;
00540 vector<Subscription> m_val;
00541
public:
00542 operator const void * ()
const {
return m_stat; }
00543
const RPCStatus& stat()
const {
return m_stat; }
00544 vector<Subscription> get()
const {
return m_val; }
00545 };
00546
static const vector<pair<string, int> >& method_list() {
00547
static const pair<string, int> methods[] = {
00548 pair<string, int>(
"create_schema", 20000),
00549 pair<string, int>(
"create_stream", 20001),
00550 pair<string, int>(
"create_cp", 20002),
00551 pair<string, int>(
"create_query", 20003),
00552 pair<string, int>(
"create_query_xml", 20004),
00553 pair<string, int>(
"set_query_status", 20005),
00554 pair<string, int>(
"set_queries_status", 20006),
00555 pair<string, int>(
"subscribe", 20007),
00556 pair<string, int>(
"subscribe_many", 20008),
00557 pair<string, int>(
"create_and_start_queries", 20009),
00558 pair<string, int>(
"queries_and_subscriptions", 20010),
00559 pair<string, int>(
"move_load", 20011),
00560 pair<string, int>(
"split_query", 20012),
00561 pair<string, int>(
"merge_query", 20013),
00562 pair<string, int>(
"add_stream_observer", 20014),
00563 pair<string, int>(
"add_query_observer", 20015),
00564 pair<string, int>(
"add_sub_observer", 20016)
00565 };
00566
static const vector<pair<string, int> > ret(methods, methods +
sizeof methods /
sizeof methods[0]);
00567
return ret;
00568 };
00569
static const map<string, int>& method_id_by_name() {
00570
static const map<string, int> ret(method_list().begin(), method_list().end());
00571
return ret;
00572 }
00573
static const map<int, string>& method_name_by_id() {
00574
static const map<int, string> ret = RPCObject::reverse_map(method_id_by_name());
00575
return ret;
00576 }
00577 };
00578
template<>
00579
class Remote<Borealis::
Admin> :
public RemoteObject {
00580
friend class RPCClient;
00581
protected:
00582 Remote<Borealis::Admin>(RPCClient& cli, rpc_object_id object_id) :
00583 RemoteObject(cli, object_id) {}
00584
00585
public:
00586 Remote<Borealis::Admin>() {}
00587
void create_schema(
const Callback<
void, RPC< void > >& completion, Schema schema)
const {
00588 RPCDefs<Borealis::Admin>::create_schema_IN *req =
00589
new RPCDefs<Borealis::Admin>::create_schema_IN(schema);
00590 req->object_id = object_id();
00591 req->method_id = RPCDefs<Borealis::Admin>::create_schema_METHOD_ID;
00592 req->method_name =
"create_schema";
00593 req->cb = completion;
00594 client().send_request(ptr<rpc_request>(req));
00595 }
00596 RPC< void > create_schema(Schema schema)
const {
00597 RPCDefs<Borealis::Admin>::create_schema_IN *req =
00598
new RPCDefs<Borealis::Admin>::create_schema_IN(schema);
00599 ptr<rpc_request> preq(req);
00600 req->object_id = object_id();
00601 req->method_id = RPCDefs<Borealis::Admin>::create_schema_METHOD_ID;
00602 req->method_name =
"create_schema";
00603
bool done =
false; RPC< void > ret;
00604 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00605 client().send_request(preq);
00606
while (!done && client().block()) ;
00607 req->cb = Callback<void, RPC< void > >();
00608
return ret;
00609 }
00610
typedef const RPCDefs<Borealis::Admin>::create_schema_OUT &create_schema_result;
00611
void create_stream(
const Callback<
void, RPC< void > >& completion, StreamDef streamdef)
const {
00612 RPCDefs<Borealis::Admin>::create_stream_IN *req =
00613
new RPCDefs<Borealis::Admin>::create_stream_IN(streamdef);
00614 req->object_id = object_id();
00615 req->method_id = RPCDefs<Borealis::Admin>::create_stream_METHOD_ID;
00616 req->method_name =
"create_stream";
00617 req->cb = completion;
00618 client().send_request(ptr<rpc_request>(req));
00619 }
00620 RPC< void > create_stream(StreamDef streamdef)
const {
00621 RPCDefs<Borealis::Admin>::create_stream_IN *req =
00622
new RPCDefs<Borealis::Admin>::create_stream_IN(streamdef);
00623 ptr<rpc_request> preq(req);
00624 req->object_id = object_id();
00625 req->method_id = RPCDefs<Borealis::Admin>::create_stream_METHOD_ID;
00626 req->method_name =
"create_stream";
00627
bool done =
false; RPC< void > ret;
00628 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00629 client().send_request(preq);
00630
while (!done && client().block()) ;
00631 req->cb = Callback<void, RPC< void > >();
00632
return ret;
00633 }
00634
typedef const RPCDefs<Borealis::Admin>::create_stream_OUT &create_stream_result;
00635
void create_cp(
const Callback<
void, RPC< void > >& completion, CPViewDescription view_desc, StreamDef streamdef)
const {
00636 RPCDefs<Borealis::Admin>::create_cp_IN *req =
00637
new RPCDefs<Borealis::Admin>::create_cp_IN(view_desc, streamdef);
00638 req->object_id = object_id();
00639 req->method_id = RPCDefs<Borealis::Admin>::create_cp_METHOD_ID;
00640 req->method_name =
"create_cp";
00641 req->cb = completion;
00642 client().send_request(ptr<rpc_request>(req));
00643 }
00644 RPC< void > create_cp(CPViewDescription view_desc, StreamDef streamdef)
const {
00645 RPCDefs<Borealis::Admin>::create_cp_IN *req =
00646
new RPCDefs<Borealis::Admin>::create_cp_IN(view_desc, streamdef);
00647 ptr<rpc_request> preq(req);
00648 req->object_id = object_id();
00649 req->method_id = RPCDefs<Borealis::Admin>::create_cp_METHOD_ID;
00650 req->method_name =
"create_cp";
00651
bool done =
false; RPC< void > ret;
00652 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00653 client().send_request(preq);
00654
while (!done && client().block()) ;
00655 req->cb = Callback<void, RPC< void > >();
00656
return ret;
00657 }
00658
typedef const RPCDefs<Borealis::Admin>::create_cp_OUT &create_cp_result;
00659
void create_query(
const Callback<
void, RPC< void > >& completion, Query query)
const {
00660 RPCDefs<Borealis::Admin>::create_query_IN *req =
00661
new RPCDefs<Borealis::Admin>::create_query_IN(query);
00662 req->object_id = object_id();
00663 req->method_id = RPCDefs<Borealis::Admin>::create_query_METHOD_ID;
00664 req->method_name =
"create_query";
00665 req->cb = completion;
00666 client().send_request(ptr<rpc_request>(req));
00667 }
00668 RPC< void > create_query(Query query)
const {
00669 RPCDefs<Borealis::Admin>::create_query_IN *req =
00670
new RPCDefs<Borealis::Admin>::create_query_IN(query);
00671 ptr<rpc_request> preq(req);
00672 req->object_id = object_id();
00673 req->method_id = RPCDefs<Borealis::Admin>::create_query_METHOD_ID;
00674 req->method_name =
"create_query";
00675
bool done =
false; RPC< void > ret;
00676 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00677 client().send_request(preq);
00678
while (!done && client().block()) ;
00679 req->cb = Callback<void, RPC< void > >();
00680
return ret;
00681 }
00682
typedef const RPCDefs<Borealis::Admin>::create_query_OUT &create_query_result;
00683
void create_query_xml(
const Callback<
void, RPC< void > >& completion, string query)
const {
00684 RPCDefs<Borealis::Admin>::create_query_xml_IN *req =
00685
new RPCDefs<Borealis::Admin>::create_query_xml_IN(query);
00686 req->object_id = object_id();
00687 req->method_id = RPCDefs<Borealis::Admin>::create_query_xml_METHOD_ID;
00688 req->method_name =
"create_query_xml";
00689 req->cb = completion;
00690 client().send_request(ptr<rpc_request>(req));
00691 }
00692 RPC< void > create_query_xml(string query)
const {
00693 RPCDefs<Borealis::Admin>::create_query_xml_IN *req =
00694
new RPCDefs<Borealis::Admin>::create_query_xml_IN(query);
00695 ptr<rpc_request> preq(req);
00696 req->object_id = object_id();
00697 req->method_id = RPCDefs<Borealis::Admin>::create_query_xml_METHOD_ID;
00698 req->method_name =
"create_query_xml";
00699
bool done =
false; RPC< void > ret;
00700 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00701 client().send_request(preq);
00702
while (!done && client().block()) ;
00703 req->cb = Callback<void, RPC< void > >();
00704
return ret;
00705 }
00706
typedef const RPCDefs<Borealis::Admin>::create_query_xml_OUT &create_query_xml_result;
00707
void set_query_status(
const Callback<
void, RPC< void > >& completion, Name name, QueryStatus status)
const {
00708 RPCDefs<Borealis::Admin>::set_query_status_IN *req =
00709
new RPCDefs<Borealis::Admin>::set_query_status_IN(name, status);
00710 req->object_id = object_id();
00711 req->method_id = RPCDefs<Borealis::Admin>::set_query_status_METHOD_ID;
00712 req->method_name =
"set_query_status";
00713 req->cb = completion;
00714 client().send_request(ptr<rpc_request>(req));
00715 }
00716 RPC< void > set_query_status(Name name, QueryStatus status)
const {
00717 RPCDefs<Borealis::Admin>::set_query_status_IN *req =
00718
new RPCDefs<Borealis::Admin>::set_query_status_IN(name, status);
00719 ptr<rpc_request> preq(req);
00720 req->object_id = object_id();
00721 req->method_id = RPCDefs<Borealis::Admin>::set_query_status_METHOD_ID;
00722 req->method_name =
"set_query_status";
00723
bool done =
false; RPC< void > ret;
00724 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00725 client().send_request(preq);
00726
while (!done && client().block()) ;
00727 req->cb = Callback<void, RPC< void > >();
00728
return ret;
00729 }
00730
typedef const RPCDefs<Borealis::Admin>::set_query_status_OUT &set_query_status_result;
00731
void set_queries_status(
const Callback<
void, RPC< void > >& completion, vector<Name> name, QueryStatus status)
const {
00732 RPCDefs<Borealis::Admin>::set_queries_status_IN *req =
00733
new RPCDefs<Borealis::Admin>::set_queries_status_IN(name, status);
00734 req->object_id = object_id();
00735 req->method_id = RPCDefs<Borealis::Admin>::set_queries_status_METHOD_ID;
00736 req->method_name =
"set_queries_status";
00737 req->cb = completion;
00738 client().send_request(ptr<rpc_request>(req));
00739 }
00740 RPC< void > set_queries_status(vector<Name> name, QueryStatus status)
const {
00741 RPCDefs<Borealis::Admin>::set_queries_status_IN *req =
00742
new RPCDefs<Borealis::Admin>::set_queries_status_IN(name, status);
00743 ptr<rpc_request> preq(req);
00744 req->object_id = object_id();
00745 req->method_id = RPCDefs<Borealis::Admin>::set_queries_status_METHOD_ID;
00746 req->method_name =
"set_queries_status";
00747
bool done =
false; RPC< void > ret;
00748 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00749 client().send_request(preq);
00750
while (!done && client().block()) ;
00751 req->cb = Callback<void, RPC< void > >();
00752
return ret;
00753 }
00754
typedef const RPCDefs<Borealis::Admin>::set_queries_status_OUT &set_queries_status_result;
00755
void subscribe(
const Callback<
void, RPC< void > >& completion, Subscription sub,
unsigned int add_or_remove)
const {
00756 RPCDefs<Borealis::Admin>::subscribe_IN *req =
00757
new RPCDefs<Borealis::Admin>::subscribe_IN(sub, add_or_remove);
00758 req->object_id = object_id();
00759 req->method_id = RPCDefs<Borealis::Admin>::subscribe_METHOD_ID;
00760 req->method_name =
"subscribe";
00761 req->cb = completion;
00762 client().send_request(ptr<rpc_request>(req));
00763 }
00764 RPC< void > subscribe(Subscription sub,
unsigned int add_or_remove)
const {
00765 RPCDefs<Borealis::Admin>::subscribe_IN *req =
00766
new RPCDefs<Borealis::Admin>::subscribe_IN(sub, add_or_remove);
00767 ptr<rpc_request> preq(req);
00768 req->object_id = object_id();
00769 req->method_id = RPCDefs<Borealis::Admin>::subscribe_METHOD_ID;
00770 req->method_name =
"subscribe";
00771
bool done =
false; RPC< void > ret;
00772 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00773 client().send_request(preq);
00774
while (!done && client().block()) ;
00775 req->cb = Callback<void, RPC< void > >();
00776
return ret;
00777 }
00778
typedef const RPCDefs<Borealis::Admin>::subscribe_OUT &subscribe_result;
00779
void subscribe_many(
const Callback<
void, RPC< void > >& completion, vector<Subscription> sub,
unsigned int add_or_remove)
const {
00780 RPCDefs<Borealis::Admin>::subscribe_many_IN *req =
00781
new RPCDefs<Borealis::Admin>::subscribe_many_IN(sub, add_or_remove);
00782 req->object_id = object_id();
00783 req->method_id = RPCDefs<Borealis::Admin>::subscribe_many_METHOD_ID;
00784 req->method_name =
"subscribe_many";
00785 req->cb = completion;
00786 client().send_request(ptr<rpc_request>(req));
00787 }
00788 RPC< void > subscribe_many(vector<Subscription> sub,
unsigned int add_or_remove)
const {
00789 RPCDefs<Borealis::Admin>::subscribe_many_IN *req =
00790
new RPCDefs<Borealis::Admin>::subscribe_many_IN(sub, add_or_remove);
00791 ptr<rpc_request> preq(req);
00792 req->object_id = object_id();
00793 req->method_id = RPCDefs<Borealis::Admin>::subscribe_many_METHOD_ID;
00794 req->method_name =
"subscribe_many";
00795
bool done =
false; RPC< void > ret;
00796 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00797 client().send_request(preq);
00798
while (!done && client().block()) ;
00799 req->cb = Callback<void, RPC< void > >();
00800
return ret;
00801 }
00802
typedef const RPCDefs<Borealis::Admin>::subscribe_many_OUT &subscribe_many_result;
00803
void create_and_start_queries(
const Callback<
void, RPC< void > >& completion, vector<Query> queries)
const {
00804 RPCDefs<Borealis::Admin>::create_and_start_queries_IN *req =
00805
new RPCDefs<Borealis::Admin>::create_and_start_queries_IN(queries);
00806 req->object_id = object_id();
00807 req->method_id = RPCDefs<Borealis::Admin>::create_and_start_queries_METHOD_ID;
00808 req->method_name =
"create_and_start_queries";
00809 req->cb = completion;
00810 client().send_request(ptr<rpc_request>(req));
00811 }
00812 RPC< void > create_and_start_queries(vector<Query> queries)
const {
00813 RPCDefs<Borealis::Admin>::create_and_start_queries_IN *req =
00814
new RPCDefs<Borealis::Admin>::create_and_start_queries_IN(queries);
00815 ptr<rpc_request> preq(req);
00816 req->object_id = object_id();
00817 req->method_id = RPCDefs<Borealis::Admin>::create_and_start_queries_METHOD_ID;
00818 req->method_name =
"create_and_start_queries";
00819
bool done =
false; RPC< void > ret;
00820 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00821 client().send_request(preq);
00822
while (!done && client().block()) ;
00823 req->cb = Callback<void, RPC< void > >();
00824
return ret;
00825 }
00826
typedef const RPCDefs<Borealis::Admin>::create_and_start_queries_OUT &create_and_start_queries_result;
00827
void queries_and_subscriptions(
const Callback<
void, RPC< void > >& completion, vector<Query> queries, vector<Subscription> subs,
unsigned int add_or_remove)
const {
00828 RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN *req =
00829
new RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN(queries, subs, add_or_remove);
00830 req->object_id = object_id();
00831 req->method_id = RPCDefs<Borealis::Admin>::queries_and_subscriptions_METHOD_ID;
00832 req->method_name =
"queries_and_subscriptions";
00833 req->cb = completion;
00834 client().send_request(ptr<rpc_request>(req));
00835 }
00836 RPC< void > queries_and_subscriptions(vector<Query> queries, vector<Subscription> subs,
unsigned int add_or_remove)
const {
00837 RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN *req =
00838
new RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN(queries, subs, add_or_remove);
00839 ptr<rpc_request> preq(req);
00840 req->object_id = object_id();
00841 req->method_id = RPCDefs<Borealis::Admin>::queries_and_subscriptions_METHOD_ID;
00842 req->method_name =
"queries_and_subscriptions";
00843
bool done =
false; RPC< void > ret;
00844 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00845 client().send_request(preq);
00846
while (!done && client().block()) ;
00847 req->cb = Callback<void, RPC< void > >();
00848
return ret;
00849 }
00850
typedef const RPCDefs<Borealis::Admin>::queries_and_subscriptions_OUT &queries_and_subscriptions_result;
00851
void move_load(
const Callback<
void, RPC< void > >& completion, vector<Name> query_names, string partner)
const {
00852 RPCDefs<Borealis::Admin>::move_load_IN *req =
00853
new RPCDefs<Borealis::Admin>::move_load_IN(query_names, partner);
00854 req->object_id = object_id();
00855 req->method_id = RPCDefs<Borealis::Admin>::move_load_METHOD_ID;
00856 req->method_name =
"move_load";
00857 req->cb = completion;
00858 client().send_request(ptr<rpc_request>(req));
00859 }
00860 RPC< void > move_load(vector<Name> query_names, string partner)
const {
00861 RPCDefs<Borealis::Admin>::move_load_IN *req =
00862
new RPCDefs<Borealis::Admin>::move_load_IN(query_names, partner);
00863 ptr<rpc_request> preq(req);
00864 req->object_id = object_id();
00865 req->method_id = RPCDefs<Borealis::Admin>::move_load_METHOD_ID;
00866 req->method_name =
"move_load";
00867
bool done =
false; RPC< void > ret;
00868 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00869 client().send_request(preq);
00870
while (!done && client().block()) ;
00871 req->cb = Callback<void, RPC< void > >();
00872
return ret;
00873 }
00874
typedef const RPCDefs<Borealis::Admin>::move_load_OUT &move_load_result;
00875
void split_query(
const Callback<
void, RPC< void > >& completion, Name query_hunk_name, map<Name, vector<Name> > boxes_per_hunk)
const {
00876 RPCDefs<Borealis::Admin>::split_query_IN *req =
00877
new RPCDefs<Borealis::Admin>::split_query_IN(query_hunk_name, boxes_per_hunk);
00878 req->object_id = object_id();
00879 req->method_id = RPCDefs<Borealis::Admin>::split_query_METHOD_ID;
00880 req->method_name =
"split_query";
00881 req->cb = completion;
00882 client().send_request(ptr<rpc_request>(req));
00883 }
00884 RPC< void > split_query(Name query_hunk_name, map<Name, vector<Name> > boxes_per_hunk)
const {
00885 RPCDefs<Borealis::Admin>::split_query_IN *req =
00886
new RPCDefs<Borealis::Admin>::split_query_IN(query_hunk_name, boxes_per_hunk);
00887 ptr<rpc_request> preq(req);
00888 req->object_id = object_id();
00889 req->method_id = RPCDefs<Borealis::Admin>::split_query_METHOD_ID;
00890 req->method_name =
"split_query";
00891
bool done =
false; RPC< void > ret;
00892 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00893 client().send_request(preq);
00894
while (!done && client().block()) ;
00895 req->cb = Callback<void, RPC< void > >();
00896
return ret;
00897 }
00898
typedef const RPCDefs<Borealis::Admin>::split_query_OUT &split_query_result;
00899
void merge_query(
const Callback<
void, RPC< void > >& completion, vector<Name> existing_query_hunk_names, Name new_query_hunk_name)
const {
00900 RPCDefs<Borealis::Admin>::merge_query_IN *req =
00901
new RPCDefs<Borealis::Admin>::merge_query_IN(existing_query_hunk_names, new_query_hunk_name);
00902 req->object_id = object_id();
00903 req->method_id = RPCDefs<Borealis::Admin>::merge_query_METHOD_ID;
00904 req->method_name =
"merge_query";
00905 req->cb = completion;
00906 client().send_request(ptr<rpc_request>(req));
00907 }
00908 RPC< void > merge_query(vector<Name> existing_query_hunk_names, Name new_query_hunk_name)
const {
00909 RPCDefs<Borealis::Admin>::merge_query_IN *req =
00910
new RPCDefs<Borealis::Admin>::merge_query_IN(existing_query_hunk_names, new_query_hunk_name);
00911 ptr<rpc_request> preq(req);
00912 req->object_id = object_id();
00913 req->method_id = RPCDefs<Borealis::Admin>::merge_query_METHOD_ID;
00914 req->method_name =
"merge_query";
00915
bool done =
false; RPC< void > ret;
00916 req->cb = wrap(&rpc_sync_completion< void >, &done, &ret);
00917 client().send_request(preq);
00918
while (!done && client().block()) ;
00919 req->cb = Callback<void, RPC< void > >();
00920
return ret;
00921 }
00922
typedef const RPCDefs<Borealis::Admin>::merge_query_OUT &merge_query_result;
00923
void add_stream_observer(
const Callback<
void, RPC< InputStreamInfo > >& completion)
const {
00924 RPCDefs<Borealis::Admin>::add_stream_observer_IN *req =
00925
new RPCDefs<Borealis::Admin>::add_stream_observer_IN();
00926 req->object_id = object_id();
00927 req->method_id = RPCDefs<Borealis::Admin>::add_stream_observer_METHOD_ID;
00928 req->method_name =
"add_stream_observer";
00929 req->cb = completion;
00930 client().send_request(ptr<rpc_request>(req));
00931 }
00932
void add_query_observer(
const Callback<
void, RPC< Query > >& completion)
const {
00933 RPCDefs<Borealis::Admin>::add_query_observer_IN *req =
00934
new RPCDefs<Borealis::Admin>::add_query_observer_IN();
00935 req->object_id = object_id();
00936 req->method_id = RPCDefs<Borealis::Admin>::add_query_observer_METHOD_ID;
00937 req->method_name =
"add_query_observer";
00938 req->cb = completion;
00939 client().send_request(ptr<rpc_request>(req));
00940 }
00941
void add_sub_observer(
const Callback<
void, RPC< vector<Subscription> > >& completion)
const {
00942 RPCDefs<Borealis::Admin>::add_sub_observer_IN *req =
00943
new RPCDefs<Borealis::Admin>::add_sub_observer_IN();
00944 req->object_id = object_id();
00945 req->method_id = RPCDefs<Borealis::Admin>::add_sub_observer_METHOD_ID;
00946 req->method_name =
"add_sub_observer";
00947 req->cb = completion;
00948 client().send_request(ptr<rpc_request>(req));
00949 }
00950 };
00951 };
00952
template<>
struct RPCDefs<Borealis::
Admin> : __nmstl_tmp_rpc_defs::RPCDefs<Borealis::Admin> {};
00953
template<>
struct Remote<Borealis::
Admin> : __nmstl_tmp_rpc_defs::Remote<Borealis::Admin> {
00954 Remote<Borealis::Admin>() {}
00955 Remote<Borealis::Admin>(RPCClient& cli, rpc_object_id object_id) :
00956 __nmstl_tmp_rpc_defs::Remote<Borealis::Admin>(cli, object_id) {}
00957
00958 Remote<Borealis::Admin>(
const __nmstl_tmp_rpc_defs::Remote<Borealis::Admin>& x) :
00959 __nmstl_tmp_rpc_defs::Remote<Borealis::Admin>(x) {}
00960 };
00961
00962
00963
#endif // !defined(DOXYGEN_SKIP)
00964
00965 NMSTL_NAMESPACE_END;
00966
00967
#endif // !defined(___ADMIN_RPC_ADMIN_H)
00968
00969
00970
00971
00972
00973
#ifdef NMSTL_RPC_DEFINE
00974
00975
#include <string>
00976
#include <map>
00977
#include <NMSTL/rpc>
00978
00979
void Borealis::Admin::handle_request(
const NMSTL::RPCObject::response_cb& cb,
const NMSTL::ptr<NMSTL::rpc_request>& req) {
00980
switch(req->method_id) {
00981
case NMSTL::RPCDefs<Borealis::Admin>::create_schema_METHOD_ID:
00982 {
00983
const NMSTL::RPCDefs<Borealis::Admin>::create_schema_IN* inp =
00984 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::create_schema_IN*>(req.get());
00985
00986
if (!inp) {
00987 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
00988
" to Borealis::Admin::create_schema; expected " +
00989
typeid(NMSTL::RPCDefs<Borealis::Admin>::create_schema_IN);
00990 WARN << err;
00991 cb(err, 0,
true);
00992
return;
00993 }
00994
00995
const NMSTL::RPCDefs<Borealis::Admin>::create_schema_IN& in = *inp;
00996 NMSTL::AsyncRPC< void > pending = create_schema(in.schema);
00997 pending.set_response_handler(cb);
00998
break;
00999 }
01000
case NMSTL::RPCDefs<Borealis::Admin>::create_stream_METHOD_ID:
01001 {
01002
const NMSTL::RPCDefs<Borealis::Admin>::create_stream_IN* inp =
01003 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::create_stream_IN*>(req.get());
01004
01005
if (!inp) {
01006 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01007
" to Borealis::Admin::create_stream; expected " +
01008
typeid(NMSTL::RPCDefs<Borealis::Admin>::create_stream_IN);
01009 WARN << err;
01010 cb(err, 0,
true);
01011
return;
01012 }
01013
01014
const NMSTL::RPCDefs<Borealis::Admin>::create_stream_IN& in = *inp;
01015 NMSTL::AsyncRPC< void > pending = create_stream(in.streamdef);
01016 pending.set_response_handler(cb);
01017
break;
01018 }
01019
case NMSTL::RPCDefs<Borealis::Admin>::create_cp_METHOD_ID:
01020 {
01021
const NMSTL::RPCDefs<Borealis::Admin>::create_cp_IN* inp =
01022 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::create_cp_IN*>(req.get());
01023
01024
if (!inp) {
01025 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01026
" to Borealis::Admin::create_cp; expected " +
01027
typeid(NMSTL::RPCDefs<Borealis::Admin>::create_cp_IN);
01028 WARN << err;
01029 cb(err, 0,
true);
01030
return;
01031 }
01032
01033
const NMSTL::RPCDefs<Borealis::Admin>::create_cp_IN& in = *inp;
01034 NMSTL::AsyncRPC< void > pending = create_cp(in.view_desc, in.streamdef);
01035 pending.set_response_handler(cb);
01036
break;
01037 }
01038
case NMSTL::RPCDefs<Borealis::Admin>::create_query_METHOD_ID:
01039 {
01040
const NMSTL::RPCDefs<Borealis::Admin>::create_query_IN* inp =
01041 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::create_query_IN*>(req.get());
01042
01043
if (!inp) {
01044 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01045
" to Borealis::Admin::create_query; expected " +
01046
typeid(NMSTL::RPCDefs<Borealis::Admin>::create_query_IN);
01047 WARN << err;
01048 cb(err, 0,
true);
01049
return;
01050 }
01051
01052
const NMSTL::RPCDefs<Borealis::Admin>::create_query_IN& in = *inp;
01053 NMSTL::AsyncRPC< void > pending = create_query(in.query);
01054 pending.set_response_handler(cb);
01055
break;
01056 }
01057
case NMSTL::RPCDefs<Borealis::Admin>::create_query_xml_METHOD_ID:
01058 {
01059
const NMSTL::RPCDefs<Borealis::Admin>::create_query_xml_IN* inp =
01060 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::create_query_xml_IN*>(req.get());
01061
01062
if (!inp) {
01063 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01064
" to Borealis::Admin::create_query_xml; expected " +
01065
typeid(NMSTL::RPCDefs<Borealis::Admin>::create_query_xml_IN);
01066 WARN << err;
01067 cb(err, 0,
true);
01068
return;
01069 }
01070
01071
const NMSTL::RPCDefs<Borealis::Admin>::create_query_xml_IN& in = *inp;
01072 NMSTL::AsyncRPC< void > pending = create_query_xml(in.query);
01073 pending.set_response_handler(cb);
01074
break;
01075 }
01076
case NMSTL::RPCDefs<Borealis::Admin>::set_query_status_METHOD_ID:
01077 {
01078
const NMSTL::RPCDefs<Borealis::Admin>::set_query_status_IN* inp =
01079 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::set_query_status_IN*>(req.get());
01080
01081
if (!inp) {
01082 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01083
" to Borealis::Admin::set_query_status; expected " +
01084
typeid(NMSTL::RPCDefs<Borealis::Admin>::set_query_status_IN);
01085 WARN << err;
01086 cb(err, 0,
true);
01087
return;
01088 }
01089
01090
const NMSTL::RPCDefs<Borealis::Admin>::set_query_status_IN& in = *inp;
01091 NMSTL::AsyncRPC< void > pending = set_query_status(in.name, in.status);
01092 pending.set_response_handler(cb);
01093
break;
01094 }
01095
case NMSTL::RPCDefs<Borealis::Admin>::set_queries_status_METHOD_ID:
01096 {
01097
const NMSTL::RPCDefs<Borealis::Admin>::set_queries_status_IN* inp =
01098 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::set_queries_status_IN*>(req.get());
01099
01100
if (!inp) {
01101 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01102
" to Borealis::Admin::set_queries_status; expected " +
01103
typeid(NMSTL::RPCDefs<Borealis::Admin>::set_queries_status_IN);
01104 WARN << err;
01105 cb(err, 0,
true);
01106
return;
01107 }
01108
01109
const NMSTL::RPCDefs<Borealis::Admin>::set_queries_status_IN& in = *inp;
01110 NMSTL::AsyncRPC< void > pending = set_queries_status(in.name, in.status);
01111 pending.set_response_handler(cb);
01112
break;
01113 }
01114
case NMSTL::RPCDefs<Borealis::Admin>::subscribe_METHOD_ID:
01115 {
01116
const NMSTL::RPCDefs<Borealis::Admin>::subscribe_IN* inp =
01117 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::subscribe_IN*>(req.get());
01118
01119
if (!inp) {
01120 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01121
" to Borealis::Admin::subscribe; expected " +
01122
typeid(NMSTL::RPCDefs<Borealis::Admin>::subscribe_IN);
01123 WARN << err;
01124 cb(err, 0,
true);
01125
return;
01126 }
01127
01128
const NMSTL::RPCDefs<Borealis::Admin>::subscribe_IN& in = *inp;
01129 NMSTL::AsyncRPC< void > pending = subscribe(in.sub, in.add_or_remove);
01130 pending.set_response_handler(cb);
01131
break;
01132 }
01133
case NMSTL::RPCDefs<Borealis::Admin>::subscribe_many_METHOD_ID:
01134 {
01135
const NMSTL::RPCDefs<Borealis::Admin>::subscribe_many_IN* inp =
01136 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::subscribe_many_IN*>(req.get());
01137
01138
if (!inp) {
01139 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01140
" to Borealis::Admin::subscribe_many; expected " +
01141
typeid(NMSTL::RPCDefs<Borealis::Admin>::subscribe_many_IN);
01142 WARN << err;
01143 cb(err, 0,
true);
01144
return;
01145 }
01146
01147
const NMSTL::RPCDefs<Borealis::Admin>::subscribe_many_IN& in = *inp;
01148 NMSTL::AsyncRPC< void > pending = subscribe_many(in.sub, in.add_or_remove);
01149 pending.set_response_handler(cb);
01150
break;
01151 }
01152
case NMSTL::RPCDefs<Borealis::Admin>::create_and_start_queries_METHOD_ID:
01153 {
01154
const NMSTL::RPCDefs<Borealis::Admin>::create_and_start_queries_IN* inp =
01155 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::create_and_start_queries_IN*>(req.get());
01156
01157
if (!inp) {
01158 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01159
" to Borealis::Admin::create_and_start_queries; expected " +
01160
typeid(NMSTL::RPCDefs<Borealis::Admin>::create_and_start_queries_IN);
01161 WARN << err;
01162 cb(err, 0,
true);
01163
return;
01164 }
01165
01166
const NMSTL::RPCDefs<Borealis::Admin>::create_and_start_queries_IN& in = *inp;
01167 NMSTL::AsyncRPC< void > pending = create_and_start_queries(in.queries);
01168 pending.set_response_handler(cb);
01169
break;
01170 }
01171
case NMSTL::RPCDefs<Borealis::Admin>::queries_and_subscriptions_METHOD_ID:
01172 {
01173
const NMSTL::RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN* inp =
01174 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN*>(req.get());
01175
01176
if (!inp) {
01177 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01178
" to Borealis::Admin::queries_and_subscriptions; expected " +
01179
typeid(NMSTL::RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN);
01180 WARN << err;
01181 cb(err, 0,
true);
01182
return;
01183 }
01184
01185
const NMSTL::RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN& in = *inp;
01186 NMSTL::AsyncRPC< void > pending = queries_and_subscriptions(in.queries, in.subs, in.add_or_remove);
01187 pending.set_response_handler(cb);
01188
break;
01189 }
01190
case NMSTL::RPCDefs<Borealis::Admin>::move_load_METHOD_ID:
01191 {
01192
const NMSTL::RPCDefs<Borealis::Admin>::move_load_IN* inp =
01193 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::move_load_IN*>(req.get());
01194
01195
if (!inp) {
01196 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01197
" to Borealis::Admin::move_load; expected " +
01198
typeid(NMSTL::RPCDefs<Borealis::Admin>::move_load_IN);
01199 WARN << err;
01200 cb(err, 0,
true);
01201
return;
01202 }
01203
01204
const NMSTL::RPCDefs<Borealis::Admin>::move_load_IN& in = *inp;
01205 NMSTL::AsyncRPC< void > pending = move_load(in.query_names, in.partner);
01206 pending.set_response_handler(cb);
01207
break;
01208 }
01209
case NMSTL::RPCDefs<Borealis::Admin>::split_query_METHOD_ID:
01210 {
01211
const NMSTL::RPCDefs<Borealis::Admin>::split_query_IN* inp =
01212 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::split_query_IN*>(req.get());
01213
01214
if (!inp) {
01215 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01216
" to Borealis::Admin::split_query; expected " +
01217
typeid(NMSTL::RPCDefs<Borealis::Admin>::split_query_IN);
01218 WARN << err;
01219 cb(err, 0,
true);
01220
return;
01221 }
01222
01223
const NMSTL::RPCDefs<Borealis::Admin>::split_query_IN& in = *inp;
01224 NMSTL::AsyncRPC< void > pending = split_query(in.query_hunk_name, in.boxes_per_hunk);
01225 pending.set_response_handler(cb);
01226
break;
01227 }
01228
case NMSTL::RPCDefs<Borealis::Admin>::merge_query_METHOD_ID:
01229 {
01230
const NMSTL::RPCDefs<Borealis::Admin>::merge_query_IN* inp =
01231 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::merge_query_IN*>(req.get());
01232
01233
if (!inp) {
01234 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01235
" to Borealis::Admin::merge_query; expected " +
01236
typeid(NMSTL::RPCDefs<Borealis::Admin>::merge_query_IN);
01237 WARN << err;
01238 cb(err, 0,
true);
01239
return;
01240 }
01241
01242
const NMSTL::RPCDefs<Borealis::Admin>::merge_query_IN& in = *inp;
01243 NMSTL::AsyncRPC< void > pending = merge_query(in.existing_query_hunk_names, in.new_query_hunk_name);
01244 pending.set_response_handler(cb);
01245
break;
01246 }
01247
case NMSTL::RPCDefs<Borealis::Admin>::add_stream_observer_METHOD_ID:
01248 {
01249
const NMSTL::RPCDefs<Borealis::Admin>::add_stream_observer_IN* inp =
01250 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::add_stream_observer_IN*>(req.get());
01251
01252
if (!inp) {
01253 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01254
" to Borealis::Admin::add_stream_observer; expected " +
01255
typeid(NMSTL::RPCDefs<Borealis::Admin>::add_stream_observer_IN);
01256 WARN << err;
01257 cb(err, 0,
true);
01258
return;
01259 }
01260
01261 NMSTL::MultiRPC< InputStreamInfo > pending = add_stream_observer();
01262 pending.set_response_handler(cb);
01263
break;
01264 }
01265
case NMSTL::RPCDefs<Borealis::Admin>::add_query_observer_METHOD_ID:
01266 {
01267
const NMSTL::RPCDefs<Borealis::Admin>::add_query_observer_IN* inp =
01268 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::add_query_observer_IN*>(req.get());
01269
01270
if (!inp) {
01271 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01272
" to Borealis::Admin::add_query_observer; expected " +
01273
typeid(NMSTL::RPCDefs<Borealis::Admin>::add_query_observer_IN);
01274 WARN << err;
01275 cb(err, 0,
true);
01276
return;
01277 }
01278
01279 NMSTL::MultiRPC< Query > pending = add_query_observer();
01280 pending.set_response_handler(cb);
01281
break;
01282 }
01283
case NMSTL::RPCDefs<Borealis::Admin>::add_sub_observer_METHOD_ID:
01284 {
01285
const NMSTL::RPCDefs<Borealis::Admin>::add_sub_observer_IN* inp =
01286 dynamic_cast<const NMSTL::RPCDefs<Borealis::Admin>::add_sub_observer_IN*>(req.get());
01287
01288
if (!inp) {
01289 string err = string(
"Invalid RPC request type ") +
typeid(*(req.get())) +
01290
" to Borealis::Admin::add_sub_observer; expected " +
01291
typeid(NMSTL::RPCDefs<Borealis::Admin>::add_sub_observer_IN);
01292 WARN << err;
01293 cb(err, 0,
true);
01294
return;
01295 }
01296
01297 NMSTL::MultiRPC< vector<Subscription> > pending = add_sub_observer();
01298 pending.set_response_handler(cb);
01299
break;
01300 }
01301
default:
01302 string err = string(
"Unknown method_id ") + req->method_id +
" in Borealis::Admin::handle_request";
01303 WARN << err;
01304 cb(err, 0,
true);
01305 }
01306 }
01307
void Borealis::Admin::handle_request(
const response_cb& cb, rpc_id method_id, ISerial& is) {
01308
switch(method_id) {
01309
case RPCDefs<Borealis::Admin>::create_schema_METHOD_ID:
01310 {
01311 RPCDefs<Borealis::Admin>::create_schema_IN in;
01312 is >> in;
01313
if (!is) {
01314 WARN <<
"Invalid RPC request to Borealis::Admin::create_schema: " << is.stat();
01315 cb(is.stat(), 0,
true);
01316
return;
01317 }
01318 DEBUG <<
"Handling create_schema";
01319 AsyncRPC< void > pending = create_schema(in.schema);
01320 pending.set_response_handler(cb);
01321
break;
01322 }
01323
case RPCDefs<Borealis::Admin>::create_stream_METHOD_ID:
01324 {
01325 RPCDefs<Borealis::Admin>::create_stream_IN in;
01326 is >> in;
01327
if (!is) {
01328 WARN <<
"Invalid RPC request to Borealis::Admin::create_stream: " << is.stat();
01329 cb(is.stat(), 0,
true);
01330
return;
01331 }
01332 DEBUG <<
"Handling create_stream";
01333 AsyncRPC< void > pending = create_stream(in.streamdef);
01334 pending.set_response_handler(cb);
01335
break;
01336 }
01337
case RPCDefs<Borealis::Admin>::create_cp_METHOD_ID:
01338 {
01339 RPCDefs<Borealis::Admin>::create_cp_IN in;
01340 is >> in;
01341
if (!is) {
01342 WARN <<
"Invalid RPC request to Borealis::Admin::create_cp: " << is.stat();
01343 cb(is.stat(), 0,
true);
01344
return;
01345 }
01346 DEBUG <<
"Handling create_cp";
01347 AsyncRPC< void > pending = create_cp(in.view_desc, in.streamdef);
01348 pending.set_response_handler(cb);
01349
break;
01350 }
01351
case RPCDefs<Borealis::Admin>::create_query_METHOD_ID:
01352 {
01353 RPCDefs<Borealis::Admin>::create_query_IN in;
01354 is >> in;
01355
if (!is) {
01356 WARN <<
"Invalid RPC request to Borealis::Admin::create_query: " << is.stat();
01357 cb(is.stat(), 0,
true);
01358
return;
01359 }
01360 DEBUG <<
"Handling create_query";
01361 AsyncRPC< void > pending = create_query(in.query);
01362 pending.set_response_handler(cb);
01363
break;
01364 }
01365
case RPCDefs<Borealis::Admin>::create_query_xml_METHOD_ID:
01366 {
01367 RPCDefs<Borealis::Admin>::create_query_xml_IN in;
01368 is >> in;
01369
if (!is) {
01370 WARN <<
"Invalid RPC request to Borealis::Admin::create_query_xml: " << is.stat();
01371 cb(is.stat(), 0,
true);
01372
return;
01373 }
01374 DEBUG <<
"Handling create_query_xml";
01375 AsyncRPC< void > pending = create_query_xml(in.query);
01376 pending.set_response_handler(cb);
01377
break;
01378 }
01379
case RPCDefs<Borealis::Admin>::set_query_status_METHOD_ID:
01380 {
01381 RPCDefs<Borealis::Admin>::set_query_status_IN in;
01382 is >> in;
01383
if (!is) {
01384 WARN <<
"Invalid RPC request to Borealis::Admin::set_query_status: " << is.stat();
01385 cb(is.stat(), 0,
true);
01386
return;
01387 }
01388 DEBUG <<
"Handling set_query_status";
01389 AsyncRPC< void > pending = set_query_status(in.name, in.status);
01390 pending.set_response_handler(cb);
01391
break;
01392 }
01393
case RPCDefs<Borealis::Admin>::set_queries_status_METHOD_ID:
01394 {
01395 RPCDefs<Borealis::Admin>::set_queries_status_IN in;
01396 is >> in;
01397
if (!is) {
01398 WARN <<
"Invalid RPC request to Borealis::Admin::set_queries_status: " << is.stat();
01399 cb(is.stat(), 0,
true);
01400
return;
01401 }
01402 DEBUG <<
"Handling set_queries_status";
01403 AsyncRPC< void > pending = set_queries_status(in.name, in.status);
01404 pending.set_response_handler(cb);
01405
break;
01406 }
01407
case RPCDefs<Borealis::Admin>::subscribe_METHOD_ID:
01408 {
01409 RPCDefs<Borealis::Admin>::subscribe_IN in;
01410 is >> in;
01411
if (!is) {
01412 WARN <<
"Invalid RPC request to Borealis::Admin::subscribe: " << is.stat();
01413 cb(is.stat(), 0,
true);
01414
return;
01415 }
01416 DEBUG <<
"Handling subscribe";
01417 AsyncRPC< void > pending = subscribe(in.sub, in.add_or_remove);
01418 pending.set_response_handler(cb);
01419
break;
01420 }
01421
case RPCDefs<Borealis::Admin>::subscribe_many_METHOD_ID:
01422 {
01423 RPCDefs<Borealis::Admin>::subscribe_many_IN in;
01424 is >> in;
01425
if (!is) {
01426 WARN <<
"Invalid RPC request to Borealis::Admin::subscribe_many: " << is.stat();
01427 cb(is.stat(), 0,
true);
01428
return;
01429 }
01430 DEBUG <<
"Handling subscribe_many";
01431 AsyncRPC< void > pending = subscribe_many(in.sub, in.add_or_remove);
01432 pending.set_response_handler(cb);
01433
break;
01434 }
01435
case RPCDefs<Borealis::Admin>::create_and_start_queries_METHOD_ID:
01436 {
01437 RPCDefs<Borealis::Admin>::create_and_start_queries_IN in;
01438 is >> in;
01439
if (!is) {
01440 WARN <<
"Invalid RPC request to Borealis::Admin::create_and_start_queries: " << is.stat();
01441 cb(is.stat(), 0,
true);
01442
return;
01443 }
01444 DEBUG <<
"Handling create_and_start_queries";
01445 AsyncRPC< void > pending = create_and_start_queries(in.queries);
01446 pending.set_response_handler(cb);
01447
break;
01448 }
01449
case RPCDefs<Borealis::Admin>::queries_and_subscriptions_METHOD_ID:
01450 {
01451 RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN in;
01452 is >> in;
01453
if (!is) {
01454 WARN <<
"Invalid RPC request to Borealis::Admin::queries_and_subscriptions: " << is.stat();
01455 cb(is.stat(), 0,
true);
01456
return;
01457 }
01458 DEBUG <<
"Handling queries_and_subscriptions";
01459 AsyncRPC< void > pending = queries_and_subscriptions(in.queries, in.subs, in.add_or_remove);
01460 pending.set_response_handler(cb);
01461
break;
01462 }
01463
case RPCDefs<Borealis::Admin>::move_load_METHOD_ID:
01464 {
01465 RPCDefs<Borealis::Admin>::move_load_IN in;
01466 is >> in;
01467
if (!is) {
01468 WARN <<
"Invalid RPC request to Borealis::Admin::move_load: " << is.stat();
01469 cb(is.stat(), 0,
true);
01470
return;
01471 }
01472 DEBUG <<
"Handling move_load";
01473 AsyncRPC< void > pending = move_load(in.query_names, in.partner);
01474 pending.set_response_handler(cb);
01475
break;
01476 }
01477
case RPCDefs<Borealis::Admin>::split_query_METHOD_ID:
01478 {
01479 RPCDefs<Borealis::Admin>::split_query_IN in;
01480 is >> in;
01481
if (!is) {
01482 WARN <<
"Invalid RPC request to Borealis::Admin::split_query: " << is.stat();
01483 cb(is.stat(), 0,
true);
01484
return;
01485 }
01486 DEBUG <<
"Handling split_query";
01487 AsyncRPC< void > pending = split_query(in.query_hunk_name, in.boxes_per_hunk);
01488 pending.set_response_handler(cb);
01489
break;
01490 }
01491
case RPCDefs<Borealis::Admin>::merge_query_METHOD_ID:
01492 {
01493 RPCDefs<Borealis::Admin>::merge_query_IN in;
01494 is >> in;
01495
if (!is) {
01496 WARN <<
"Invalid RPC request to Borealis::Admin::merge_query: " << is.stat();
01497 cb(is.stat(), 0,
true);
01498
return;
01499 }
01500 DEBUG <<
"Handling merge_query";
01501 AsyncRPC< void > pending = merge_query(in.existing_query_hunk_names, in.new_query_hunk_name);
01502 pending.set_response_handler(cb);
01503
break;
01504 }
01505
case RPCDefs<Borealis::Admin>::add_stream_observer_METHOD_ID:
01506 {
01507 RPCDefs<Borealis::Admin>::add_stream_observer_IN in;
01508 is >> in;
01509
if (!is) {
01510 WARN <<
"Invalid RPC request to Borealis::Admin::add_stream_observer: " << is.stat();
01511 cb(is.stat(), 0,
true);
01512
return;
01513 }
01514 DEBUG <<
"Handling add_stream_observer";
01515 MultiRPC< InputStreamInfo > pending = add_stream_observer();
01516 pending.set_response_handler(cb);
01517
break;
01518 }
01519
case RPCDefs<Borealis::Admin>::add_query_observer_METHOD_ID:
01520 {
01521 RPCDefs<Borealis::Admin>::add_query_observer_IN in;
01522 is >> in;
01523
if (!is) {
01524 WARN <<
"Invalid RPC request to Borealis::Admin::add_query_observer: " << is.stat();
01525 cb(is.stat(), 0,
true);
01526
return;
01527 }
01528 DEBUG <<
"Handling add_query_observer";
01529 MultiRPC< Query > pending = add_query_observer();
01530 pending.set_response_handler(cb);
01531
break;
01532 }
01533
case RPCDefs<Borealis::Admin>::add_sub_observer_METHOD_ID:
01534 {
01535 RPCDefs<Borealis::Admin>::add_sub_observer_IN in;
01536 is >> in;
01537
if (!is) {
01538 WARN <<
"Invalid RPC request to Borealis::Admin::add_sub_observer: " << is.stat();
01539 cb(is.stat(), 0,
true);
01540
return;
01541 }
01542 DEBUG <<
"Handling add_sub_observer";
01543 MultiRPC< vector<Subscription> > pending = add_sub_observer();
01544 pending.set_response_handler(cb);
01545
break;
01546 }
01547
default:
01548 string err = string(
"Unknown method_id ") + method_id +
" in Borealis::Admin::handle_request";
01549 WARN << err;
01550 cb(err, 0,
true);
01551 }
01552 }
01553 NMSTL::rpc_id Borealis::Admin::method_id_for_name(string method_name) {
01554 map<string, int>::const_iterator i = RPCDefs<Borealis::Admin>::method_id_by_name().find(method_name);
01555
return (i == RPCDefs<Borealis::Admin>::method_id_by_name().end()) ? rpc_id() : i->second;
01556 }
01557 string Borealis::Admin::method_name_for_id(NMSTL::rpc_id method_id) {
01558 map<int, string>::const_iterator i = RPCDefs<Borealis::Admin>::method_name_by_id().find(method_id);
01559
return (i == RPCDefs<Borealis::Admin>::method_name_by_id().end()) ? string() : i->second;
01560 }
01561 NMSTL::ptr<NMSTL::rpc_request> Borealis::Admin::make_request(NMSTL::rpc_id method_id, NMSTL::ISerial& is) {
01562
switch(method_id) {
01563
case NMSTL::RPCDefs<Borealis::Admin>::create_schema_METHOD_ID:
01564 {
01565 NMSTL::RPCDefs<Borealis::Admin>::create_schema_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::create_schema_IN;
01566 NMSTL::ptr<NMSTL::rpc_request> req(in);
01567
if (is >> *in)
return req;
01568 }
01569
case NMSTL::RPCDefs<Borealis::Admin>::create_stream_METHOD_ID:
01570 {
01571 NMSTL::RPCDefs<Borealis::Admin>::create_stream_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::create_stream_IN;
01572 NMSTL::ptr<NMSTL::rpc_request> req(in);
01573
if (is >> *in)
return req;
01574 }
01575
case NMSTL::RPCDefs<Borealis::Admin>::create_cp_METHOD_ID:
01576 {
01577 NMSTL::RPCDefs<Borealis::Admin>::create_cp_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::create_cp_IN;
01578 NMSTL::ptr<NMSTL::rpc_request> req(in);
01579
if (is >> *in)
return req;
01580 }
01581
case NMSTL::RPCDefs<Borealis::Admin>::create_query_METHOD_ID:
01582 {
01583 NMSTL::RPCDefs<Borealis::Admin>::create_query_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::create_query_IN;
01584 NMSTL::ptr<NMSTL::rpc_request> req(in);
01585
if (is >> *in)
return req;
01586 }
01587
case NMSTL::RPCDefs<Borealis::Admin>::create_query_xml_METHOD_ID:
01588 {
01589 NMSTL::RPCDefs<Borealis::Admin>::create_query_xml_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::create_query_xml_IN;
01590 NMSTL::ptr<NMSTL::rpc_request> req(in);
01591
if (is >> *in)
return req;
01592 }
01593
case NMSTL::RPCDefs<Borealis::Admin>::set_query_status_METHOD_ID:
01594 {
01595 NMSTL::RPCDefs<Borealis::Admin>::set_query_status_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::set_query_status_IN;
01596 NMSTL::ptr<NMSTL::rpc_request> req(in);
01597
if (is >> *in)
return req;
01598 }
01599
case NMSTL::RPCDefs<Borealis::Admin>::set_queries_status_METHOD_ID:
01600 {
01601 NMSTL::RPCDefs<Borealis::Admin>::set_queries_status_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::set_queries_status_IN;
01602 NMSTL::ptr<NMSTL::rpc_request> req(in);
01603
if (is >> *in)
return req;
01604 }
01605
case NMSTL::RPCDefs<Borealis::Admin>::subscribe_METHOD_ID:
01606 {
01607 NMSTL::RPCDefs<Borealis::Admin>::subscribe_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::subscribe_IN;
01608 NMSTL::ptr<NMSTL::rpc_request> req(in);
01609
if (is >> *in)
return req;
01610 }
01611
case NMSTL::RPCDefs<Borealis::Admin>::subscribe_many_METHOD_ID:
01612 {
01613 NMSTL::RPCDefs<Borealis::Admin>::subscribe_many_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::subscribe_many_IN;
01614 NMSTL::ptr<NMSTL::rpc_request> req(in);
01615
if (is >> *in)
return req;
01616 }
01617
case NMSTL::RPCDefs<Borealis::Admin>::create_and_start_queries_METHOD_ID:
01618 {
01619 NMSTL::RPCDefs<Borealis::Admin>::create_and_start_queries_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::create_and_start_queries_IN;
01620 NMSTL::ptr<NMSTL::rpc_request> req(in);
01621
if (is >> *in)
return req;
01622 }
01623
case NMSTL::RPCDefs<Borealis::Admin>::queries_and_subscriptions_METHOD_ID:
01624 {
01625 NMSTL::RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::queries_and_subscriptions_IN;
01626 NMSTL::ptr<NMSTL::rpc_request> req(in);
01627
if (is >> *in)
return req;
01628 }
01629
case NMSTL::RPCDefs<Borealis::Admin>::move_load_METHOD_ID:
01630 {
01631 NMSTL::RPCDefs<Borealis::Admin>::move_load_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::move_load_IN;
01632 NMSTL::ptr<NMSTL::rpc_request> req(in);
01633
if (is >> *in)
return req;
01634 }
01635
case NMSTL::RPCDefs<Borealis::Admin>::split_query_METHOD_ID:
01636 {
01637 NMSTL::RPCDefs<Borealis::Admin>::split_query_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::split_query_IN;
01638 NMSTL::ptr<NMSTL::rpc_request> req(in);
01639
if (is >> *in)
return req;
01640 }
01641
case NMSTL::RPCDefs<Borealis::Admin>::merge_query_METHOD_ID:
01642 {
01643 NMSTL::RPCDefs<Borealis::Admin>::merge_query_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::merge_query_IN;
01644 NMSTL::ptr<NMSTL::rpc_request> req(in);
01645
if (is >> *in)
return req;
01646 }
01647
case NMSTL::RPCDefs<Borealis::Admin>::add_stream_observer_METHOD_ID:
01648 {
01649 NMSTL::RPCDefs<Borealis::Admin>::add_stream_observer_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::add_stream_observer_IN;
01650 NMSTL::ptr<NMSTL::rpc_request> req(in);
01651
if (is >> *in)
return req;
01652 }
01653
case NMSTL::RPCDefs<Borealis::Admin>::add_query_observer_METHOD_ID:
01654 {
01655 NMSTL::RPCDefs<Borealis::Admin>::add_query_observer_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::add_query_observer_IN;
01656 NMSTL::ptr<NMSTL::rpc_request> req(in);
01657
if (is >> *in)
return req;
01658 }
01659
case NMSTL::RPCDefs<Borealis::Admin>::add_sub_observer_METHOD_ID:
01660 {
01661 NMSTL::RPCDefs<Borealis::Admin>::add_sub_observer_IN *in =
new NMSTL::RPCDefs<Borealis::Admin>::add_sub_observer_IN;
01662 NMSTL::ptr<NMSTL::rpc_request> req(in);
01663
if (is >> *in)
return req;
01664 }
01665 }
01666
return NMSTL::ptr<NMSTL::rpc_request>();
01667 }
01668
01669
01670
#endif
01671