예제 #1
0
osync_bool get_conversion_info(OSyncFormatEnv *env, OSyncError **error)
{
    OSyncFormatConverter *conv = NULL;

    /* mock converter */
    OSyncObjFormat *mockformat1 = osync_format_env_find_objformat(env, "mockformat1");
    osync_assert(mockformat1);

    OSyncObjFormat *mockformat2 = osync_format_env_find_objformat(env, "mockformat2");
    osync_assert(mockformat2);

    conv = osync_converter_new(OSYNC_CONVERTER_DECAP, mockformat1, mockformat2, conv_file_to_plain, error);
    osync_assert(conv);

    osync_format_env_register_converter(env, conv);
    osync_converter_unref(conv);

    conv = osync_converter_new(OSYNC_CONVERTER_ENCAP, mockformat2, mockformat1, conv_plain_to_file, error);
    osync_assert(conv);

    osync_format_env_register_converter(env, conv);
    osync_converter_unref(conv);


    return TRUE;
}
예제 #2
0
osync_bool get_conversion_info(OSyncFormatEnv *env, OSyncError **error)
{
	OSyncObjFormat *file = osync_format_env_find_objformat(env, "file");
	OSyncObjFormat *plain = NULL;
	OSyncFormatConverter *conv = NULL;

	if (!file) {
		osync_error_set(error, OSYNC_ERROR_GENERIC, "Unable to find file format");
		return FALSE;
	}

	plain = osync_format_env_find_objformat(env, "plain");
	if (!plain) {
		osync_error_set(error, OSYNC_ERROR_GENERIC, "Unable to find plain format");
		return FALSE;
	}

	conv = osync_converter_new(OSYNC_CONVERTER_DECAP, file, plain, conv_file_to_plain, error);
	if (!conv)
		return FALSE;

	osync_format_env_register_converter(env, conv, error);
	osync_converter_unref(conv);

	conv = osync_converter_new(OSYNC_CONVERTER_ENCAP, plain, file, conv_plain_to_file, error);
	if (!conv)
		return FALSE;

	osync_format_env_register_converter(env, conv, error);
	osync_converter_unref(conv);
	return TRUE;
}
예제 #3
0
void osync_format_env_free(OSyncFormatEnv *env)
{
  osync_trace(TRACE_ENTRY, "%s(%p)", __func__, env);
  osync_assert(env);
	
  /* Free the formats */
  while (env->objformats) {
    osync_trace(TRACE_INTERNAL, "FORMAT: %s", osync_objformat_get_name(env->objformats->data));
    osync_objformat_unref(env->objformats->data);
    env->objformats = g_list_remove(env->objformats, env->objformats->data);
  }
	
  osync_format_env_converter_finalize(env);
	
  /* Free the converters */
  while (env->converters) {
    osync_converter_unref(env->converters->data);
    env->converters = g_list_remove(env->converters, env->converters->data);
  }
	
  /* Free the filters */
  while (env->custom_filters) {
    osync_custom_filter_unref(env->custom_filters->data);
    env->custom_filters = g_list_remove(env->custom_filters, env->custom_filters->data);
  }
	
  /* Free the modules */
  while (env->modules) {
    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__);
}