00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "opensync.h"
00022 #include "opensync_internals.h"
00023
00024 #include "opensync-plugin.h"
00025 #include "opensync_plugin_localization_private.h"
00026
00027 OSyncPluginLocalization *osync_plugin_localization_new(OSyncError **error)
00028 {
00029 OSyncPluginLocalization *local = osync_try_malloc0(sizeof(OSyncPluginLocalization), error);
00030 if (!local)
00031 return NULL;
00032
00033 local->ref_count = 1;
00034
00035 return local;
00036 }
00037
00038 OSyncPluginLocalization *osync_plugin_localization_ref(OSyncPluginLocalization *local)
00039 {
00040 osync_assert(local);
00041
00042 g_atomic_int_inc(&(local->ref_count));
00043
00044 return local;
00045 }
00046
00047 void osync_plugin_localization_unref(OSyncPluginLocalization *local)
00048 {
00049 osync_assert(local);
00050
00051 if (g_atomic_int_dec_and_test(&(local->ref_count))) {
00052 if (local->encoding)
00053 osync_free(local->encoding);
00054
00055 if (local->language)
00056 osync_free(local->language);
00057
00058 if (local->timezone)
00059 osync_free(local->timezone);
00060
00061 osync_free(local);
00062 }
00063 }
00064
00065 osync_bool osync_plugin_localization_option_is_supported(OSyncPluginLocalization *local, OSyncPluginLocalizationOptionSupportedFlag flag)
00066 {
00067 osync_assert(local);
00068 if (local->supported_options & flag)
00069 return TRUE;
00070
00071 return FALSE;
00072 }
00073
00074 void osync_plugin_localization_option_set_supported(OSyncPluginLocalization *local, OSyncPluginLocalizationOptionSupportedFlags flags)
00075 {
00076 osync_assert(local);
00077 local->supported_options = flags;
00078 }
00079
00080 const char *osync_plugin_localization_get_encoding(OSyncPluginLocalization *local)
00081 {
00082 osync_assert(local);
00083 return local->encoding;
00084 }
00085
00086 void osync_plugin_localization_set_encoding(OSyncPluginLocalization *local, const char *encoding)
00087 {
00088 osync_assert(local);
00089 if (local->encoding)
00090 osync_free(local->encoding);
00091
00092 local->encoding = osync_strdup(encoding);
00093 }
00094
00095 const char *osync_plugin_localization_get_timezone(OSyncPluginLocalization *local)
00096 {
00097 osync_assert(local);
00098 return local->timezone;
00099 }
00100
00101 void osync_plugin_localization_set_timezone(OSyncPluginLocalization *local, const char *timezone)
00102 {
00103 osync_assert(local);
00104 if (local->timezone)
00105 osync_free(local->timezone);
00106
00107 local->timezone = osync_strdup(timezone);
00108 }
00109
00110 const char *osync_plugin_localization_get_language(OSyncPluginLocalization *local)
00111 {
00112 osync_assert(local);
00113 return local->language;
00114 }
00115
00116 void osync_plugin_localization_set_language(OSyncPluginLocalization *local, const char *language)
00117 {
00118 osync_assert(local);
00119 if (local->language)
00120 osync_free(local->language);
00121
00122 local->language = osync_strdup(language);
00123 }
00124