"tizen.AppCommunicationServerService",
"tizen.AppCommunicationClientService",
"tizen.ChannelInfo",
- "tizen.PayloadString",
- "tizen.PayloadRawBytes",
nullptr
};
SetExtraJSEntryPoints(entry_points);
}
ConvergenceInstance::~ConvergenceInstance() {
+ ConvergenceManager::GetInstance(this).ResetInternalData();
}
void ConvergenceInstance::ReplyAsync(ConvergenceCallbacks callback_function_type,
picojson::value result = picojson::value(param);
LoggerD("---> %s", result.serialize().c_str()); // TODO remove
- PostMessage(result.serialize().c_str());
+
+ TaskQueue::GetInstance().Async([this, result]() {
+ Instance::PostMessage(this, result.serialize().c_str());
+ });
}
common::TizenResult ConvergenceInstance::ConvergenceManagerStartDiscovery(const picojson::object& args,
convergence_manager_ = nullptr;
}
+void ConvergenceManager::ResetInternalData() {
+ ScopeLogger();
+ // Releasing all registered devices
+ for (auto it = registered_devices_.begin(); it != registered_devices_.end(); ++it) {
+ delete it->second;
+ }
+ registered_devices_.clear();
+
+ // release handle
+ int error = conv_destroy(convergence_manager_);
+ if (CONV_ERROR_NONE != error) {
+ // Handle error
+ trace_conv_error(error, __LINE__, "conv_destroy");
+ }
+ convergence_manager_ = nullptr;
+ convergence_plugin_ = nullptr;
+
+ // create native handle
+ error = conv_create(&convergence_manager_);
+ if (CONV_ERROR_NONE != error) {
+ // Handle error
+ trace_conv_error(error, __LINE__, "conv_create");
+ }
+}
+
ConvergenceDevice *ConvergenceManager::SwapDevice(const char *device_id,
conv_device_h device_handle) {
ScopeLogger();
ConvergenceService *RegisterLocalService(const char *device_id,
const int service_type);
+ void ResetInternalData();
+
private:
static void DiscoveryCb(conv_device_h device_handle,
conv_discovery_result_e result, void* user_data);