{
name: 'successCallback',
type: types_.FUNCTION,
- //values: ConnectSuccessCallback,
optional: false,
nullable: false
},
{
name: 'errorCallback',
type: types_.FUNCTION,
- //values: ErrorCallback,
optional: true,
nullable: true
}
{
name: 'successCallback',
type: types_.FUNCTION,
- //values: ConnectSuccessCallback,
optional: true,
nullable: true
},
{
name: 'errorCallback',
type: types_.FUNCTION,
- //values: ErrorCallback,
optional: true,
nullable: true
}
var args = validator_.validateArgs(arguments, [
{
name: 'appId',
- //type: types_.PLATFORM_OBJECT,
type: types_.STRING,
- values: tizen.ApplicationId,
optional: false,
nullable:false
},
{
name: 'successCallback',
type: types_.FUNCTION,
- //values: RemoteAppControlCallback,
optional: true,
nullable: true
},
{
name: 'errorCallback',
type: types_.FUNCTION,
- //values: ErrorCallback,
optional: true,
nullable: true
}
var lid = this._serviceId;
// TODO In fact it must be a list of callbacks
- // But untill D2D FW suppurts transaction management, it is meaningless to
+ // But until D2D FW supports transaction management, it is meaningless to
// have more than one callback, because all payload is delivered to
// a single point without identification of initial request
this._remoteAppControlCallback = successCallback;
nullable:false
}, {
name: 'appId',
- type: types_.PLATFORM_OBJECT,
- values: tizen.ApplicationId,
+ type: types_.STRING,
optional: true,
nullable: true
}, {
CHECK_EXIST(args, kJSArgumentDeviceId);
CHECK_EXIST(args, kJSCurrentListenerId);
- LoggerI("ARGS: %s", picojson::value(args).serialize().c_str());
-
auto connect = [this, args](const common::AsyncToken& token) -> void {
ScopeLogger("connect");
result = service->Connect(static_cast<int>(ConvergenceUtils::GetArg(args, kJSCurrentListenerId).get<double>()));
}
- this->Post(token, result);
+ //only in case of failure call callback
+ //other cases are handled by conv_service_connected_cb()
+ if (!result) {
+ this->Post(token, result);
+ }
};
std::thread(connect, token).detach();
CHECK_PRIVILEGE(kPrivilegeInternet);
CHECK_PRIVILEGE(kPrivilegeBluetooth);
- //LoggerI("ARGS: %s", args.serialize().c_str());
-
auto disconnect = [this, args](const common::AsyncToken& token) -> void {
ScopeLogger("disconnect");
CHECK_EXIST(args, kJSArgumentReply);
CHECK_EXIST(args, kJSCurrentListenerId);
- LoggerI("ARGS: %s", picojson::value(args).serialize().c_str());
-
auto start = [this, args](const common::AsyncToken& token) -> void {
ScopeLogger("start");
static_cast<int>(ConvergenceUtils::GetArg(args, kJSCurrentListenerId).get<double>()));
}
- this->Post(token, result);
+ //only in case of failure call callback
+ //other cases are handled by conv_service_listener_cb()
+ if (!result) {
+ this->Post(token, result);
+ }
};
std::thread(start, token).detach();
CHECK_EXIST(args, kJSArgumentReply);
CHECK_EXIST(args, kJSCurrentListenerId);
- LoggerI("ARGS: %s", picojson::value(args).serialize().c_str());
-
auto stop = [this, args](const common::AsyncToken& token) -> void {
ScopeLogger("stop");
static_cast<int>(ConvergenceUtils::GetArg(args, kJSCurrentListenerId).get<double>()));
}
- this->Post(token, result);
+ //only in case of failure call callback
+ //other cases are handled by conv_service_listener_cb()
+ if (!result) {
+ this->Post(token, result);
+ }
};
std::thread(stop, token).detach();
static_cast<int>(ConvergenceUtils::GetArg(args, kJSCurrentListenerId).get<double>()));
}
- this->Post(token, result);
+ //only in case of failure call callback
+ //other cases are handled by conv_service_listener_cb()
+ if (!result) {
+ this->Post(token, result);
+ }
};
std::thread(launch, token).detach();
static_cast<int>(ConvergenceUtils::GetArg(args, kJSCurrentListenerId).get<double>()));
}
- this->Post(token, result);
+ //only in case of failure call callback
+ //other cases are handled by conv_service_listener_cb()
+ if (!result) {
+ this->Post(token, result);
+ }
};
std::thread(launch_app_control, token).detach();
ConvergenceRemoteAppControlService::~ConvergenceRemoteAppControlService() {
ScopeLogger();
- // Release all memory, used by callback paramerers
+ // Release all memory, used by callback parameters
for (size_t i = 0; i < callback_param_gc_.size(); i++) {
delete callback_param_gc_[i];
}
true,
param);
} else {
- // Error occured during connection
+ // Error occurred during connection
param[kServiceConnectionStatus] = picojson::value(kServiceConnectionStatusNotConnected);
callbackParam->plugin_->ReplyAsync(kRemoteAppControlListenerCallback,
callbackParam->callback_id_,
ScopeLogger();
conv_service_h service = FindServiceHandle();
- if (!service)
+ if (!service) {
return LogAndCreateTizenError(AbortError, "Service with specified type does not exist");
+ }
const int error = conv_service_disconnect(service);
if (CONV_ERROR_NONE != error) {
true,
param);
} else {
- // Error occured during connection
+ // Error occurred during connection
param[kServiceListenerStatus] = picojson::value(kServiceListenerStatusError);
param[kServiceListenerError] = picojson::value(static_cast<double>(error));
callbackParam->plugin_->ReplyAsync(kRemoteAppControlListenerCallback,