NAIFactoryObject

NAIFactoryObject — The NAObjectItem Interface v 1

Synopsis

#include <nautilus-actions/na-ifactory_object.h>

#define             NA_TYPE_IFACTORY_OBJECT
#define             NA_IFACTORY_OBJECT                  (instance)
#define             NA_IS_IFACTORY_OBJECT               (instance)
#define             NA_IFACTORY_OBJECT_GET_INTERFACE    (instance)
                    NAIFactoryObject;
                    NAIFactoryObjectInterface;
NADataBoxed *       na_ifactory_object_get_data_boxed   (const NAIFactoryObject *object,
                                                         const gchar *name);
NADataGroup *       na_ifactory_object_get_data_groups  (const NAIFactoryObject *object);
void *              na_ifactory_object_get_as_void      (const NAIFactoryObject *object,
                                                         const gchar *name);
void                na_ifactory_object_set_from_void    (NAIFactoryObject *object,
                                                         const gchar *name,
                                                         const void *data);

Object Hierarchy

  GInterface
   +----NAIFactoryObject

Prerequisites

NAIFactoryObject requires GObject.

Known Implementations

NAIFactoryObject is implemented by NAObjectAction, NAObjectMenu and NAObjectProfile.

Description

This interface is implemented by NAObjectItem derived objects so that they can take advantage of our data factory management system.

A NAObjectItem derived object which would implement this NAIFactoryObject interface must meet following conditions:

  • accept an empty constructor

Versions historic

Table 9. Historic of the versions of the NAIFactoryObject interface

Nautilus-Actions™ version NAIFactoryObject interface version  
since 2.30 1 current version

Details

NA_TYPE_IFACTORY_OBJECT

#define NA_TYPE_IFACTORY_OBJECT                      ( na_ifactory_object_get_type())

NA_IFACTORY_OBJECT()

#define NA_IFACTORY_OBJECT( instance )               ( G_TYPE_CHECK_INSTANCE_CAST( instance, NA_TYPE_IFACTORY_OBJECT, NAIFactoryObject ))

NA_IS_IFACTORY_OBJECT()

#define NA_IS_IFACTORY_OBJECT( instance )            ( G_TYPE_CHECK_INSTANCE_TYPE( instance, NA_TYPE_IFACTORY_OBJECT ))

NA_IFACTORY_OBJECT_GET_INTERFACE()

#define NA_IFACTORY_OBJECT_GET_INTERFACE( instance ) ( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NA_TYPE_IFACTORY_OBJECT, NAIFactoryObjectInterface ))

NAIFactoryObject

typedef struct _NAIFactoryObject NAIFactoryObject;

NAIFactoryObjectInterface

typedef struct {
	/**
	 * get_version:
	 * @instance: this #NAIFactoryObject instance.
	 *
	 * Defaults to 1.
	 *
	 * Returns: the version of this interface supported by @instance implementation.
	 *
	 * Since: 2.30
	 */
	guint         ( *get_version )( const NAIFactoryObject *instance );

	/**
	 * get_groups:
	 * @instance: this #NAIFactoryObject instance.
	 *
	 * Returns: a pointer to the NADataGroup which defines this object.
	 *
	 * Since: 2.30
	 */
	NADataGroup * ( *get_groups ) ( const NAIFactoryObject *instance );

	/**
	 * copy:
	 * @instance: the target #NAIFactoryObject instance.
	 * @source: the source #NAIFactoryObject instance.
	 *
	 * This function is triggered after having copied @source to
	 * @instance target. This later may take advantage of this call
	 * to do some particular copy tasks.
	 *
	 * Since: 2.30
	 */
	void          ( *copy )       ( NAIFactoryObject *instance, const NAIFactoryObject *source );

	/**
	 * are_equal:
	 * @a: the first #NAIFactoryObject instance.
	 * @b: the second #NAIFactoryObject instance.
	 *
	 * This function is triggered after all elementary data comparisons
	 * have been sucessfully made.
	 *
	 * Returns: %TRUE if @a is equal to @b.
	 *
	 * Since: 2.30
	 */
	gboolean      ( *are_equal )  ( const NAIFactoryObject *a, const NAIFactoryObject *b );

	/**
	 * is_valid:
	 * @object: the #NAIFactoryObject instance whose validity is to be checked.
	 *
	 * This function is triggered after all elementary data comparisons
	 * have been sucessfully made.
	 *
	 * Returns: %TRUE if @object is valid.
	 *
	 * Since: 2.30
	 */
	gboolean      ( *is_valid )   ( const NAIFactoryObject *object );

	/**
	 * read_start:
	 * @instance: this #NAIFactoryObject instance.
	 * @reader: the instance which has provided read services.
	 * @reader_data: the data associated to @reader.
	 * @messages: a pointer to a #GSList list of strings; the instance
	 *  may append messages to this list, but shouldn't reinitialize it.
	 *
	 * Called just before the object is unserialized.
	 *
	 * Since: 2.30
	 */
	void          ( *read_start ) ( NAIFactoryObject *instance, const NAIFactoryProvider *reader, void *reader_data, GSList **messages );

	/**
	 * read_done:
	 * @instance: this #NAIFactoryObject instance.
	 * @reader: the instance which has provided read services.
	 * @reader_data: the data associated to @reader.
	 * @messages: a pointer to a #GSList list of strings; the instance
	 *  may append messages to this list, but shouldn't reinitialize it.
	 *
	 * Called when the object has been unserialized.
	 *
	 * Since: 2.30
	 */
	void          ( *read_done )  ( NAIFactoryObject *instance, const NAIFactoryProvider *reader, void *reader_data, GSList **messages );

	/**
	 * write_start:
	 * @instance: this #NAIFactoryObject instance.
	 * @writer: the instance which has provided writing services.
	 * @writer_data: the data associated to @writer.
	 * @messages: a pointer to a #GSList list of strings; the instance
	 *  may append messages to this list, but shouldn't reinitialize it.
	 *
	 * Called just before the object is serialized.
	 *
	 * Returns: a NAIIOProvider operation return code.
	 *
	 * Since: 2.30
	 */
	guint         ( *write_start )( NAIFactoryObject *instance, const NAIFactoryProvider *writer, void *writer_data, GSList **messages );

	/**
	 * write_done:
	 * @instance: this #NAIFactoryObject instance.
	 * @writer: the instance which has provided writing services.
	 * @writer_data: the data associated to @writer.
	 * @messages: a pointer to a #GSList list of strings; the instance
	 *  may append messages to this list, but shouldn't reinitialize it.
	 *
	 * Called when the object has been serialized.
	 *
	 * Returns: a NAIIOProvider operation return code.
	 *
	 * Since: 2.30
	 */
	guint         ( *write_done ) ( NAIFactoryObject *instance, const NAIFactoryProvider *writer, void *writer_data, GSList **messages );
} NAIFactoryObjectInterface;

In order to take full advantage of our data managament system, NAObjectItem-derived objects all implement this NAIFactoryObject interface.

get_version ()

returns the version of this interface the NAObjectItem implements.

get_groups ()

returns a pointer to the NADataGroup which defines this object.

copy ()

post copy callback.

are_equal ()

tests if two NAObjectItem are equals.

is_valid ()

tests if one NAObjectItem is valid.

read_start ()

triggered before serializing a NAObjectItem.

read_done ()

triggered after a NAObjectItem has been serialized.

write_start ()

triggered before unserializing a NAObjectItem.

write_done ()

triggered after a NAObjectItem has been unserialized.

na_ifactory_object_get_data_boxed ()

NADataBoxed *       na_ifactory_object_get_data_boxed   (const NAIFactoryObject *object,
                                                         const gchar *name);

The returned NADataBoxed is owned by NAIFactoryObject object, and should not be released by the caller.

object :

a NAIFactoryObject object.

name :

the name of the elementary data we are searching for.

Returns :

The NADataBoxed object which contains the specified data, or NULL.

Since 2.30


na_ifactory_object_get_data_groups ()

NADataGroup *       na_ifactory_object_get_data_groups  (const NAIFactoryObject *object);

The returned NADataGroup is owned by the NAIFactoryObject object, and should not be released by the caller.

object :

a NAIFactoryObject object.

Returns :

The NADataGroup groups definition, or NULL.

Since 2.30


na_ifactory_object_get_as_void ()

void *              na_ifactory_object_get_as_void      (const NAIFactoryObject *object,
                                                         const gchar *name);

If the type of the value is NA_DATA_TYPE_STRING, NA_DATA_TYPE_LOCALE_STRING, or NA_DATA_TYPE_STRING_LIST, then the returned value is a newly allocated one and should be g_free() (resp. na_core_utils_slist_free()) by the caller.

object :

this NAIFactoryObject instance.

name :

the elementary data whose value is to be got.

Returns :

the searched value.

Since 2.30


na_ifactory_object_set_from_void ()

void                na_ifactory_object_set_from_void    (NAIFactoryObject *object,
                                                         const gchar *name,
                                                         const void *data);

Set the elementary data with the given value.

object :

this NAIFactoryObject instance.

name :

the name of the elementary data whose value is to be set.

data :

the value to set.

Since 2.30