}
};
-Resource.prototype.addResourceTypes = function() {
+Resource.prototype.addResourceType = function() {
var args = validator.validateMethod(arguments, [{
- name: 'types',
- type: types.ARRAY,
- values: types.STRING,
- optional: false,
- nullable: false
+ name: 'type',
+ type: types.STRING
}]);
var callArgs = {};
callArgs.id = this[kIdKey];
- callArgs.types = args.types;
+ callArgs.type = args.type;
- var result = native.call('IotconResource_addResourceTypes', callArgs);
+ var result = native.callSync('IotconResource_addResourceType', callArgs);
if (native.isFailure(result)) {
throw native.getErrorObject(result);
+ } else {
+ var t = this.resourceTypes;
+ t.push(args.type);
+ updateWithInternalData({ resourceTypes: t }, this);
}
};
-Resource.prototype.addResourceInterfaces = function() {
+Resource.prototype.addResourceInterface = function() {
var args = validator.validateMethod(arguments, [{
- name: 'interfaces',
- type: types.ARRAY,
- values: ResourceInterface,
- optional: false,
- nullable: false
+ name: 'iface',
+ type: types.ENUM,
+ values: T.getValues(ResourceInterface)
}]);
var callArgs = {};
callArgs.id = this[kIdKey];
- callArgs.interfaces = args.interfaces;
+ callArgs.iface = args.iface;
- var result = native.call('IotconResource_addResourceInterfaces', callArgs);
+ var result = native.callSync('IotconResource_addResourceInterface', callArgs);
if (native.isFailure(result)) {
throw native.getErrorObject(result);
+ } else {
+ var interfaces = this.resourceInterfaces;
+ interfaces.push(args.iface);
+ updateWithInternalData({ resourceInterfaces: interfaces }, this);
}
};
const std::string kObserverIds = "observerIds";
const std::string kQos = "qos";
const std::string kChildId = "childId";
+const std::string kType = "type";
+const std::string kInterface = "iface";
} // namespace
REGISTER_SYNC("IotconResource_getObserverIds", ResourceGetObserverIds);
REGISTER_SYNC("IotconResource_notify", ResourceNotify);
+ REGISTER_SYNC("IotconResource_addResourceType", ResourceAddResourceType);
+ REGISTER_SYNC("IotconResource_addResourceInterface", ResourceAddResourceInterface);
REGISTER_SYNC("IotconResource_addChildResource", ResourceAddChildResource);
REGISTER_SYNC("IotconResource_removeChildResource", ResourceRemoveChildResource);
REGISTER_SYNC("IotconResource_setRequestListener", ResourceSetRequestListener);
#define REGISTER_ASYNC(c, x) \
RegisterHandler(c, std::bind(&IotconInstance::x, this, _1, _2));
- REGISTER_ASYNC("IotconResource_addResourceTypes", ResourceAddResourceTypes);
- REGISTER_ASYNC("IotconResource_addResourceInterfaces", ResourceAddResourceInterfaces);
REGISTER_ASYNC("IotconRemoteResource_methodGet", RemoteResourceMethodGet);
REGISTER_ASYNC("IotconRemoteResource_methodPut", RemoteResourceMethodPut);
REGISTER_ASYNC("IotconRemoteResource_methodPost", RemoteResourceMethodPost);
return common::TizenSuccess();
}
-common::TizenResult IotconInstance::ResourceAddResourceTypes(const picojson::object& args,
- const common::AsyncToken& token) {
+common::TizenResult IotconInstance::ResourceAddResourceType(const picojson::object& args) {
ScopeLogger();
- return common::UnknownError("Not implemented");
+
+ CHECK_EXIST(args, kId);
+ CHECK_EXIST(args, kType);
+
+ ResourceInfoPtr resource;
+ auto result = IotconServerManager::GetInstance().GetResourceById(GetId(args), &resource);
+ if (!result) {
+ LogAndReturnTizenError(result, ("GetResourceById() failed"));
+ }
+
+ result = IotconUtils::ConvertIotconError(iotcon_resource_bind_type(resource->handle, GetArg(args, kType).get<std::string>().c_str()));
+ if (!result) {
+ LogAndReturnTizenError(result, ("iotcon_resource_bind_type() failed"));
+ }
+
+ return common::TizenSuccess();
}
-common::TizenResult IotconInstance::ResourceAddResourceInterfaces(const picojson::object& args,
- const common::AsyncToken& token) {
+common::TizenResult IotconInstance::ResourceAddResourceInterface(const picojson::object& args) {
ScopeLogger();
- return common::UnknownError("Not implemented");
+
+ CHECK_EXIST(args, kId);
+ CHECK_EXIST(args, kInterface);
+
+ ResourceInfoPtr resource;
+ auto result = IotconServerManager::GetInstance().GetResourceById(GetId(args), &resource);
+ if (!result) {
+ LogAndReturnTizenError(result, ("GetResourceById() failed"));
+ }
+
+ result = IotconUtils::ConvertIotconError(iotcon_resource_bind_interface(resource->handle, IotconUtils::ToInterface(GetArg(args, kInterface).get<std::string>())));
+ if (!result) {
+ LogAndReturnTizenError(result, ("iotcon_resource_bind_interface() failed"));
+ }
+
+ return common::TizenSuccess();
}
common::TizenResult IotconInstance::ResourceAddChildResource(const picojson::object& args) {
common::TizenResult ResourceGetObserverIds(const picojson::object& args);
common::TizenResult ResourceNotify(const picojson::object& args);
- common::TizenResult ResourceAddResourceTypes(const picojson::object& args,
- const common::AsyncToken& token);
- common::TizenResult ResourceAddResourceInterfaces(const picojson::object& args,
- const common::AsyncToken& token);
+ common::TizenResult ResourceAddResourceType(const picojson::object& args);
+ common::TizenResult ResourceAddResourceInterface(const picojson::object& args);
common::TizenResult ResourceAddChildResource(const picojson::object& args);
common::TizenResult ResourceRemoveChildResource(const picojson::object& args);
common::TizenResult ResourceSetRequestListener(const picojson::object& args);