- reworked transaction prototypes

- added a trans_sysupgrade function
This commit is contained in:
Aurelien Foret 2005-04-16 22:14:34 +00:00
parent 43ea74cce6
commit 29a712e393
2 changed files with 22 additions and 10 deletions

View file

@ -94,6 +94,14 @@ int trans_init(pmtrans_t *trans, unsigned char type, unsigned char flags, alpm_t
return(0); return(0);
} }
int trans_sysupgrade(pmtrans_t *trans)
{
/* Sanity checks */
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
return(sync_sysupgrade(trans, handle->db_local, handle->dbs_sync));
}
int trans_addtarget(pmtrans_t *trans, char *target) int trans_addtarget(pmtrans_t *trans, char *target)
{ {
/* Sanity checks */ /* Sanity checks */
@ -107,20 +115,20 @@ int trans_addtarget(pmtrans_t *trans, char *target)
switch(trans->type) { switch(trans->type) {
case PM_TRANS_TYPE_ADD: case PM_TRANS_TYPE_ADD:
case PM_TRANS_TYPE_UPGRADE: case PM_TRANS_TYPE_UPGRADE:
if(add_loadtarget(handle->db_local, trans, target) == -1) { if(add_loadtarget(trans, handle->db_local, target) == -1) {
/* pm_errno is set by add_loadtarget() */ /* pm_errno is set by add_loadtarget() */
return(-1); return(-1);
} }
break; break;
case PM_TRANS_TYPE_REMOVE: case PM_TRANS_TYPE_REMOVE:
if(remove_loadtarget(handle->db_local, trans, target) == -1) { if(remove_loadtarget(trans, handle->db_local, target) == -1) {
/* pm_errno is set by remove_loadtarget() */ /* pm_errno is set by remove_loadtarget() */
return(-1); return(-1);
} }
break; break;
case PM_TRANS_TYPE_SYNC: case PM_TRANS_TYPE_SYNC:
if(sync_addtarget(handle->db_local, handle->dbs_sync, trans, target) == -1) { if(sync_addtarget(trans, handle->db_local, handle->dbs_sync, target) == -1) {
/* pm_errno is set by add_loadtarget() */ /* pm_errno is set by sync_loadtarget() */
return(-1); return(-1);
} }
break; break;
@ -140,19 +148,19 @@ int trans_prepare(pmtrans_t *trans, PMList **data)
switch(trans->type) { switch(trans->type) {
case PM_TRANS_TYPE_ADD: case PM_TRANS_TYPE_ADD:
case PM_TRANS_TYPE_UPGRADE: case PM_TRANS_TYPE_UPGRADE:
if(add_prepare(handle->db_local, trans, data) == -1) { if(add_prepare(trans, handle->db_local, data) == -1) {
/* pm_errno is set by add_prepare() */ /* pm_errno is set by add_prepare() */
return(-1); return(-1);
} }
break; break;
case PM_TRANS_TYPE_REMOVE: case PM_TRANS_TYPE_REMOVE:
if(remove_prepare(handle->db_local, trans, data) == -1) { if(remove_prepare(trans, handle->db_local, data) == -1) {
/* pm_errno is set by remove_prepare() */ /* pm_errno is set by remove_prepare() */
return(-1); return(-1);
} }
break; break;
case PM_TRANS_TYPE_SYNC: case PM_TRANS_TYPE_SYNC:
if(sync_prepare(handle->db_local, trans, data) == -1) { if(sync_prepare(trans, handle->db_local, handle->dbs_sync, data) == -1) {
/* pm_errno is set by sync_prepare() */ /* pm_errno is set by sync_prepare() */
return(-1); return(-1);
} }
@ -177,17 +185,20 @@ int trans_commit(pmtrans_t *trans)
switch(trans->type) { switch(trans->type) {
case PM_TRANS_TYPE_ADD: case PM_TRANS_TYPE_ADD:
case PM_TRANS_TYPE_UPGRADE: case PM_TRANS_TYPE_UPGRADE:
if(add_commit(handle->db_local, trans) == -1) { if(add_commit(trans, handle->db_local) == -1) {
/* pm_errno is set by add_prepare() */
return(-1); return(-1);
} }
break; break;
case PM_TRANS_TYPE_REMOVE: case PM_TRANS_TYPE_REMOVE:
if(remove_commit(handle->db_local, trans) == -1) { if(remove_commit(trans, handle->db_local) == -1) {
/* pm_errno is set by remove_prepare() */
return(-1); return(-1);
} }
break; break;
case PM_TRANS_TYPE_SYNC: case PM_TRANS_TYPE_SYNC:
if(sync_commit(handle->db_local, trans) == -1) { if(sync_commit(trans, handle->db_local) == -1) {
/* pm_errno is set by sync_commit() */
return(-1); return(-1);
} }
break; break;

View file

@ -45,6 +45,7 @@ typedef struct __pmtrans_t {
pmtrans_t *trans_new(); pmtrans_t *trans_new();
void trans_free(pmtrans_t *trans); void trans_free(pmtrans_t *trans);
int trans_init(pmtrans_t *trans, unsigned char type, unsigned char flags, alpm_trans_cb cb); int trans_init(pmtrans_t *trans, unsigned char type, unsigned char flags, alpm_trans_cb cb);
int trans_sysupgrade(pmtrans_t *trans);
int trans_addtarget(pmtrans_t *trans, char *target); int trans_addtarget(pmtrans_t *trans, char *target);
int trans_prepare(pmtrans_t *trans, PMList **data); int trans_prepare(pmtrans_t *trans, PMList **data);
int trans_commit(pmtrans_t *trans); int trans_commit(pmtrans_t *trans);