[nautilus-actions] Review NAIExporter interface
- From: Pierre Wieser <pwieser src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus-actions] Review NAIExporter interface
- Date: Tue, 3 Jan 2012 22:35:00 +0000 (UTC)
commit cecb5823e7ec8dd6cc8734d2337f1ffca362f1a3
Author: Pierre Wieser <pwieser trychlos org>
Date: Tue Jan 3 23:02:29 2012 +0100
Review NAIExporter interface
ChangeLog | 3 +
src/core/na-exporter.c | 153 +++++++++++++++++++++-------------------------
src/core/na-iexporter.c | 31 +++++-----
3 files changed, 88 insertions(+), 99 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 6f709e0..4f3257c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2012-01-03 Pierre Wieser <pwieser trychlos org>
+ * src/core/na-exporter.c:
+ * src/core/na-iexporter.c: Review NAIExporter interface.
+
* src/core/na-iduplicable.c: Review NAIDuplicable interface.
* src/core/na-icontext.c: Review NAIContext interface.
diff --git a/src/core/na-exporter.c b/src/core/na-exporter.c
index 58a2429..7d5a43f 100644
--- a/src/core/na-exporter.c
+++ b/src/core/na-exporter.c
@@ -37,9 +37,6 @@
#include "na-exporter.h"
#include "na-export-format.h"
-extern gboolean iexporter_initialized;
-extern gboolean iexporter_finalized;
-
static GList *exporter_get_formats( const NAIExporter *exporter );
static void exporter_free_formats( const NAIExporter *exporter, GList * str_list );
static gchar *exporter_get_name( const NAIExporter *exporter );
@@ -66,25 +63,21 @@ na_exporter_get_formats( const NAPivot *pivot )
g_return_val_if_fail( NA_IS_PIVOT( pivot ), NULL );
formats = NULL;
+ iexporters = na_pivot_get_providers( pivot, NA_IEXPORTER_TYPE );
- if( iexporter_initialized && !iexporter_finalized ){
-
- iexporters = na_pivot_get_providers( pivot, NA_IEXPORTER_TYPE );
+ for( imod = iexporters ; imod ; imod = imod->next ){
+ str_list = exporter_get_formats( NA_IEXPORTER( imod->data ));
- for( imod = iexporters ; imod ; imod = imod->next ){
- str_list = exporter_get_formats( NA_IEXPORTER( imod->data ));
-
- for( is = str_list ; is ; is = is->next ){
- format = na_export_format_new(( NAIExporterFormatExt * ) is->data );
- formats = g_list_prepend( formats, format );
- }
-
- exporter_free_formats( NA_IEXPORTER( imod->data ), str_list );
+ for( is = str_list ; is ; is = is->next ){
+ format = na_export_format_new(( NAIExporterFormatExt * ) is->data );
+ formats = g_list_prepend( formats, format );
}
- na_pivot_free_providers( iexporters );
+ exporter_free_formats( NA_IEXPORTER( imod->data ), str_list );
}
+ na_pivot_free_providers( iexporters );
+
return( formats );
}
@@ -134,44 +127,41 @@ na_exporter_to_buffer( const NAPivot *pivot, const NAObjectItem *item, GQuark fo
buffer = NULL;
- if( iexporter_initialized && !iexporter_finalized ){
-
- g_debug( "%s: pivot=%p, item=%p (%s), format=%u (%s), messages=%p",
- thisfn,
- ( void * ) pivot,
- ( void * ) item, G_OBJECT_TYPE_NAME( item ),
- ( guint ) format, g_quark_to_string( format ),
- ( void * ) messages );
-
- exporter = find_exporter_for_format( pivot, format );
- g_debug( "%s: exporter=%p (%s)", thisfn, ( void * ) exporter, G_OBJECT_TYPE_NAME( exporter ));
-
- if( exporter ){
- parms.version = 1;
- parms.exported = ( NAObjectItem * ) item;
- parms.format = format;
- parms.buffer = NULL;
- parms.messages = messages ? *messages : NULL;
-
- if( NA_IEXPORTER_GET_INTERFACE( exporter )->to_buffer ){
- NA_IEXPORTER_GET_INTERFACE( exporter )->to_buffer( exporter, &parms );
-
- if( parms.buffer ){
- buffer = parms.buffer;
- }
-
- } else {
- name = exporter_get_name( exporter );
- msg = g_strdup_printf( _( "NAIExporter %s doesn't implement 'to_buffer' interface." ), name );
- *messages = g_slist_append( *messages, msg );
- g_free( name );
+ g_debug( "%s: pivot=%p, item=%p (%s), format=%u (%s), messages=%p",
+ thisfn,
+ ( void * ) pivot,
+ ( void * ) item, G_OBJECT_TYPE_NAME( item ),
+ ( guint ) format, g_quark_to_string( format ),
+ ( void * ) messages );
+
+ exporter = find_exporter_for_format( pivot, format );
+ g_debug( "%s: exporter=%p (%s)", thisfn, ( void * ) exporter, G_OBJECT_TYPE_NAME( exporter ));
+
+ if( exporter ){
+ parms.version = 1;
+ parms.exported = ( NAObjectItem * ) item;
+ parms.format = format;
+ parms.buffer = NULL;
+ parms.messages = messages ? *messages : NULL;
+
+ if( NA_IEXPORTER_GET_INTERFACE( exporter )->to_buffer ){
+ NA_IEXPORTER_GET_INTERFACE( exporter )->to_buffer( exporter, &parms );
+
+ if( parms.buffer ){
+ buffer = parms.buffer;
}
} else {
- msg = g_strdup_printf(
- _( "No NAIExporter implementation found for %s format." ), g_quark_to_string( format ));
+ name = exporter_get_name( exporter );
+ msg = g_strdup_printf( _( "NAIExporter %s doesn't implement 'to_buffer' interface." ), name );
*messages = g_slist_append( *messages, msg );
+ g_free( name );
}
+
+ } else {
+ msg = g_strdup_printf(
+ _( "No NAIExporter implementation found for %s format." ), g_quark_to_string( format ));
+ *messages = g_slist_append( *messages, msg );
}
return( buffer );
@@ -206,45 +196,42 @@ na_exporter_to_file( const NAPivot *pivot, const NAObjectItem *item, const gchar
export_uri = NULL;
- if( iexporter_initialized && !iexporter_finalized ){
-
- g_debug( "%s: pivot=%p, item=%p (%s), folder_uri=%s, format=%u (%s), messages=%p",
- thisfn,
- ( void * ) pivot,
- ( void * ) item, G_OBJECT_TYPE_NAME( item ),
- folder_uri,
- ( guint ) format, g_quark_to_string( format ),
- ( void * ) messages );
-
- exporter = find_exporter_for_format( pivot, format );
-
- if( exporter ){
- parms.version = 1;
- parms.exported = ( NAObjectItem * ) item;
- parms.folder = ( gchar * ) folder_uri;
- parms.format = format;
- parms.basename = NULL;
- parms.messages = messages ? *messages : NULL;
-
- if( NA_IEXPORTER_GET_INTERFACE( exporter )->to_file ){
- NA_IEXPORTER_GET_INTERFACE( exporter )->to_file( exporter, &parms );
-
- if( parms.basename ){
- export_uri = g_strdup_printf( "%s%s%s", folder_uri, G_DIR_SEPARATOR_S, parms.basename );
- }
-
- } else {
- name = exporter_get_name( exporter );
- msg = g_strdup_printf( _( "NAIExporter %s doesn't implement 'to_file' interface." ), name );
- *messages = g_slist_append( *messages, msg );
- g_free( name );
+ g_debug( "%s: pivot=%p, item=%p (%s), folder_uri=%s, format=%u (%s), messages=%p",
+ thisfn,
+ ( void * ) pivot,
+ ( void * ) item, G_OBJECT_TYPE_NAME( item ),
+ folder_uri,
+ ( guint ) format, g_quark_to_string( format ),
+ ( void * ) messages );
+
+ exporter = find_exporter_for_format( pivot, format );
+
+ if( exporter ){
+ parms.version = 1;
+ parms.exported = ( NAObjectItem * ) item;
+ parms.folder = ( gchar * ) folder_uri;
+ parms.format = format;
+ parms.basename = NULL;
+ parms.messages = messages ? *messages : NULL;
+
+ if( NA_IEXPORTER_GET_INTERFACE( exporter )->to_file ){
+ NA_IEXPORTER_GET_INTERFACE( exporter )->to_file( exporter, &parms );
+
+ if( parms.basename ){
+ export_uri = g_strdup_printf( "%s%s%s", folder_uri, G_DIR_SEPARATOR_S, parms.basename );
}
} else {
- msg = g_strdup_printf(
- _( "No NAIExporter implementation found for %s format." ), g_quark_to_string( format ));
+ name = exporter_get_name( exporter );
+ msg = g_strdup_printf( _( "NAIExporter %s doesn't implement 'to_file' interface." ), name );
*messages = g_slist_append( *messages, msg );
+ g_free( name );
}
+
+ } else {
+ msg = g_strdup_printf(
+ _( "No NAIExporter implementation found for %s format." ), g_quark_to_string( format ));
+ *messages = g_slist_append( *messages, msg );
}
return( export_uri );
diff --git a/src/core/na-iexporter.c b/src/core/na-iexporter.c
index d5c1579..e51da3d 100644
--- a/src/core/na-iexporter.c
+++ b/src/core/na-iexporter.c
@@ -40,12 +40,11 @@ struct _NAIExporterInterfacePrivate {
void *empty; /* so that gcc -pedantic is happy */
};
-gboolean iexporter_initialized = FALSE;
-gboolean iexporter_finalized = FALSE;
+static guint st_initializations = 0; /* interface initialization count */
static GType register_type( void );
-static void interface_base_init( NAIExporterInterface *klass );
-static void interface_base_finalize( NAIExporterInterface *klass );
+static void interface_init( NAIExporterInterface *klass );
+static void interface_finalize( NAIExporterInterface *klass );
static guint iexporter_get_version( const NAIExporter *instance );
@@ -79,8 +78,8 @@ register_type( void )
static const GTypeInfo info = {
sizeof( NAIExporterInterface ),
- ( GBaseInitFunc ) interface_base_init,
- ( GBaseFinalizeFunc ) interface_base_finalize,
+ ( GBaseInitFunc ) interface_init,
+ ( GBaseFinalizeFunc ) interface_finalize,
NULL,
NULL,
NULL,
@@ -99,11 +98,11 @@ register_type( void )
}
static void
-interface_base_init( NAIExporterInterface *klass )
+interface_init( NAIExporterInterface *klass )
{
- static const gchar *thisfn = "na_iexporter_interface_base_init";
+ static const gchar *thisfn = "na_iexporter_interface_init";
- if( !iexporter_initialized ){
+ if( !st_initializations ){
g_debug( "%s: klass%p (%s)", thisfn, ( void * ) klass, G_OBJECT_CLASS_NAME( klass ));
@@ -114,21 +113,21 @@ interface_base_init( NAIExporterInterface *klass )
klass->get_formats = NULL;
klass->to_file = NULL;
klass->to_buffer = NULL;
-
- iexporter_initialized = TRUE;
}
+
+ st_initializations += 1;
}
static void
-interface_base_finalize( NAIExporterInterface *klass )
+interface_finalize( NAIExporterInterface *klass )
{
- static const gchar *thisfn = "na_iexporter_interface_base_finalize";
+ static const gchar *thisfn = "na_iexporter_interface_finalize";
- if( iexporter_initialized && !iexporter_finalized ){
+ st_initializations -= 1;
- g_debug( "%s: klass=%p", thisfn, ( void * ) klass );
+ if( !st_initializations ){
- iexporter_finalized = TRUE;
+ g_debug( "%s: klass=%p", thisfn, ( void * ) klass );
g_free( klass->private );
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]