osync_bool get_sync_info(OSyncPluginEnv *env, OSyncError **error) { //Now you can create a new plugin information and fill in the details //Note that you can create several plugins here OSyncPlugin *plugin = osync_plugin_new(error); if (!plugin) goto error; //Tell opensync something about your plugin osync_plugin_set_name(plugin, "short name, maybe < 15 chars"); osync_plugin_set_longname(plugin, "long name. maybe < 50 chars"); osync_plugin_set_description(plugin, "A longer description. < 200 chars"); //Now set the function we made earlier osync_plugin_set_initialize(plugin, initialize); osync_plugin_set_finalize(plugin, finalize); osync_plugin_set_discover(plugin, discover); osync_plugin_env_register_plugin(env, plugin); osync_plugin_unref(plugin); return TRUE; error: osync_trace(TRACE_ERROR, "Unable to register: %s", osync_error_print(error)); osync_error_unref(error); return FALSE; }
osync_bool get_sync_info(OSyncPluginEnv *env, OSyncError **error) { OSyncPlugin *plugin = osync_plugin_new(error); osync_assert(plugin); osync_plugin_set_name(plugin, "mock-sync"); osync_plugin_set_longname(plugin, "Mock Synchronization Plugin"); osync_plugin_set_description(plugin, "Plugin to synchronize files on the local filesystem"); osync_plugin_set_initialize_func(plugin, mock_initialize); osync_plugin_set_finalize_func(plugin, mock_finalize); osync_plugin_set_discover_func(plugin, mock_discover); if (!osync_plugin_env_register_plugin(env, plugin, error)) goto error; osync_plugin_unref(plugin); plugin = osync_plugin_new(error); osync_assert(plugin); osync_plugin_set_name(plugin, "mock-sync-external"); osync_plugin_set_longname(plugin, "Mock Synchronization Plugin with Start Type External"); osync_plugin_set_description(plugin, "Plugin to synchronize files on the local filesystem for unit tests"); osync_plugin_set_start_type(plugin, OSYNC_START_TYPE_EXTERNAL); osync_plugin_set_initialize_func(plugin, mock_initialize); osync_plugin_set_finalize_func(plugin, mock_finalize); osync_plugin_set_discover_func(plugin, mock_discover); if (!osync_plugin_env_register_plugin(env, plugin, error)) goto error; osync_plugin_unref(plugin); return TRUE; error: return FALSE; }
void osync_plugin_env_free(OSyncPluginEnv *env) { osync_trace(TRACE_ENTRY, "%s(%p)", __func__, env); osync_assert(env); /* Free the plugins */ while (env->plugins) { osync_plugin_unref(env->plugins->data); env->plugins = g_list_remove(env->plugins, env->plugins->data); } /* Unload all modules */ while (env->modules) { osync_module_unload(env->modules->data); osync_module_free(env->modules->data); env->modules = g_list_remove(env->modules, env->modules->data); } g_free(env); osync_trace(TRACE_EXIT, "%s", __func__); }