/* Here we actually tell opensync which sinks are available. */ static osync_bool discover(void *userdata, OSyncPluginInfo *info, OSyncError **error) { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, userdata, info, error); // plugin_environment *env = (plugin_environment *)userdata; // Report avaliable sinks... OSyncObjTypeSink *sink = osync_plugin_info_find_objtype(info, "<objtype e.g. note>"); if (!sink) { return FALSE; } osync_objtype_sink_set_available(sink, TRUE); OSyncVersion *version = osync_version_new(error); osync_version_set_plugin(version, "<your plugin-name>"); //osync_version_set_version(version, "version"); //osync_version_set_modelversion(version, "version"); //osync_version_set_firmwareversion(version, "firmwareversion"); //osync_version_set_softwareversion(version, "softwareversion"); //osync_version_set_hardwareversion(version, "hardwareversion"); osync_plugin_info_set_version(info, version); osync_version_unref(version); osync_trace(TRACE_EXIT, "%s", __func__); return TRUE; }
/* Here we actually tell opensync which sinks are available. For this plugin, we * go through the list of directories and enable all, since all have been configured */ static osync_bool mock_discover(OSyncPluginInfo *info, void *data, OSyncError **error) { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data, info, error); OSyncPluginConfig *config = osync_plugin_info_get_config(info); osync_assert_msg(config, "No OSyncPluginConfig set for mock_discover!"); /* OSyncFormatEnv *formatenv = osync_plugin_info_get_format_env(info); osync_assert_msg(config, "No OSyncFormatEnv set for mock_discover!"); */ OSyncList *r = osync_plugin_config_get_resources(config); for (; r; r = r->next) { OSyncPluginResource *res = r->data; OSyncObjTypeSink *sink; const char *objtype = osync_plugin_resource_get_objtype(res); /* Check for ObjType sink */ if ((sink = osync_plugin_info_find_objtype(info, objtype))) osync_objtype_sink_set_available(sink, TRUE); } OSyncVersion *version = osync_version_new(error); osync_version_set_plugin(version, "mock-sync"); //osync_version_set_vendor(version, "version"); //osync_version_set_modelversion(version, "version"); //osync_version_set_firmwareversion(version, "firmwareversion"); //osync_version_set_softwareversion(version, "softwareversion"); //osync_version_set_hardwareversion(version, "hardwareversion"); osync_plugin_info_set_version(info, version); osync_version_unref(version); /* we can set here the capabilities, but for the file-sync * plugin they are static and shipped with opensync */ if (mock_get_error(info->memberid, "MOCK_DISCOVER_ERROR")) { osync_error_set(error, OSYNC_ERROR_EXPECTED, "MOCK_DISCOVER_ERROR on purpose!"); osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(error)); return FALSE; } osync_trace(TRACE_EXIT, "%s", __func__); return TRUE; }
static osync_bool discover(OSyncPluginInfo *info, void *data, OSyncError **error) { printf("[EXTERNAL-DEMO]: %s\n", __func__); OSyncList *s, *sinks = osync_plugin_info_get_objtype_sinks(info); for (s = sinks; s; s = s->next) { OSyncObjTypeSink *sink = (OSyncObjTypeSink *) s->data; osync_objtype_sink_set_available(sink, TRUE); } osync_list_free(sinks); OSyncVersion *version = osync_version_new(error); osync_version_set_plugin(version, "external-demo"); osync_plugin_info_set_version(info, version); osync_version_unref(version); return TRUE; }