rpm  5.4.14
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.

References NULL.

Referenced by rpmhookCall().

rpmhookArgs rpmhookArgsNew ( int  argc)

Definition at line 34 of file rpmhook.c.

References rpmhookArgs_s::argc, args, 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 args, NULL, rpmhookArgsFree(), rpmhookArgsParse(), rpmhookTableCallArgs(), and void.

void rpmhookCallArgs ( const char *  name,
rpmhookArgs  args 
)

Definition at line 282 of file rpmhook.c.

References NULL, and rpmhookTableCallArgs().

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

Definition at line 240 of file rpmhook.c.

References NULL, 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, 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 NULL, and rpmhookTableDelItem().

void rpmhookUnregisterAll ( const char *  name)

Definition at line 261 of file rpmhook.c.

References NULL, and rpmhookTableDelItem().

void rpmhookUnregisterAny ( const char *  name,
rpmhookFunc  func 
)

Definition at line 255 of file rpmhook.c.

References NULL, and rpmhookTableDelItem().

Variable Documentation

rpmhookTable globalTable = NULL
static

Definition at line 238 of file rpmhook.c.