From: Piotr Kosko Date: Wed, 20 Jan 2016 10:53:46 +0000 (+0100) Subject: [Iotcon] Added C++ layer stubs X-Git-Tag: submit/tizen/20160128.083419^2~2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b83146710098e8202437208faab977f68ef5afe3;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Iotcon] Added C++ layer stubs Change-Id: I7c5589e88a08a075077c71fdade3831a232442dd Signed-off-by: Piotr Kosko --- diff --git a/src/iotcon/iotcon_instance.cc b/src/iotcon/iotcon_instance.cc index dedcdf5a..826671e7 100644 --- a/src/iotcon/iotcon_instance.cc +++ b/src/iotcon/iotcon_instance.cc @@ -16,6 +16,8 @@ #include "iotcon/iotcon_instance.h" +#include + #include "common/logger.h" namespace extension { @@ -23,10 +25,286 @@ namespace iotcon { IotconInstance::IotconInstance() { LoggerD("Enter"); + using std::placeholders::_1; + using std::placeholders::_2; + + #define REGISTER_ASYNC(c, func) \ + RegisterSyncHandler(c, func); + #define REGISTER_SYNC(c, func) \ + RegisterSyncHandler(c, func); + + REGISTER_SYNC("IotconResource_getObserverIds", + std::bind(&IotconInstance::IotconResourceGetObserverIds, this, _1, _2)); + REGISTER_ASYNC("IotconResource_notify", + std::bind(&IotconInstance::IotconResourceNotify, this, _1, _2)); + REGISTER_ASYNC("IotconResource_addResourceTypes", + std::bind(&IotconInstance::IotconResourceAddResourceTypes, this, _1, _2)); + REGISTER_ASYNC("IotconResource_addResourceInterfaces", + std::bind(&IotconInstance::IotconResourceAddResourceInterfaces, this, _1, _2)); + REGISTER_ASYNC("IotconResource_addChildResource", + std::bind(&IotconInstance::IotconResourceAddChildResource, this, _1, _2)); + REGISTER_ASYNC("IotconResource_removeChildResource", + std::bind(&IotconInstance::IotconResourceRemoveChildResource, this, _1, _2)); + REGISTER_SYNC("IotconResource_setRequestListener", + std::bind(&IotconInstance::IotconResourceSetRequestListener, this, _1, _2)); + REGISTER_SYNC("IotconRemoteResource_unsetRequestListener", + std::bind(&IotconInstance::IotconRemoteResourceUnsetRequestListener, this, _1, _2)); + REGISTER_SYNC("IotconResponse_send", + std::bind(&IotconInstance::IotconResponseSend, this, _1, _2)); + REGISTER_SYNC("IotconRemoteResource_getCachedRepresentation", + std::bind(&IotconInstance::IotconRemoteResourceGetCachedRepresentation, this, _1, _2)); + REGISTER_ASYNC("IotconRemoteResource_methodGet", + std::bind(&IotconInstance::IotconRemoteResourceMethodGet, this, _1, _2)); + REGISTER_ASYNC("IotconRemoteResource_methodPut", + std::bind(&IotconInstance::IotconRemoteResourceMethodPut, this, _1, _2)); + REGISTER_ASYNC("IotconRemoteResource_methodPost", + std::bind(&IotconInstance::IotconRemoteResourceMethodPost, this, _1, _2)); + REGISTER_ASYNC("IotconRemoteResource_methodDelete", + std::bind(&IotconInstance::IotconRemoteResourceMethodDelete, this, _1, _2)); + REGISTER_SYNC("IotconRemoteResource_setStateChangeListener", + std::bind(&IotconInstance::IotconRemoteResourceSetStateChangeListener, this, _1, _2)); + REGISTER_SYNC("IotconRemoteResource_unsetStateChangeListener", + std::bind(&IotconInstance::IotconRemoteResourceUnsetStateChangeListener, this, _1, _2)); + REGISTER_SYNC("IotconRemoteResource_startCaching", + std::bind(&IotconInstance::IotconRemoteResourceStartCaching, this, _1, _2)); + REGISTER_SYNC("IotconRemoteResource_stopCaching", + std::bind(&IotconInstance::IotconRemoteResourceStopCaching, this, _1, _2)); + REGISTER_SYNC("IotconRemoteResource_setConnectionChangeListener", + std::bind(&IotconInstance::IotconRemoteResourceSetConnectionChangeListener, this, _1, _2)); + REGISTER_SYNC("IotconRemoteResource_unsetConnectionChangeListener", + std::bind(&IotconInstance::IotconRemoteResourceUnsetConnectionChangeListener, this, _1, _2)); + REGISTER_ASYNC("IotconClient_findResource", + std::bind(&IotconInstance::IotconClientFindResource, this, _1, _2)); + REGISTER_SYNC("IotconClient_addPresenceEventListener", + std::bind(&IotconInstance::IotconClientAddPresenceEventListener, this, _1, _2)); + REGISTER_SYNC("IotconClient_removePresenceEventListener", + std::bind(&IotconInstance::IotconClientRemovePresenceEventListener, this, _1, _2)); + REGISTER_ASYNC("IotconClient_getDeviceInfo", + std::bind(&IotconInstance::IotconClientGetDeviceInfo, this, _1, _2)); + REGISTER_ASYNC("IotconClient_getPlatformInfo", + std::bind(&IotconInstance::IotconClientGetPlatformInfo, this, _1, _2)); + REGISTER_ASYNC("IotconServer_createResource", + std::bind(&IotconInstance::IotconServerCreateResource, this, _1, _2)); + REGISTER_ASYNC("IotconServer_removeResource", + std::bind(&IotconInstance::IotconServerRemoveResource, this, _1, _2)); + REGISTER_ASYNC("IotconServer_updateResource", + std::bind(&IotconInstance::IotconServerUpdateResource, this, _1, _2)); + REGISTER_SYNC("Iotcon_getTimeout", + std::bind(&IotconInstance::IotconGetTimeout, this, _1, _2)); + REGISTER_SYNC("Iotcon_setTimeout", + std::bind(&IotconInstance::IotconSetTimeout, this, _1, _2)); + #undef REGISTER_ASYNC + #undef REGISTER_SYNC + + // initialize connection to iotcon service + int ret = iotcon_connect(); + if (IOTCON_ERROR_NONE != ret) { + LoggerE("Could not connnect to iotcon service: %s", get_error_message(ret)); + } else { + ret = iotcon_add_connection_changed_cb(ConnectionChangedCallback, nullptr); + LoggerE("Could not add connection changed callback for iotcon service: %s", + get_error_message(ret)); + } +} + +void IotconInstance::ConnectionChangedCallback(bool is_connected, void* user_data) { + LoggerD("Enter"); + + // try to recover connection to iotcon service + if (!is_connected) { + int ret = iotcon_connect(); + if (IOTCON_ERROR_NONE != ret) { + LoggerE("Could not connnect to iotcon service: %s", get_error_message(ret)); + } + // TODO consider re-adding connection changed listener with iotcon_add_connection_changed_cb() + } } IotconInstance::~IotconInstance() { LoggerD("Enter"); + + iotcon_remove_connection_changed_cb(ConnectionChangedCallback, nullptr); + iotcon_disconnect(); +} + +void IotconInstance::IotconResourceGetObserverIds(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconResourceNotify(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconResourceAddResourceTypes(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconResourceAddResourceInterfaces(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconResourceAddChildResource(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconResourceRemoveChildResource(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconResourceSetRequestListener(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceUnsetRequestListener(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconResponseSend(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceGetCachedRepresentation(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceMethodGet(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceMethodPut(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceMethodPost(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceMethodDelete(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceSetStateChangeListener(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceUnsetStateChangeListener(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceStartCaching(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceStopCaching(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceSetConnectionChangeListener(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconRemoteResourceUnsetConnectionChangeListener(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconClientFindResource(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconClientAddPresenceEventListener(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconClientRemovePresenceEventListener(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconClientGetDeviceInfo(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconClientGetPlatformInfo(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconServerCreateResource(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconServerRemoveResource(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconServerUpdateResource(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconGetTimeout(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + +} + +void IotconInstance::IotconSetTimeout(const picojson::value& args, + picojson::object& out) { + LoggerD("Enter"); + } } // namespace iotcon diff --git a/src/iotcon/iotcon_instance.h b/src/iotcon/iotcon_instance.h index 196c177e..ea8b3cc9 100644 --- a/src/iotcon/iotcon_instance.h +++ b/src/iotcon/iotcon_instance.h @@ -27,6 +27,69 @@ class IotconInstance : public common::ParsedInstance { public: IotconInstance(); virtual ~IotconInstance(); + private: + static void ConnectionChangedCallback(bool is_connected, void* user_data); + + void IotconResourceGetObserverIds(const picojson::value& args, + picojson::object& out); + void IotconResourceNotify(const picojson::value& args, + picojson::object& out); + void IotconResourceAddResourceTypes(const picojson::value& args, + picojson::object& out); + void IotconResourceAddResourceInterfaces(const picojson::value& args, + picojson::object& out); + void IotconResourceAddChildResource(const picojson::value& args, + picojson::object& out); + void IotconResourceRemoveChildResource(const picojson::value& args, + picojson::object& out); + void IotconResourceSetRequestListener(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceUnsetRequestListener(const picojson::value& args, + picojson::object& out); + void IotconResponseSend(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceGetCachedRepresentation(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceMethodGet(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceMethodPut(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceMethodPost(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceMethodDelete(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceSetStateChangeListener(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceUnsetStateChangeListener(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceStartCaching(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceStopCaching(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceSetConnectionChangeListener(const picojson::value& args, + picojson::object& out); + void IotconRemoteResourceUnsetConnectionChangeListener(const picojson::value& args, + picojson::object& out); + void IotconClientFindResource(const picojson::value& args, + picojson::object& out); + void IotconClientAddPresenceEventListener(const picojson::value& args, + picojson::object& out); + void IotconClientRemovePresenceEventListener(const picojson::value& args, + picojson::object& out); + void IotconClientGetDeviceInfo(const picojson::value& args, + picojson::object& out); + void IotconClientGetPlatformInfo(const picojson::value& args, + picojson::object& out); + void IotconServerCreateResource(const picojson::value& args, + picojson::object& out); + void IotconServerRemoveResource(const picojson::value& args, + picojson::object& out); + void IotconServerUpdateResource(const picojson::value& args, + picojson::object& out); + void IotconGetTimeout(const picojson::value& args, + picojson::object& out); + void IotconSetTimeout(const picojson::value& args, + picojson::object& out); }; } // namespace iotcon