Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=b778776e005c3ecc34d389213fd288fbba8d8432
commit b778776e005c3ecc34d389213fd288fbba8d8432 Author: Michel Hermier <[email protected]> Date: Sun Jul 31 13:26:05 2011 +0200 handle.h trans.h: Add handler parent to trans and pmtrans_ops_t. diff --git a/lib/libpacman/handle.h b/lib/libpacman/handle.h index 3f9678f..ec94d30 100644 --- a/lib/libpacman/handle.h +++ b/lib/libpacman/handle.h @@ -21,17 +21,22 @@ #ifndef _PACMAN_HANDLE_H #define _PACMAN_HANDLE_H +#include <stdio.h> + +#include "pacman.h" + +typedef struct __pmhandle_t pmhandle_t; + #include "list.h" #include "db.h" #include "trans.h" -#include "pacman.h" typedef enum __pmaccess_t { PM_ACCESS_RO, PM_ACCESS_RW } pmaccess_t; -typedef struct __pmhandle_t { +struct __pmhandle_t { pmaccess_t access; uid_t uid; pmdb_t *db_local; @@ -64,7 +69,7 @@ typedef struct __pmhandle_t { int *dlremain; int *dlhowmany; int sysupgrade; -} pmhandle_t; +}; extern pmhandle_t *handle; diff --git a/lib/libpacman/trans.h b/lib/libpacman/trans.h index fef6ee2..a546d8e 100644 --- a/lib/libpacman/trans.h +++ b/lib/libpacman/trans.h @@ -24,6 +24,10 @@ #ifndef _PACMAN_TRANS_H #define _PACMAN_TRANS_H +typedef struct __pmtrans_t pmtrans_t; + +#include "handle.h" + enum { STATE_IDLE = 0, STATE_INITIALIZED, @@ -34,10 +38,16 @@ enum { STATE_INTERRUPTED }; -#include "pacman.h" +typedef struct __pmtrans_ops_t { + int (*addtarget)(pmtrans_t *trans, const char *name); + int (*prepare)(pmtrans_t *trans, pmlist_t **data); + int (*commit)(pmtrans_t *trans, pmlist_t **data); +} pmtrans_ops_t; -typedef struct __pmtrans_t { +struct __pmtrans_t { + pmhandle_t *handle; pmtranstype_t type; + const pmtrans_ops_t *ops; unsigned int flags; unsigned char state; pmlist_t *targets; /* pmlist_t of (char *) */ @@ -46,7 +56,7 @@ typedef struct __pmtrans_t { pacman_trans_cb_event cb_event; pacman_trans_cb_conv cb_conv; pacman_trans_cb_progress cb_progress; -} pmtrans_t; +}; #define FREETRANS(p) \ do { \ _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
