Hook Functions

Hook Functions

Synopsis


#include <glib.h>

                    GHookList;
void                (*GHookFinalizeFunc)                (GHookList *hook_list,
                                                         GHook *hook);
                    GHook;
void                (*GHookFunc)                        (gpointer data);
gboolean            (*GHookCheckFunc)                   (gpointer data);

void                g_hook_list_init                    (GHookList *hook_list,
                                                         guint hook_size);
void                g_hook_list_invoke                  (GHookList *hook_list,
                                                         gboolean may_recurse);
void                g_hook_list_invoke_check            (GHookList *hook_list,
                                                         gboolean may_recurse);
void                g_hook_list_marshal                 (GHookList *hook_list,
                                                         gboolean may_recurse,
                                                         GHookMarshaller marshaller,
                                                         gpointer marshal_data);
void                (*GHookMarshaller)                  (GHook *hook,
                                                         gpointer marshal_data);
void                g_hook_list_marshal_check           (GHookList *hook_list,
                                                         gboolean may_recurse,
                                                         GHookCheckMarshaller marshaller,
                                                         gpointer marshal_data);
gboolean            (*GHookCheckMarshaller)             (GHook *hook,
                                                         gpointer marshal_data);
void                g_hook_list_clear                   (GHookList *hook_list);

GHook*              g_hook_alloc                        (GHookList *hook_list);
#define             g_hook_append                       ( hook_list, hook )
void                g_hook_prepend                      (GHookList *hook_list,
                                                         GHook *hook);
void                g_hook_insert_before                (GHookList *hook_list,
                                                         GHook *sibling,
                                                         GHook *hook);
void                g_hook_insert_sorted                (GHookList *hook_list,
                                                         GHook *hook,
                                                         GHookCompareFunc func);
gint                (*GHookCompareFunc)                 (GHook *new_hook,
                                                         GHook *sibling);
gint                g_hook_compare_ids                  (GHook *new_hook,
                                                         GHook *sibling);

GHook*              g_hook_get                          (GHookList *hook_list,
                                                         gulong hook_id);
GHook*              g_hook_find                         (GHookList *hook_list,
                                                         gboolean need_valids,
                                                         GHookFindFunc func,
                                                         gpointer data);
gboolean            (*GHookFindFunc)                    (GHook *hook,
                                                         gpointer data);
GHook*              g_hook_find_data                    (GHookList *hook_list,
                                                         gboolean need_valids,
                                                         gpointer data);
GHook*              g_hook_find_func                    (GHookList *hook_list,
                                                         gboolean need_valids,
                                                         gpointer func);
GHook*              g_hook_find_func_data               (GHookList *hook_list,
                                                         gboolean need_valids,
                                                         gpointer func,
                                                         gpointer data);

GHook*              g_hook_first_valid                  (GHookList *hook_list,
                                                         gboolean may_be_in_call);
GHook*              g_hook_next_valid                   (GHookList *hook_list,
                                                         GHook *hook,
                                                         gboolean may_be_in_call);
enum                GHookFlagMask;
#define             G_HOOK_FLAGS                        (hook)
#define             G_HOOK_FLAG_USER_SHIFT

#define             G_HOOK                              (hook)
#define             G_HOOK_IS_VALID                     (hook)
#define             G_HOOK_ACTIVE                       (hook)
#define             G_HOOK_IN_CALL                      (hook)
#define             G_HOOK_IS_UNLINKED                  (hook)

GHook *             g_hook_ref                          (GHookList *hook_list,
                                                         GHook *hook);
void                g_hook_unref                        (GHookList *hook_list,
                                                         GHook *hook);
void                g_hook_free                         (GHookList *hook_list,
                                                         GHook *hook);
gboolean            g_hook_destroy                      (GHookList *hook_list,
                                                         gulong hook_id);
void                g_hook_destroy_link                 (GHookList *hook_list,
                                                         GHook *hook);

Description

Details

GHookList

typedef struct {
  gulong	    seq_id;
  guint		    hook_size : 16;
  guint		    is_setup : 1;
  GHook		   *hooks;
  gpointer	    dummy3;
  GHookFinalizeFunc finalize_hook;
  gpointer	    dummy[2];
} GHookList;


GHookFinalizeFunc ()

void                (*GHookFinalizeFunc)                (GHookList *hook_list,
                                                         GHook *hook);

hook_list :

hook :


GHook

typedef struct {
  gpointer	 data;
  GHook		*next;
  GHook		*prev;
  guint		 ref_count;
  gulong	 hook_id;
  guint		 flags;
  gpointer	 func;
  GDestroyNotify destroy;
} GHook;


GHookFunc ()

void                (*GHookFunc)                        (gpointer data);

data :


GHookCheckFunc ()

gboolean            (*GHookCheckFunc)                   (gpointer data);

data :

Returns :


g_hook_list_init ()

void                g_hook_list_init                    (GHookList *hook_list,
                                                         guint hook_size);

hook_list :

hook_size :


g_hook_list_invoke ()

void                g_hook_list_invoke                  (GHookList *hook_list,
                                                         gboolean may_recurse);

hook_list :

may_recurse :


g_hook_list_invoke_check ()

void                g_hook_list_invoke_check            (GHookList *hook_list,
                                                         gboolean may_recurse);

hook_list :

may_recurse :


g_hook_list_marshal ()

void                g_hook_list_marshal                 (GHookList *hook_list,
                                                         gboolean may_recurse,
                                                         GHookMarshaller marshaller,
                                                         gpointer marshal_data);

hook_list :

may_recurse :

marshaller :

marshal_data :


GHookMarshaller ()

void                (*GHookMarshaller)                  (GHook *hook,
                                                         gpointer marshal_data);

hook :

marshal_data :


g_hook_list_marshal_check ()

void                g_hook_list_marshal_check           (GHookList *hook_list,
                                                         gboolean may_recurse,
                                                         GHookCheckMarshaller marshaller,
                                                         gpointer marshal_data);

hook_list :

may_recurse :

marshaller :

marshal_data :


GHookCheckMarshaller ()

gboolean            (*GHookCheckMarshaller)             (GHook *hook,
                                                         gpointer marshal_data);

hook :

marshal_data :

Returns :


g_hook_list_clear ()

void                g_hook_list_clear                   (GHookList *hook_list);

hook_list :


g_hook_alloc ()

GHook*              g_hook_alloc                        (GHookList *hook_list);

hook_list :

Returns :


g_hook_append()

#define             g_hook_append( hook_list, hook )

hook_list :

hook :


g_hook_prepend ()

void                g_hook_prepend                      (GHookList *hook_list,
                                                         GHook *hook);

hook_list :

hook :


g_hook_insert_before ()

void                g_hook_insert_before                (GHookList *hook_list,
                                                         GHook *sibling,
                                                         GHook *hook);

hook_list :

sibling :

hook :


g_hook_insert_sorted ()

void                g_hook_insert_sorted                (GHookList *hook_list,
                                                         GHook *hook,
                                                         GHookCompareFunc func);

hook_list :

hook :

func :


GHookCompareFunc ()

gint                (*GHookCompareFunc)                 (GHook *new_hook,
                                                         GHook *sibling);

new_hook :

sibling :

Returns :


g_hook_compare_ids ()

gint                g_hook_compare_ids                  (GHook *new_hook,
                                                         GHook *sibling);

new_hook :

sibling :

Returns :


g_hook_get ()

GHook*              g_hook_get                          (GHookList *hook_list,
                                                         gulong hook_id);

hook_list :

hook_id :

Returns :


g_hook_find ()

GHook*              g_hook_find                         (GHookList *hook_list,
                                                         gboolean need_valids,
                                                         GHookFindFunc func,
                                                         gpointer data);

hook_list :

need_valids :

func :

data :

Returns :


GHookFindFunc ()

gboolean            (*GHookFindFunc)                    (GHook *hook,
                                                         gpointer data);

hook :

data :

Returns :


g_hook_find_data ()

GHook*              g_hook_find_data                    (GHookList *hook_list,
                                                         gboolean need_valids,
                                                         gpointer data);

hook_list :

need_valids :

data :

Returns :


g_hook_find_func ()

GHook*              g_hook_find_func                    (GHookList *hook_list,
                                                         gboolean need_valids,
                                                         gpointer func);

hook_list :

need_valids :

func :

Returns :


g_hook_find_func_data ()

GHook*              g_hook_find_func_data               (GHookList *hook_list,
                                                         gboolean need_valids,
                                                         gpointer func,
                                                         gpointer data);

hook_list :

need_valids :

func :

data :

Returns :


g_hook_first_valid ()

GHook*              g_hook_first_valid                  (GHookList *hook_list,
                                                         gboolean may_be_in_call);

hook_list :

may_be_in_call :

Returns :


g_hook_next_valid ()

GHook*              g_hook_next_valid                   (GHookList *hook_list,
                                                         GHook *hook,
                                                         gboolean may_be_in_call);

hook_list :

hook :

may_be_in_call :

Returns :


enum GHookFlagMask

typedef enum
{
  G_HOOK_FLAG_ACTIVE	    = 1 << 0,
  G_HOOK_FLAG_IN_CALL	    = 1 << 1,
  G_HOOK_FLAG_MASK	    = 0x0f
} GHookFlagMask;


G_HOOK_FLAGS()

#define	G_HOOK_FLAGS(hook)		(G_HOOK (hook)->flags)

hook :


G_HOOK_FLAG_USER_SHIFT

#define G_HOOK_FLAG_USER_SHIFT	(4)


G_HOOK()

#define	G_HOOK(hook)			((GHook*) (hook))

hook :


G_HOOK_IS_VALID()

#define             G_HOOK_IS_VALID(hook)

hook :


G_HOOK_ACTIVE()

#define             G_HOOK_ACTIVE(hook)

hook :


G_HOOK_IN_CALL()

#define             G_HOOK_IN_CALL(hook)

hook :


G_HOOK_IS_UNLINKED()

#define             G_HOOK_IS_UNLINKED(hook)

hook :


g_hook_ref ()

GHook *             g_hook_ref                          (GHookList *hook_list,
                                                         GHook *hook);

hook_list :

hook :

Returns :


g_hook_unref ()

void                g_hook_unref                        (GHookList *hook_list,
                                                         GHook *hook);

hook_list :

hook :


g_hook_free ()

void                g_hook_free                         (GHookList *hook_list,
                                                         GHook *hook);

hook_list :

hook :


g_hook_destroy ()

gboolean            g_hook_destroy                      (GHookList *hook_list,
                                                         gulong hook_id);

hook_list :

hook_id :

Returns :


g_hook_destroy_link ()

void                g_hook_destroy_link                 (GHookList *hook_list,
                                                         GHook *hook);

hook_list :

hook :