rpm  5.4.10
Data Structures | Macros | Typedefs | Functions | Variables
rpmhook.c File Reference
#include "system.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <rpmhook.h>
#include "debug.h"
Include dependency graph for rpmhook.c:

Go to the source code of this file.

Data Structures

struct  rpmhookItem_s
struct  rpmhookBucket_s
struct  rpmhookTable_s

Macros

#define RPMHOOK_TABLE_INITSIZE   256
#define RPMHOOK_BUCKET_INITSIZE   5

Typedefs

typedef struct rpmhookItem_srpmhookItem
typedef struct rpmhookBucket_srpmhookBucket
typedef struct rpmhookTable_srpmhookTable

Functions

rpmhookArgs rpmhookArgsNew (int argc)
rpmhookArgs rpmhookArgsFree (rpmhookArgs args)
static rpmhookTable rpmhookTableNew (int size)
static void rpmhookTableRehash (rpmhookTable *table)
static int rpmhookTableFindBucket (rpmhookTable *table, const char *name)
static void rpmhookTableAddItem (rpmhookTable *table, const char *name, rpmhookFunc func, void *data)
static void rpmhookTableDelItem (rpmhookTable *table, const char *name, rpmhookFunc func, void *data, int matchfunc, int matchdata)
static rpmhookArgs rpmhookArgsParse (const char *argt, va_list ap)
static void rpmhookTableCallArgs (rpmhookTable *table, const char *name, rpmhookArgs args)
void rpmhookRegister (const char *name, rpmhookFunc func, void *data)
void rpmhookUnregister (const char *name, rpmhookFunc func, void *data)
void rpmhookUnregisterAny (const char *name, rpmhookFunc func)
void rpmhookUnregisterAll (const char *name)
void rpmhookCall (const char *name, const char *argt,...)
void rpmhookCallArgs (const char *name, rpmhookArgs args)

Variables

static rpmhookTable globalTable = NULL

Macro Definition Documentation

#define RPMHOOK_BUCKET_INITSIZE   5

Definition at line 12 of file rpmhook.c.

#define RPMHOOK_TABLE_INITSIZE   256

Definition at line 11 of file rpmhook.c.

Referenced by rpmhookRegister().

Typedef Documentation

typedef struct rpmhookBucket_s * rpmhookBucket
typedef struct rpmhookItem_s * rpmhookItem
typedef struct rpmhookTable_s * rpmhookTable

Function Documentation

rpmhookArgs rpmhookArgsFree ( rpmhookArgs  args)

Definition at line 42 of file rpmhook.c.

Referenced by rpmhookCall().

rpmhookArgs rpmhookArgsNew ( int  argc)

Definition at line 34 of file rpmhook.c.

References rpmhookArgs_s::argc, rpmhookArgs_s::argv, and xcalloc().

Referenced by rpmhookArgsParse().

static rpmhookArgs rpmhookArgsParse ( const char *  argt,
va_list  ap 
)
static
void rpmhookCall ( const char *  name,
const char *  argt,
  ... 
)

Definition at line 267 of file rpmhook.c.

References rpmhookArgsFree(), rpmhookArgsParse(), and rpmhookTableCallArgs().

void rpmhookCallArgs ( const char *  name,
rpmhookArgs  args 
)

Definition at line 282 of file rpmhook.c.

References rpmhookTableCallArgs().

void rpmhookRegister ( const char *  name,
rpmhookFunc  func,
void *  data 
)

Definition at line 240 of file rpmhook.c.

References RPMHOOK_TABLE_INITSIZE, rpmhookTableAddItem(), and rpmhookTableNew().

static void rpmhookTableAddItem ( rpmhookTable table,
const char *  name,
rpmhookFunc  func,
void *  data 
)
static
static void rpmhookTableCallArgs ( rpmhookTable table,
const char *  name,
rpmhookArgs  args 
)
static
static void rpmhookTableDelItem ( rpmhookTable table,
const char *  name,
rpmhookFunc  func,
void *  data,
int  matchfunc,
int  matchdata 
)
static
static int rpmhookTableFindBucket ( rpmhookTable table,
const char *  name 
)
static
static rpmhookTable rpmhookTableNew ( int  size)
static

Definition at line 50 of file rpmhook.c.

References rpmhookTable_s::bucket, rpmhookTable_s::size, and xcalloc().

Referenced by rpmhookRegister(), and rpmhookTableRehash().

static void rpmhookTableRehash ( rpmhookTable table)
static
void rpmhookUnregister ( const char *  name,
rpmhookFunc  func,
void *  data 
)

Definition at line 249 of file rpmhook.c.

References rpmhookTableDelItem().

void rpmhookUnregisterAll ( const char *  name)

Definition at line 261 of file rpmhook.c.

References rpmhookTableDelItem().

void rpmhookUnregisterAny ( const char *  name,
rpmhookFunc  func 
)

Definition at line 255 of file rpmhook.c.

References rpmhookTableDelItem().

Variable Documentation

rpmhookTable globalTable = NULL
static

Definition at line 238 of file rpmhook.c.