X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Frpc.h;h=36f1c031a525c99991a8a87fb09599e3cce97d33;hb=de25d946733f774e3a5b53a58438a9c92af0acbe;hp=c9acc3b7dde955bd2b47a617500a909355520c20;hpb=5a3a7c969cf6253eb1dcc82e95ad8516cc6acff8;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/rpc.h b/src/modules/rpc.h index c9acc3b7d..36f1c031a 100644 --- a/src/modules/rpc.h +++ b/src/modules/rpc.h @@ -25,27 +25,27 @@ class RPCValue : public classbase protected: RPCValueType type; void *value; - + double *CastInteger() { return (double*)value; } - + std::string *CastString() { return (std::string*)value; } - + RPCObjectContainer *CastObject() { return (RPCObjectContainer*)value; } - + RPCArrayContainer *CastArray() { return (RPCArrayContainer*)value; } - + void DestroyValue() { // Some versions of GCC complain about declaration in switch statements @@ -74,10 +74,10 @@ class RPCValue : public classbase default: break; } - + value = NULL; } - + void InitValue() { switch (type) @@ -100,41 +100,41 @@ class RPCValue : public classbase break; } } - + RPCValue(const RPCValue &v) { } - + public: RPCValue *parent; - RPCValue(RPCValue *parent = NULL) : type(RPCNull), value(NULL), parent(parent) { } - RPCValue(RPCValueType type, RPCValue *parent = NULL) : type(type), value(NULL), parent(parent) { InitValue(); } - RPCValue(bool nvalue, RPCValue *parent = NULL) : type(RPCBoolean), value((void*)nvalue), parent(parent) { } - RPCValue(double nvalue, RPCValue *parent = NULL) : type(RPCInteger), parent(parent) { value = new double(nvalue); } - RPCValue(const std::string &nvalue, RPCValue *parent = NULL) : type(RPCString), parent(parent) { value = new std::string(nvalue); } - + RPCValue(RPCValue *rparent = NULL) : type(RPCNull), value(NULL), parent(rparent) { } + RPCValue(RPCValueType ttype, RPCValue *rparent = NULL) : type(ttype), value(NULL), parent(rparent) { InitValue(); } + RPCValue(bool nvalue, RPCValue *rparent = NULL) : type(RPCBoolean), value((void*)nvalue), parent(rparent) { } + RPCValue(double nvalue, RPCValue *rparent = NULL) : type(RPCInteger), parent(rparent) { value = new double(nvalue); } + RPCValue(const std::string &nvalue, RPCValue *rparent = NULL) : type(RPCString), parent(rparent) { value = new std::string(nvalue); } + virtual ~RPCValue() { DestroyValue(); } - + RPCValueType GetType() { return type; } - + void SetNull() { DestroyValue(); type = RPCNull; } - + void SetBoolean(bool nvalue) { DestroyValue(); value = (void*)nvalue; type = RPCBoolean; } - + void SetInteger(double nvalue) { if (type == RPCInteger) @@ -148,7 +148,7 @@ class RPCValue : public classbase type = RPCInteger; } } - + void SetString(const std::string &nvalue) { if (type == RPCString) @@ -162,7 +162,7 @@ class RPCValue : public classbase type = RPCString; } } - + void SetArray() { if (type == RPCArray) @@ -176,7 +176,7 @@ class RPCValue : public classbase InitValue(); } } - + void SetObject() { if (type == RPCObject) @@ -190,7 +190,7 @@ class RPCValue : public classbase InitValue(); } } - + void ArrayAdd(RPCValue *nvalue) { if (type != RPCArray) @@ -199,7 +199,7 @@ class RPCValue : public classbase a->push_back(nvalue); nvalue->parent = this; } - + void ObjectAdd(const std::string &key, RPCValue *nvalue) { if (type != RPCObject) @@ -208,7 +208,7 @@ class RPCValue : public classbase o->insert(std::make_pair(key, nvalue)); nvalue->parent = this; } - + RPCValue *GetArray(int i) { if (type != RPCArray) @@ -218,7 +218,7 @@ class RPCValue : public classbase return NULL; return a->at(i); } - + int ArraySize() { if (type != RPCArray) @@ -226,7 +226,7 @@ class RPCValue : public classbase RPCArrayContainer *a = this->CastArray(); return a->size(); } - + RPCValue *GetObject(const std::string &key) { if (type != RPCObject) @@ -237,7 +237,7 @@ class RPCValue : public classbase return NULL; return it->second; } - + std::pair GetObjectIterator() { if (type != RPCObject) @@ -245,21 +245,21 @@ class RPCValue : public classbase RPCObjectContainer *o = this->CastObject(); return std::make_pair(o->begin(), o->end()); } - + std::string GetString() { if (type != RPCString) return std::string(); return *this->CastString(); } - + double GetInt() { if (type != RPCInteger) return 0; return *this->CastInteger(); } - + bool GetBool() { if (type != RPCBoolean) @@ -271,7 +271,7 @@ class RPCValue : public classbase class RPCRequest : public classbase { protected: - + public: std::string method; RPCValue *parameters; @@ -279,13 +279,13 @@ class RPCRequest : public classbase std::string provider; bool claimed; std::string error; - - RPCRequest(const std::string &provider, const std::string &method, RPCValue *parameters) - : method(method), parameters(parameters), provider(provider), claimed(false) + + RPCRequest(const std::string &sprovider, const std::string &smethod, RPCValue *rparameters) + : method(smethod), parameters(rparameters), provider(sprovider), claimed(false) { result = new RPCValue(); } - + ~RPCRequest() { if (result)