Commit 43363a4b authored by Pierre Wieser's avatar Pierre Wieser

Refactoring: rename src/core/na-gconf-utils.h to src/api/na-gconf-utils.h

parent 3abeccd9
2009-02-15 Pierre Wieser <pwieser@trychlos.org>
Rename src/core/na-gconf-utils.h to src/api/na-gconf-utils.h
Rename src/api/na-iio-provider.c to src/core/na-iio-provider.c
* src/api/na-dbus.h: Update defined name.
......
......@@ -36,6 +36,7 @@ api_include_HEADERS = \
\
na-core-utils.h \
na-gconf-monitor.h \
na-gconf-utils.h \
na-gconf-keys.h \
na-object-api.h \
$(NULL)
......@@ -28,8 +28,8 @@
* ... and many others (see AUTHORS)
*/
#ifndef __NA_RUNTIME_GCONF_UTILS_H__
#define __NA_RUNTIME_GCONF_UTILS_H__
#ifndef __NAUTILUS_ACTIONS_API_NA_GCONF_UTILS_H__
#define __NAUTILUS_ACTIONS_API_NA_GCONF_UTILS_H__
/**
* SECTION: na_gconf_utils
......@@ -37,32 +37,32 @@
* @include: runtime/na-gconf-utils.h
*/
#include <gconf/gconf.h>
#include <gconf/gconf-client.h>
GSList *na_gconf_utils_get_entries( GConfClient *gconf, const gchar *path );
void na_gconf_utils_free_entries( GSList *entries );
gboolean na_gconf_utils_get_bool_from_entries( GSList *entries, const gchar *entry, gboolean *value );
gboolean na_gconf_utils_get_string_from_entries( GSList *entries, const gchar *entry, gchar **value );
gboolean na_gconf_utils_get_string_list_from_entries( GSList *entries, const gchar *entry, GSList **value );
G_BEGIN_DECLS
GSList *na_gconf_utils_get_subdirs( GConfClient *gconf, const gchar *path );
void na_gconf_utils_free_subdirs( GSList *subdirs );
gchar *na_gconf_utils_path_to_key( const gchar *path );
gboolean na_gconf_utils_has_entry ( GConfClient *gconf, const gchar *path, const gchar *entry );
GSList *na_gconf_utils_get_entries( GConfClient *gconf, const gchar *path );
gboolean na_gconf_utils_get_bool_from_entries ( GSList *entries, const gchar *entry, gboolean *value );
gboolean na_gconf_utils_get_string_from_entries ( GSList *entries, const gchar *entry, gchar **value );
gboolean na_gconf_utils_get_string_list_from_entries( GSList *entries, const gchar *entry, GSList **value );
void na_gconf_utils_free_entries ( GSList *entries );
gboolean na_gconf_utils_read_bool( GConfClient *gconf, const gchar *path, gboolean use_schema, gboolean default_value );
gint na_gconf_utils_read_int( GConfClient *gconf, const gchar *path, gboolean use_schema, gint default_value );
gchar *na_gconf_utils_read_string( GConfClient *gconf, const gchar *path, gboolean use_schema, const gchar *default_value );
GSList *na_gconf_utils_read_string_list( GConfClient *gconf, const gchar *path );
gboolean na_gconf_utils_read_bool ( GConfClient *gconf, const gchar *path, gboolean use_schema, gboolean default_value );
gint na_gconf_utils_read_int ( GConfClient *gconf, const gchar *path, gboolean use_schema, gint default_value );
gchar *na_gconf_utils_read_string ( GConfClient *gconf, const gchar *path, gboolean use_schema, const gchar *default_value );
GSList *na_gconf_utils_read_string_list ( GConfClient *gconf, const gchar *path );
gboolean na_gconf_utils_write_bool( GConfClient *gconf, const gchar *path, gboolean value, gchar **message );
gboolean na_gconf_utils_write_int( GConfClient *gconf, const gchar *path, gint value, gchar **message );
gboolean na_gconf_utils_write_string( GConfClient *gconf, const gchar *path, const gchar *value, gchar **message );
gboolean na_gconf_utils_write_bool ( GConfClient *gconf, const gchar *path, gboolean value, gchar **message );
gboolean na_gconf_utils_write_int ( GConfClient *gconf, const gchar *path, gint value, gchar **message );
gboolean na_gconf_utils_write_string ( GConfClient *gconf, const gchar *path, const gchar *value, gchar **message );
gboolean na_gconf_utils_write_string_list( GConfClient *gconf, const gchar *path, GSList *value, gchar **message );
gboolean na_gconf_utils_remove_entry( GConfClient *gconf, const gchar *path, gchar **message );
gboolean na_gconf_utils_remove_entry ( GConfClient *gconf, const gchar *path, gchar **message );
G_END_DECLS
#endif /* __NA_RUNTIME_GCONF_UTILS_H__ */
#endif /* __NAUTILUS_ACTIONS_API_NA_GCONF_UTILS_H__ */
......@@ -39,10 +39,9 @@ AM_CPPFLAGS += \
libna_core_la_SOURCES = \
na-core-utils.c \
na-gconf-monitor.c \
na-gconf-utils.c \
na-iio-provider.c \
\
na-gconf-utils.c \
na-gconf-utils.h \
na-iabout.c \
na-iabout.h \
na-io-provider.h \
......
......@@ -34,12 +34,92 @@
#include <string.h>
#include "na-utils.h"
#include "na-gconf-utils.h"
#include <api/na-core-utils.h>
#include <api/na-gconf-utils.h>
static GConfValue *read_value( GConfClient *gconf, const gchar *path, gboolean use_schema, GConfValueType type );
static gboolean sync_gconf( GConfClient *gconf, gchar **message );
/**
* na_gconf_utils_get_subdirs:
* @gconf: a #GConfClient instance.
* @path: a full path to be readen.
*
* Returns: a list of full path subdirectories.
*
* The returned list should be #na_gconf_utils_free_subdirs() by the caller.
*/
GSList *
na_gconf_utils_get_subdirs( GConfClient *gconf, const gchar *path )
{
static const gchar *thisfn = "na_gconf_utils_get_subdirs";
GError *error = NULL;
GSList *list_subdirs;
list_subdirs = gconf_client_all_dirs( gconf, path, &error );
if( error ){
g_warning( "%s: path=%s, error=%s", thisfn, path, error->message );
g_error_free( error );
return(( GSList * ) NULL );
}
return( list_subdirs );
}
/**
* na_gconf_utils_free_subdirs:
* @subdirs: the subdirectory list as returned from #na_gconf_utils_get_subdirs().
*
* Release the list.
*/
void
na_gconf_utils_free_subdirs( GSList *subdirs )
{
na_core_utils_slist_free( subdirs );
}
/**
* na_gconf_utils_has_entry:
* @gconf: a #GConfClient instance.
* @path: the full path of a key.
* @entry: the entry to be tested.
*
* Returns: %TRUE if the given @entry exists for the given @path,
* %FALSE else.
*/
gboolean
na_gconf_utils_has_entry( GConfClient *gconf, const gchar *path, const gchar *entry )
{
static const gchar *thisfn = "na_gconf_utils_has_entry";
gboolean have_entry = FALSE;
GError *error = NULL;
gchar *key;
GConfValue *value;
key = g_strdup_printf( "%s/%s", path, entry );
value = gconf_client_get_without_default( gconf, key, &error );
if( error ){
g_warning( "%s: key=%s, error=%s", thisfn, key, error->message );
g_error_free( error );
if( value ){
gconf_value_free( value );
value = NULL;
}
}
if( value ){
have_entry = TRUE;
gconf_value_free( value );
}
g_free( key );
return( have_entry );
}
/**
* na_gconf_utils_get_entries:
* @gconf: a #GConfClient instance.
......@@ -71,19 +151,6 @@ na_gconf_utils_get_entries( GConfClient *gconf, const gchar *path )
return( list_entries );
}
/**
* na_gconf_utils_free_entries:
* @list: a list of #GConfEntry as returned by na_gconf_utils_get_entries().
*
* Releases the provided list.
*/
void
na_gconf_utils_free_entries( GSList *list )
{
g_slist_foreach( list, ( GFunc ) gconf_entry_unref, NULL );
g_slist_free( list );
}
/**
* na_gconf_utils_get_bool_from_entries:
* @entries: a list of #GConfEntry as returned by na_gconf_utils_get_entries().
......@@ -111,7 +178,7 @@ na_gconf_utils_get_bool_from_entries( GSList *entries, const gchar *entry, gbool
for( ip = entries ; ip && !found ; ip = ip->next ){
gconf_entry = ( GConfEntry * ) ip->data;
key = na_gconf_utils_path_to_key( gconf_entry_get_key( gconf_entry ));
key = g_path_get_basename( gconf_entry_get_key( gconf_entry ));
if( !strcmp( key, entry )){
gconf_value = gconf_entry_get_value( gconf_entry );
......@@ -158,7 +225,7 @@ na_gconf_utils_get_string_from_entries( GSList *entries, const gchar *entry, gch
for( ip = entries ; ip && !found ; ip = ip->next ){
gconf_entry = ( GConfEntry * ) ip->data;
key = na_gconf_utils_path_to_key( gconf_entry_get_key( gconf_entry ));
key = g_path_get_basename( gconf_entry_get_key( gconf_entry ));
if( !strcmp( key, entry )){
gconf_value = gconf_entry_get_value( gconf_entry );
......@@ -207,7 +274,7 @@ na_gconf_utils_get_string_list_from_entries( GSList *entries, const gchar *entry
for( ip = entries ; ip && !found ; ip = ip->next ){
gconf_entry = ( GConfEntry * ) ip->data;
key = na_gconf_utils_path_to_key( gconf_entry_get_key( gconf_entry ));
key = g_path_get_basename( gconf_entry_get_key( gconf_entry ));
if( !strcmp( key, entry )){
gconf_value = gconf_entry_get_value( gconf_entry );
......@@ -229,56 +296,81 @@ na_gconf_utils_get_string_list_from_entries( GSList *entries, const gchar *entry
}
/**
* na_gconf_utils_get_subdirs:
* @gconf: a #GConfClient instance.
* @path: a full path to be readen.
* na_gconf_utils_free_entries:
* @list: a list of #GConfEntry as returned by na_gconf_utils_get_entries().
*
* Returns: a list of full path subdirectories.
* Releases the provided list.
*/
void
na_gconf_utils_free_entries( GSList *list )
{
g_slist_foreach( list, ( GFunc ) gconf_entry_unref, NULL );
g_slist_free( list );
}
/**
* na_gconf_utils_read_string:
* @gconf: a #GConfClient instance.
* @path: the full path to the key.
* @use_schema: whether to use the default value from schema, or not.
* @default_value: default value to be used if schema is not used or
* doesn't exist.
*
* The returned list should be na_gconf_utils_free_subdirs() by the caller.
* Returns: the required string value in a newly allocated string which
* should be g_free() by the caller.
*/
GSList *
na_gconf_utils_get_subdirs( GConfClient *gconf, const gchar *path )
gchar *
na_gconf_utils_read_string( GConfClient *gconf, const gchar *path, gboolean use_schema, const gchar *default_value )
{
static const gchar *thisfn = "na_gconf_utils_get_subdirs";
GConfValue *value = NULL;
gchar *result;
g_return_val_if_fail( GCONF_IS_CLIENT( gconf ), NULL );
result = g_strdup( default_value );
value = read_value( gconf, path, use_schema, GCONF_VALUE_STRING );
if( value ){
g_free( result );
result = g_strdup( gconf_value_get_string( value ));
gconf_value_free( value );
}
return( result );
}
static GConfValue *
read_value( GConfClient *gconf, const gchar *path, gboolean use_schema, GConfValueType type )
{
static const gchar *thisfn = "na_gconf_utils_read_value";
GError *error = NULL;
GSList *list_subdirs;
GConfValue *value = NULL;
list_subdirs = gconf_client_all_dirs( gconf, path, &error );
if( use_schema ){
value = gconf_client_get( gconf, path, &error );
} else {
value = gconf_client_get_without_default( gconf, path, &error );
}
if( error ){
g_warning( "%s: path=%s, error=%s", thisfn, path, error->message );
g_error_free( error );
return(( GSList * ) NULL );
if( value ){
gconf_value_free( value );
value = NULL;
}
}
return( list_subdirs );
}
/**
* na_gconf_utils_free_subdirs:
* @subdirs: the subdirectory list as returned from #na_gconf_utils_get_subdirs().
*
* Release the list.
*/
void
na_gconf_utils_free_subdirs( GSList *subdirs )
{
na_utils_free_string_list( subdirs );
}
if( value ){
if( value->type != type ){
g_warning( "%s: path=%s, found type '%u' while waiting for type '%u'", thisfn, path, value->type, type );
gconf_value_free( value );
value = NULL;
}
}
/**
* na_gconf_utils_path_to_key:
* @path: the full path of a key.
*
* Returns: the key itself, i.e. the last part of the @path.
*
* The returned string should be g_free() by the caller.
*/
gchar *
na_gconf_utils_path_to_key( const gchar *path )
{
return( na_utils_path_extract_last_dir( path ));
return( value );
}
/**
......@@ -340,38 +432,6 @@ na_gconf_utils_read_int( GConfClient *gconf, const gchar *path, gboolean use_sch
return( ret );
}
/**
* na_gconf_utils_read_string:
* @gconf: a #GConfClient instance.
* @path: the full path to the key.
* @use_schema: whether to use the default value from schema, or not.
* @default_value: default value to be used if schema is not used or
* doesn't exist.
*
* Returns: the required string value in a newly allocated string which
* should be g_free() by the caller.
*/
gchar *
na_gconf_utils_read_string( GConfClient *gconf, const gchar *path, gboolean use_schema, const gchar *default_value )
{
GConfValue *value = NULL;
gchar *result;
g_return_val_if_fail( GCONF_IS_CLIENT( gconf ), NULL );
result = g_strdup( default_value );
value = read_value( gconf, path, use_schema, GCONF_VALUE_STRING );
if( value ){
g_free( result );
result = g_strdup( gconf_value_get_string( value ));
gconf_value_free( value );
}
return( result );
}
/**
* na_gconf_utils_read_string_list:
* @gconf: a #GConfClient instance.
......@@ -580,39 +640,6 @@ na_gconf_utils_remove_entry( GConfClient *gconf, const gchar *path, gchar **mess
return( ret );
}
static GConfValue *
read_value( GConfClient *gconf, const gchar *path, gboolean use_schema, GConfValueType type )
{
static const gchar *thisfn = "na_gconf_utils_read_value";
GError *error = NULL;
GConfValue *value = NULL;
if( use_schema ){
value = gconf_client_get( gconf, path, &error );
} else {
value = gconf_client_get_without_default( gconf, path, &error );
}
if( error ){
g_warning( "%s: path=%s, error=%s", thisfn, path, error->message );
g_error_free( error );
if( value ){
gconf_value_free( value );
value = NULL;
}
}
if( value ){
if( value->type != type ){
g_warning( "%s: path=%s, found type '%u' while waiting for type '%u'", thisfn, path, value->type, type );
gconf_value_free( value );
value = NULL;
}
}
return( value );
}
static gboolean
sync_gconf( GConfClient *gconf, gchar **message )
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment