示例#1
0
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;
}
示例#2
0
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;
}
int main(int argc, char **argv)
{
	const char *pipe_path;
	OSyncError *error = NULL;
	OSyncClient *client = NULL;
	OSyncPlugin *plugin = NULL;

	if (!argv[1]) {
		fprintf(stderr, "pipe path is missing!\n");
		return 1;
	}

	pipe_path = argv[1];


	/** Plugin **/
	plugin = osync_plugin_new(&error);
	if (!plugin)
		goto error;

	osync_plugin_set_initialize_func(plugin, initialize);
	osync_plugin_set_finalize_func(plugin, finalize);
	osync_plugin_set_discover_func(plugin, discover);


	/** Client */
	client = osync_client_new(&error);
	if (!client)
		goto error;

	osync_client_set_pipe_path(client, pipe_path);
	osync_client_set_plugin(client, plugin);


	printf("[EXTERNAL-DEMO]: %s OSyncPlugin:%p OSyncClient:%p\n", __func__, plugin, client);
	printf("[EXTERNAL-DEMO]: Starting (blocking) OSyncClient ...\n");

	if (!osync_client_run_and_block(client, &error))
		goto error;

	printf("[EXTERNAL-DEMO]: OSyncClient completed.");

	osync_client_unref(client);

	return 0;

error:
	fprintf(stderr, "[EXTERNAL-DEMO] Error: %s\n", osync_error_print(&error));
	osync_error_unref(&error);
	return 1;
}