mbed client
Fork of simple-mbed-client by
Diff: simple-mbed-client.h
- Revision:
- 1:75015f627e89
- Parent:
- 0:9fa3f3028773
- Child:
- 2:0a015df677a4
--- a/simple-mbed-client.h Sun May 15 20:02:58 2016 +0000 +++ b/simple-mbed-client.h Sun May 15 20:28:07 2016 +0000 @@ -255,6 +255,8 @@ map<string, M2MObject*> objects; map<string, M2MObjectInstance*> objectInstances; map<string, M2MResource*> resources; + // @todo: write this + // map<string, FunctionPointerArg1<void, void*> updateValues; }; class SimpleResourceString { @@ -301,13 +303,58 @@ class SimpleMbedClient : public SimpleMbedClientBase { public: - SimpleResourceString define_resource(const char* route, string v, M2MBase::Operation opr, bool observable) { + + // @todo: macro this up + + SimpleResourceString define_resource( + const char* route, + string v, + M2MBase::Operation opr = M2MBase::GET_PUT_ALLOWED, + bool observable = true, + FunctionPointerArg1<void, string> onUpdate = NULL) + { bool res = define_resource_internal(route, v, opr, observable); if (!res) printf("Error while creating %s\n", route); return *(new SimpleResourceString(this, route)); } + + SimpleResourceString define_resource( + const char* route, + string v, + M2MBase::Operation opr, + bool observable, + void(*onUpdate)(string)) + { + FunctionPointerArg1<void, string> fp; + fp.attach(onUpdate); + return define_resource(route, v, opr, observable, fp); + } - SimpleResourceInt define_resource(const char* route, int v, M2MBase::Operation opr, bool observable) { + SimpleResourceString define_resource( + const char* route, + string v, + FunctionPointerArg1<void, string> onUpdate = NULL) + { + return define_resource(route, v, M2MBase::GET_PUT_ALLOWED, true, onUpdate); + } + + SimpleResourceString define_resource( + const char* route, + string v, + void(*onUpdate)(string)) + { + FunctionPointerArg1<void, string> fp; + fp.attach(onUpdate); + return define_resource(route, v, M2MBase::GET_PUT_ALLOWED, true, fp); + } + + SimpleResourceInt define_resource( + const char* route, + int v, + M2MBase::Operation opr = M2MBase::GET_PUT_ALLOWED, + bool observable = true, + FunctionPointerArg1<void, int> onUpdate = NULL) + { stringstream ss; ss << v; std::string stringified = ss.str(); @@ -315,6 +362,36 @@ if (!res) printf("Error while creating %s\n", route); return *(new SimpleResourceInt(this, route)); } + + SimpleResourceInt define_resource( + const char* route, + int v, + M2MBase::Operation opr, + bool observable, + void(*onUpdate)(int)) + { + FunctionPointerArg1<void, int> fp; + fp.attach(onUpdate); + return define_resource(route, v, opr, observable, fp); + } + + SimpleResourceInt define_resource( + const char* route, + int v, + FunctionPointerArg1<void, int> onUpdate = NULL) + { + return define_resource(route, v, M2MBase::GET_PUT_ALLOWED, true, onUpdate); + } + + SimpleResourceInt define_resource( + const char* route, + int v, + void(*onUpdate)(int)) + { + FunctionPointerArg1<void, int> fp; + fp.attach(onUpdate); + return define_resource(route, v, M2MBase::GET_PUT_ALLOWED, true, fp); + } }; #endif // __SIMPLE_MBED_CLIENT_H__ \ No newline at end of file