NAObject

NAObject — The Deepest Base Class Definition

Synopsis

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

#define             NA_OBJECT_TYPE
#define             NA_OBJECT                           (object)
#define             NA_IS_OBJECT                        (object)
                    NAObject;
                    NAObjectClass;
void                na_object_object_check_status       (const NAObject *object);
gboolean            na_object_object_check_status_up    (const NAObject *object);
void                na_object_object_reset_origin       (NAObject *object,
                                                         const NAObject *origin);
NAObject *          na_object_object_ref                (NAObject *object);
void                na_object_object_unref              (NAObject *object);
void                na_object_object_copy               (NAObject *target,
                                                         const NAObject *source,
                                                         gboolean recursive);
void                na_object_object_dump               (const NAObject *object);
void                na_object_object_dump_norec         (const NAObject *object);
void                na_object_object_dump_tree          (GList *tree);
GList *             na_object_object_get_hierarchy      (const NAObject *object);
void                na_object_free_hierarchy            (GList *hierarchy);
void                na_object_object_debug_invalid      (const NAObject *object,
                                                         const gchar *reason);

Object Hierarchy

  GObject
   +----NAObject
         +----NAObjectId

Implemented Interfaces

NAObject implements NAIDuplicable.

Description

This is the base class of all our data object hierarchy. NAObject is supposed to be used as a pure virtual base class, i.e. should only be derived.

Details

NA_OBJECT_TYPE

#define NA_OBJECT_TYPE                  ( na_object_object_get_type())

NA_OBJECT()

#define NA_OBJECT( object )             ( G_TYPE_CHECK_INSTANCE_CAST( object, NA_OBJECT_TYPE, NAObject ))

NA_IS_OBJECT()

#define NA_IS_OBJECT( object )          ( G_TYPE_CHECK_INSTANCE_TYPE( object, NA_OBJECT_TYPE ))

NAObject

typedef struct _NAObject NAObject;

NAObjectClass

typedef struct {
	/**
	 * dump:
	 * @object: the NAObject-derived object to be dumped.
	 *
	 * Dumps via g_debug the content of the object.
	 *
	 * NAObject class takes care of calling this function for each
	 * derived class, starting from topmost base class up to most-
	 * derived one. Each derived class has so only to take care of
	 * dumping its own data.
	 *
	 * Since: 2.30
	 */
	void     ( *dump )     ( const NAObject *object );

	/**
	 * copy:
	 * @target: the NAObject-derived object which will receive data.
	 * @source: the NAObject-derived object which will provide data.
	 * @recursive: whether children should be recursively copied.
	 *
	 * Copies data and properties from @source to @target.
	 *
	 * Each derived class should take care of implementing this function
	 * when relevant. NAObject class will take care of calling this
	 * function for each class of the hierarchy, starting from topmost
	 * base class up to the most-derived one. Each class has so only to
	 * take care of dumping its own data.
	 *
	 * Since: 2.30
	 */
	void     ( *copy )     ( NAObject *target, const NAObject *source, gboolean recursive );

	/**
	 * are_equal:
	 * @a: a first NAObject object.
	 * @b: a second NAObject object to be compared to the first one.
	 *
	 * Compares the two objects.
	 *
	 * Each derived class should take care of implementing this function
	 * when relevant. NAObject class will take care of calling this
	 * function for each class of the hierarchy, starting from topmost
	 * base class up to the most-derived one, at least while result
	 * stays at TRUE.
	 * As soon as a difference is detected, the calling sequence will
	 * be stopped, and the result returned.
	 *
	 * Returns: TRUE if @a and @b are identical, FALSE else.
	 *
	 * Since: 2.30
	 */
	gboolean ( *are_equal )( const NAObject *a, const NAObject *b );

	/**
	 * is_valid:
	 * @object: the NAObject object to be checked.
	 *
	 * Checks @object for validity.
	 *
	 * A NAObject is valid if its internal identifiant is set.
	 *
	 * Each derived class should take care of implementing this function
	 * when relevant. NAObject class will take care of calling this
	 * function for each class of the hierarchy, starting from topmost
	 * base class up to the most-derived one, at least while result
	 * stays at TRUE.
	 * As soon as a difference is detected, the calling sequence will
	 * be stopped, and the result returned.
	 *
	 * Returns: TRUE if @object is valid, FALSE else.
	 *
	 * Since: 2.30
	 */
	gboolean ( *is_valid ) ( const NAObject *object );
} NAObjectClass;

The NAObjectClass defines some methods available to derived classes.

dump ()

Dumps the NAObject -part of the NAObject -derived object.

copy ()

Copies a NAObject to another.

are_equal ()

Tests if two NAObject are equal.

is_valid ()

Tests if a NAObject is valid.

na_object_object_check_status ()

void                na_object_object_check_status       (const NAObject *object);

na_object_object_check_status_up ()

gboolean            na_object_object_check_status_up    (const NAObject *object);

na_object_object_reset_origin ()

void                na_object_object_reset_origin       (NAObject *object,
                                                         const NAObject *origin);

na_object_object_ref ()

NAObject *          na_object_object_ref                (NAObject *object);

na_object_object_unref ()

void                na_object_object_unref              (NAObject *object);

na_object_object_copy ()

void                na_object_object_copy               (NAObject *target,
                                                         const NAObject *source,
                                                         gboolean recursive);

na_object_object_dump ()

void                na_object_object_dump               (const NAObject *object);

na_object_object_dump_norec ()

void                na_object_object_dump_norec         (const NAObject *object);

na_object_object_dump_tree ()

void                na_object_object_dump_tree          (GList *tree);

na_object_object_get_hierarchy ()

GList *             na_object_object_get_hierarchy      (const NAObject *object);

na_object_free_hierarchy ()

void                na_object_free_hierarchy            (GList *hierarchy);

na_object_object_debug_invalid ()

void                na_object_object_debug_invalid      (const NAObject *object,
                                                         const gchar *reason);