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

Reply via email to