[nautilus-actions] Define NAIIOFactory interface



commit 1cd7c669527ca8ab92e20417ad700413780f1d7f
Author: Pierre Wieser <pwieser trychlos org>
Date:   Mon Feb 15 17:55:47 2010 +0100

    Define NAIIOFactory interface

 src/api/na-iio-factory-factory.h |   46 ++++++++
 src/api/na-iio-factory.h         |  144 ++++++++++++++++++++++++
 src/core/na-iio-factory.c        |  223 ++++++++++++++++++++++++++++++++++++++
 src/core/na-io-factory.c         |  132 ++++++++++++++++++++++
 src/core/na-io-factory.h         |   51 +++++++++
 5 files changed, 596 insertions(+), 0 deletions(-)
---
diff --git a/src/api/na-iio-factory-factory.h b/src/api/na-iio-factory-factory.h
new file mode 100644
index 0000000..879a58e
--- /dev/null
+++ b/src/api/na-iio-factory-factory.h
@@ -0,0 +1,46 @@
+/*
+ * Nautilus Actions
+ * A Nautilus extension which offers configurable context menu actions.
+ *
+ * Copyright (C) 2005 The GNOME Foundation
+ * Copyright (C) 2006, 2007, 2008 Frederic Ruaudel and others (see AUTHORS)
+ * Copyright (C) 2009, 2010 Pierre Wieser and others (see AUTHORS)
+ *
+ * This Program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this Library; see the file COPYING.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ *   Frederic Ruaudel <grumz grumz net>
+ *   Rodrigo Moya <rodrigo gnome-db org>
+ *   Pierre Wieser <pwieser trychlos org>
+ *   ... and many others (see AUTHORS)
+ */
+
+#ifndef __NAUTILUS_ACTIONS_API_NA_IIO_FACTORY_FACTORY_H__
+#define __NAUTILUS_ACTIONS_API_NA_IIO_FACTORY_FACTORY_H__
+
+/**
+ * SECTION: na_iio_factory
+ * @short_description: #NAIIOFactory interface definition.
+ * @include: nautilus-actions/na-iio_factory-fn.h
+ */
+
+G_BEGIN_DECLS
+
+typedef struct NAIIOFactory                 NAIIOFactory;
+
+G_END_DECLS
+
+#endif /* __NAUTILUS_ACTIONS_API_NA_IIO_FACTORY_FACTORY_H__ */
diff --git a/src/api/na-iio-factory.h b/src/api/na-iio-factory.h
new file mode 100644
index 0000000..2dfbaf7
--- /dev/null
+++ b/src/api/na-iio-factory.h
@@ -0,0 +1,144 @@
+/*
+ * Nautilus Actions
+ * A Nautilus extension which offers configurable context menu actions.
+ *
+ * Copyright (C) 2005 The GNOME Foundation
+ * Copyright (C) 2006, 2007, 2008 Frederic Ruaudel and others (see AUTHORS)
+ * Copyright (C) 2009, 2010 Pierre Wieser and others (see AUTHORS)
+ *
+ * This Program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this Library; see the file COPYING.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ *   Frederic Ruaudel <grumz grumz net>
+ *   Rodrigo Moya <rodrigo gnome-db org>
+ *   Pierre Wieser <pwieser trychlos org>
+ *   ... and many others (see AUTHORS)
+ */
+
+#ifndef __NAUTILUS_ACTIONS_API_NA_IIO_FACTORY_H__
+#define __NAUTILUS_ACTIONS_API_NA_IIO_FACTORY_H__
+
+/**
+ * SECTION: na_iio_factory
+ * @short_description: #NAIIOFactory interface definition.
+ * @include: nautilus-actions/na-iio_factory.h
+ *
+ * This is the interface used by data factory management system for
+ * having serialization/unserialization services. This interface should
+ * be implemented by I/O providers which would take advantage of this
+ * system.
+ *
+ * Nautilus-Actions v 2.30 - API version:  1
+ */
+
+#include "na-idata-factory.h"
+#include "na-iio-factory-factory.h"
+
+G_BEGIN_DECLS
+
+#define NA_IIO_FACTORY_TYPE							( na_iio_factory_get_type())
+#define NA_IIO_FACTORY( instance )					( G_TYPE_CHECK_INSTANCE_CAST( instance, NA_IIO_FACTORY_TYPE, NAIIOFactory ))
+#define NA_IS_IIO_FACTORY( instance )				( G_TYPE_CHECK_INSTANCE_TYPE( instance, NA_IIO_FACTORY_TYPE ))
+#define NA_IIO_FACTORY_GET_INTERFACE( instance )	( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NA_IIO_FACTORY_TYPE, NAIIOFactoryInterface ))
+
+typedef struct NAIIOFactoryInterfacePrivate NAIIOFactoryInterfacePrivate;
+
+typedef struct {
+	GTypeInterface                parent;
+	NAIIOFactoryInterfacePrivate *private;
+
+	/**
+	 * get_version:
+	 * @instance: this #NAIIOFactory instance.
+	 *
+	 * Returns: the version of this interface supported by @instance implementation.
+	 *
+	 * Defaults to 1.
+	 */
+	guint    ( *get_version )( const NAIIOFactory *instance );
+
+	/**
+	 * read_value:
+	 * @reader: this #NAIIOFactory instance.
+	 * @reader_data: the data associated to this instance.
+	 * @iddef: the description of the data to be readen.
+	 * @messages: a pointer to a #GSList list of strings; the provider
+	 *  may append messages to this list, but shouldn't reinitialize it.
+	 *
+	 * Returns: a newly allocated #GValue, or %NULL if an error has occurred.
+	 *
+	 * Note that a string list should be returned as a #GValue of type
+	 * G_TYPE_POINTER, which itself must be a GSList pointer.
+	 *
+	 * The returned #GValue, and its content if apply, will be freed
+	 * by the caller.
+	 *
+	 * This method must be implemented in order any data be read.
+	 */
+	GValue * ( *read_value ) ( const NAIIOFactory *reader, void *reader_data, const NadfIdType *iddef, GSList **messages );
+
+	/**
+	 * read_done:
+	 * @reader: this #NAIIOFactory instance.
+	 * @reader_data: the data associated to this instance.
+	 * @object: the #NAIDataFactory object which comes to be readen.
+	 * @messages: a pointer to a #GSList list of strings; the provider
+	 *  may append messages to this list, but shouldn't reinitialize it.
+	 *
+	 * API called by #NAIDataFactory when all data have been readen.
+	 * Implementor may take advantage of this to do some cleanup.
+	 */
+	void     ( *read_done )  ( const NAIIOFactory *reader, void *reader_data, NAIDataFactory *object, GSList **messages  );
+
+	/**
+	 * write_value:
+	 * @writer: this #NAIIOFactory instance.
+	 * @writer_data: the data associated to this instance.
+	 * @iddef: the description of the data to be written.
+	 * @value: the #NADataElement to be written down.
+	 * @messages: a pointer to a #GSList list of strings; the provider
+	 *  may append messages to this list, but shouldn't reinitialize it.
+	 *
+	 * Write the data embedded in @value down to @instance.
+	 *
+	 * This method must be implemented in order any data be written.
+	 */
+	void     ( *write_value )( const NAIIOFactory *writer, void *writer_data, const NadfIdType *iddef, GValue *value, GSList **messages );
+
+	/**
+	 * write_done:
+	 * @writer: this #NAIIOFactory instance.
+	 * @writer_data: the data associated to this instance.
+	 * @object: the #NAIDataFactory object which comes to be written.
+	 * @messages: a pointer to a #GSList list of strings; the provider
+	 *  may append messages to this list, but shouldn't reinitialize it.
+	 *
+	 * API called by #NAIDataFactory when all data have been written.
+	 * Implementor may take advantage of this to do some cleanup.
+	 */
+	void     ( *write_done ) ( const NAIIOFactory *writer, void *writer_data, NAIDataFactory *object, GSList **messages  );
+}
+	NAIIOFactoryInterface;
+
+GType           na_iio_factory_get_type( void );
+
+NAIDataFactory *na_iio_factory_read_item  ( const NAIIOFactory *reader, void *reader_data, GType type, GSList **messages );
+
+void            na_iio_factory_write_item( const NAIIOFactory *writer, void *writer_data, NAIDataFactory *serializable, GSList **messages );
+
+G_END_DECLS
+
+#endif /* __NAUTILUS_ACTIONS_API_NA_IIO_FACTORY_H__ */
diff --git a/src/core/na-iio-factory.c b/src/core/na-iio-factory.c
new file mode 100644
index 0000000..aa9cc0b
--- /dev/null
+++ b/src/core/na-iio-factory.c
@@ -0,0 +1,223 @@
+/*
+ * Nautilus Actions
+ * A Nautilus extension which offers configurable context menu actions.
+ *
+ * Copyright (C) 2005 The GNOME Foundation
+ * Copyright (C) 2006, 2007, 2008 Frederic Ruaudel and others (see AUTHORS)
+ * Copyright (C) 2009, 2010 Pierre Wieser and others (see AUTHORS)
+ *
+ * This Program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this Library; see the file COPYING.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ *   Frederic Ruaudel <grumz grumz net>
+ *   Rodrigo Moya <rodrigo gnome-db org>
+ *   Pierre Wieser <pwieser trychlos org>
+ *   ... and many others (see AUTHORS)
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <api/na-iio-factory.h>
+
+#include "na-data-factory.h"
+#include "na-iio-factory-priv.h"
+#include "na-io-factory.h"
+
+gboolean               iio_factory_initialized = FALSE;
+gboolean               iio_factory_finalized   = FALSE;
+NAIIOFactoryInterface *iio_factory_klass       = NULL;
+
+static GType register_type( void );
+static void  interface_base_init( NAIIOFactoryInterface *klass );
+static void  interface_base_finalize( NAIIOFactoryInterface *klass );
+
+static guint iio_factory_get_version( const NAIIOFactory *instance );
+
+static void  v_io_factory_read_done( const NAIIOFactory *reader, void *reader_data, NAIDataFactory *serializable, GSList **messages );
+static void  v_io_factory_write_done( const NAIIOFactory *writer, void *writer_data, NAIDataFactory *serializable, GSList **messages );
+
+/**
+ * Registers the GType of this interface.
+ */
+GType
+na_iio_factory_get_type( void )
+{
+	static GType object_type = 0;
+
+	if( !object_type ){
+		object_type = register_type();
+	}
+
+	return( object_type );
+}
+
+static GType
+register_type( void )
+{
+	static const gchar *thisfn = "na_iio_factory_register_type";
+	GType type;
+
+	static const GTypeInfo info = {
+		sizeof( NAIIOFactoryInterface ),
+		( GBaseInitFunc ) interface_base_init,
+		( GBaseFinalizeFunc ) interface_base_finalize,
+		NULL,
+		NULL,
+		NULL,
+		0,
+		0,
+		NULL
+	};
+
+	g_debug( "%s", thisfn );
+
+	type = g_type_register_static( G_TYPE_INTERFACE, "NAIIOFactory", &info, 0 );
+
+	g_type_interface_add_prerequisite( type, G_TYPE_OBJECT );
+
+	return( type );
+}
+
+static void
+interface_base_init( NAIIOFactoryInterface *klass )
+{
+	static const gchar *thisfn = "na_iio_factory_interface_base_init";
+
+	if( !iio_factory_initialized ){
+
+		g_debug( "%s: klass=%p (%s)", thisfn, ( void * ) klass, G_OBJECT_CLASS_NAME( klass ));
+
+		klass->private = g_new0( NAIIOFactoryInterfacePrivate, 1 );
+
+		klass->get_version = iio_factory_get_version;
+		klass->read_value = NULL;
+		klass->read_done = NULL;
+		klass->write_value = NULL;
+		klass->write_done = NULL;
+
+		iio_factory_klass = klass;
+		iio_factory_initialized = TRUE;
+	}
+}
+
+static void
+interface_base_finalize( NAIIOFactoryInterface *klass )
+{
+	static const gchar *thisfn = "na_iio_factory_interface_base_finalize";
+	GList *ip;
+	NadfImplement *known;
+
+	if( iio_factory_initialized && !iio_factory_finalized ){
+
+		g_debug( "%s: klass=%p", thisfn, ( void * ) klass );
+
+		iio_factory_finalized = TRUE;
+
+		for( ip = klass->private->registered ; ip ; ip = ip->next ){
+			known = ( NadfImplement * ) ip->data;
+			g_free( known );
+		}
+		g_list_free( klass->private->registered );
+
+		g_free( klass->private );
+	}
+}
+
+static guint
+iio_factory_get_version( const NAIIOFactory *instance )
+{
+	return( 1 );
+}
+
+/**
+ * na_iio_factory_read_item:
+ * @reader: the instance which implements this #NAIIOFactory interface.
+ * @reader_data: instance data.
+ * @type: the #GType which identifies the #NAIDataFactory type.
+ * @messages: a pointer to a #GSList list of strings; the implementation
+ *  may append messages to this list, but shouldn't reinitialize it.
+ *
+ * Returns: a newly instantiated #NAIDataFactory object just readen from @reader.
+ */
+NAIDataFactory *
+na_iio_factory_read_item( const NAIIOFactory *reader, void *reader_data, GType type, GSList **messages )
+{
+	static const gchar *thisfn = "na_iio_factory_read_item";
+	NAIDataFactory *serializable;
+	gchar *msg;
+
+	serializable = NULL;
+
+	if( iio_factory_initialized && !iio_factory_finalized ){
+
+		g_return_val_if_fail( NA_IS_IIO_FACTORY( reader ), NULL );
+
+		serializable = na_data_factory_new( type );
+
+		if( serializable ){
+			na_data_factory_read( serializable, reader, reader_data, messages );
+			v_io_factory_read_done( reader, reader_data, serializable, messages );
+
+		} else {
+			msg = g_strdup_printf( "%s: %ld: unknown type", thisfn, ( long ) type );
+			g_warning( "%s", msg );
+			*messages = g_slist_append( *messages, msg );
+		}
+	}
+
+	return( serializable );
+}
+
+/**
+ * na_iio_factory_write_item:
+ * @writer: the instance which implements this #NAIIOFactory interface.
+ * @writer_data: instance data.
+ * @serializable: the #NAIDataFactory-derived object to be serialized.
+ * @messages: a pointer to a #GSList list of strings; the implementation
+ *  may append messages to this list, but shouldn't reinitialize it.
+ *
+ * Writes the data down to the IOFactory.
+ */
+void
+na_iio_factory_write_item( const NAIIOFactory *writer, void *writer_data, NAIDataFactory *serializable, GSList **messages )
+{
+	g_return_if_fail( NA_IS_IIO_FACTORY( writer ));
+	g_return_if_fail( NA_IS_IDATA_FACTORY( serializable ));
+
+	if( iio_factory_initialized && !iio_factory_finalized ){
+
+		na_data_factory_write( serializable, writer, writer_data, messages );
+		v_io_factory_write_done( writer, writer_data, serializable, messages );
+	}
+}
+
+static void
+v_io_factory_read_done( const NAIIOFactory *reader, void *reader_data, NAIDataFactory *serializable, GSList **messages )
+{
+	if( NA_IIO_FACTORY_GET_INTERFACE( reader )->read_done ){
+		NA_IIO_FACTORY_GET_INTERFACE( reader )->read_done( reader, reader_data, serializable, messages );
+	}
+}
+
+static void
+v_io_factory_write_done( const NAIIOFactory *writer, void *writer_data, NAIDataFactory *serializable, GSList **messages )
+{
+	if( NA_IIO_FACTORY_GET_INTERFACE( writer )->write_done ){
+		NA_IIO_FACTORY_GET_INTERFACE( writer )->write_done( writer, writer_data, serializable, messages );
+	}
+}
diff --git a/src/core/na-io-factory.c b/src/core/na-io-factory.c
new file mode 100644
index 0000000..fb83b60
--- /dev/null
+++ b/src/core/na-io-factory.c
@@ -0,0 +1,132 @@
+/*
+ * Nautilus Actions
+ * A Nautilus extension which offers configurable context menu actions.
+ *
+ * Copyright (C) 2005 The GNOME Foundation
+ * Copyright (C) 2006, 2007, 2008 Frederic Ruaudel and others (see AUTHORS)
+ * Copyright (C) 2009, 2010 Pierre Wieser and others (see AUTHORS)
+ *
+ * This Program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this Library; see the file COPYING.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ *   Frederic Ruaudel <grumz grumz net>
+ *   Rodrigo Moya <rodrigo gnome-db org>
+ *   Pierre Wieser <pwieser trychlos org>
+ *   ... and many others (see AUTHORS)
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "na-iio-factory-priv.h"
+#include "na-io-factory.h"
+
+extern gboolean               iio_factory_initialized;		/* defined in na-iio-factory.c */
+extern gboolean               iio_factory_finalized;		/* defined in na-iio-factory.c */
+extern NAIIOFactoryInterface *iio_factory_klass;			/* defined in na-iio-factory.c */
+
+/**
+ * na_io_factory_register:
+ * @type: the #GType of the implementation class.
+ * @groups: a table of #NadfIdGroup structures which defines the
+ *  serializable properties which will be attached to each instance of
+ *  this class at serialization time.
+ *
+ * Registers the implementation #GType @type.
+ */
+void
+na_io_factory_register( GType type, const NadfIdGroup *groups )
+{
+	static const gchar *thisfn = "na_io_factory_register";
+	NadfImplement *known;
+	NadfIdGroup *registered;
+
+	if( iio_factory_initialized && !iio_factory_finalized ){
+
+		g_debug( "%s: type=%lu, groups=%p", thisfn, ( unsigned long ) type, ( void * ) groups );
+
+		g_return_if_fail( groups != NULL );
+
+		registered = na_io_factory_get_groups( type );
+		if( registered ){
+			g_warning( "%s: type=%lu: already registered", thisfn, ( unsigned long ) type );
+
+		} else {
+			/* register the implementation
+			 */
+			known = g_new0( NadfImplement, 1 );
+			known->type = type;
+			known->groups = ( NadfIdGroup * ) groups;
+
+			iio_factory_klass->private->registered = g_list_prepend( iio_factory_klass->private->registered, known );
+		}
+	}
+}
+
+/**
+ * na_io_factory_get_groups:
+ * @type: a previously registered #GType.
+ *
+ * Returns the #NadfIdGroups table which has been registered for this @type,
+ * or %NULL.
+ */
+NadfIdGroup *
+na_io_factory_get_groups( GType type )
+{
+	GList *it;
+
+	if( iio_factory_initialized && !iio_factory_finalized ){
+
+		for( it = iio_factory_klass->private->registered ; it ; it = it->next ){
+			if((( NadfImplement * ) it->data )->type == type ){
+				return((( NadfImplement * ) it->data )->groups );
+			}
+		}
+	}
+
+	return( NULL );
+}
+
+/**
+ * na_io_factory_read_value:
+ * @reader: the instance which implements this #NAIIOFactory interface.
+ * @reader_data: instance data.
+ * @iddef: a NadfIdType structure which identifies the data to be unserialized.
+ * @messages: a pointer to a #GSList list of strings; the implementation
+ *  may append messages to this list, but shouldn't reinitialize it.
+ *
+ * Returns: the desired value, as a newly allocated #GValue, or NULL.
+ */
+GValue *
+na_io_factory_read_value( const NAIIOFactory *reader, void *reader_data, const NadfIdType *iddef, GSList **messages )
+{
+	GValue *value;
+
+	g_return_val_if_fail( NA_IS_IIO_FACTORY( reader ), NULL );
+
+	value = NULL;
+
+	if( iio_factory_initialized && !iio_factory_finalized ){
+
+		if( NA_IIO_FACTORY_GET_INTERFACE( reader )->read_value ){
+
+			value = NA_IIO_FACTORY_GET_INTERFACE( reader )->read_value( reader, reader_data, iddef, messages );
+		}
+	}
+
+	return( value );
+}
diff --git a/src/core/na-io-factory.h b/src/core/na-io-factory.h
new file mode 100644
index 0000000..0f84e0e
--- /dev/null
+++ b/src/core/na-io-factory.h
@@ -0,0 +1,51 @@
+/*
+ * Nautilus Actions
+ * A Nautilus extension which offers configurable context menu actions.
+ *
+ * Copyright (C) 2005 The GNOME Foundation
+ * Copyright (C) 2006, 2007, 2008 Frederic Ruaudel and others (see AUTHORS)
+ * Copyright (C) 2009, 2010 Pierre Wieser and others (see AUTHORS)
+ *
+ * This Program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this Library; see the file COPYING.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ *   Frederic Ruaudel <grumz grumz net>
+ *   Rodrigo Moya <rodrigo gnome-db org>
+ *   Pierre Wieser <pwieser trychlos org>
+ *   ... and many others (see AUTHORS)
+ */
+
+#ifndef __CORE_NA_IO_FACTORY_H__
+#define __CORE_NA_IO_FACTORY_H__
+
+/**
+ * SECTION: na_iio_factory
+ * @short_description: #NAIIOFactory interface definition.
+ * @include: core/na-io-factory.h
+ */
+
+#include <api/na-iio-factory.h>
+
+G_BEGIN_DECLS
+
+void         na_io_factory_register  ( GType type, const NadfIdGroup *groups );
+NadfIdGroup *na_io_factory_get_groups( GType type );
+
+GValue      *na_io_factory_read_value( const NAIIOFactory *reader, void *reader_data, const NadfIdType *iddef, GSList **messages );
+
+G_END_DECLS
+
+#endif /* __NAUTILUS_ACTIONS_API_NA_IO_FACTORY_H__ */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]