transaction.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include "transaction.h"
#include "solver.h"
#include "bitmap.h"
#include "pool.h"
#include "poolarch.h"
#include "evr.h"
#include "util.h"

Go to the source code of this file.

Classes

struct  _TransactionElement
struct  _TransactionOrderdata
struct  orderdata

Defines

#define TYPE_BROKEN   (1<<0)
#define TYPE_CON   (1<<1)
#define TYPE_REQ_P   (1<<2)
#define TYPE_PREREQ_P   (1<<3)
#define TYPE_REQ   (1<<4)
#define TYPE_PREREQ   (1<<5)
#define TYPE_CYCLETAIL   (1<<16)
#define TYPE_CYCLEHEAD   (1<<17)
#define EDGEDATA_BLOCK   127

Functions

static int obsq_sortcmp (const void *ap, const void *bp, void *dp)
void transaction_all_obs_pkgs (Transaction *trans, Id p, Queue *pkgs)
Id transaction_obs_pkg (Transaction *trans, Id p)
static Id transaction_base_type (Transaction *trans, Id p)
Id transaction_type (Transaction *trans, Id p, int mode)
static int classify_cmp (const void *ap, const void *bp, void *dp)
static int classify_cmp_pkgs (const void *ap, const void *bp, void *dp)
void transaction_classify (Transaction *trans, int mode, Queue *classes)
void transaction_classify_pkgs (Transaction *trans, int mode, Id class, Id from, Id to, Queue *pkgs)
static void create_transaction_info (Transaction *trans, Queue *decisionq)
void transaction_calculate (Transaction *trans, Queue *decisionq, Map *noobsmap)
int transaction_installedresult (Transaction *trans, Queue *installedq)
static void transaction_create_installedmap (Transaction *trans, Map *installedmap)
int transaction_calc_installsizechange (Transaction *trans)
void transaction_calc_duchanges (Transaction *trans, DUChanges *mps, int nmps)
void transaction_init (Transaction *trans, Pool *pool)
void transaction_init_clone (Transaction *trans, Transaction *srctrans)
void transaction_free (Transaction *trans)
void transaction_free_orderdata (Transaction *trans)
static int addteedge (struct orderdata *od, int from, int to, int type)
static int addedge (struct orderdata *od, Id from, Id to, int type)
static int havechoice (struct orderdata *od, Id p, Id q1, Id q2)
static int havescripts (Pool *pool, Id solvid)
static void addsolvableedges (struct orderdata *od, Solvable *s)
static void breakcycle (struct orderdata *od, Id *cycle)
static void dump_tes (struct orderdata *od)
static void reachable (struct orderdata *od, Id i)
static void addcycleedges (struct orderdata *od, Id *cycle, Queue *todo)
void transaction_order (Transaction *trans, int flags)
int transaction_order_add_choices (Transaction *trans, Id chosen, Queue *choices)
void transaction_add_obsoleted (Transaction *trans)
static void transaction_check_pkg (Transaction *trans, Id tepkg, Id pkg, Map *ins, Map *seen, int onlyprereq, Id noconfpkg, int depth)
void transaction_check_order (Transaction *trans)

Define Documentation

#define TYPE_BROKEN   (1<<0)
#define TYPE_CON   (1<<1)

Definition at line 778 of file transaction.c.

Referenced by addsolvableedges().

#define TYPE_REQ_P   (1<<2)

Definition at line 780 of file transaction.c.

Referenced by addsolvableedges().

#define TYPE_PREREQ_P   (1<<3)

Definition at line 781 of file transaction.c.

Referenced by addsolvableedges().

#define TYPE_REQ   (1<<4)

Definition at line 783 of file transaction.c.

Referenced by addsolvableedges(), breakcycle(), and transaction_order().

#define TYPE_PREREQ   (1<<5)

Definition at line 784 of file transaction.c.

Referenced by addsolvableedges(), and breakcycle().

#define TYPE_CYCLETAIL   (1<<16)

Definition at line 786 of file transaction.c.

Referenced by addcycleedges().

#define TYPE_CYCLEHEAD   (1<<17)

Definition at line 787 of file transaction.c.

Referenced by addcycleedges().

#define EDGEDATA_BLOCK   127

Definition at line 789 of file transaction.c.

Referenced by addteedge(), and transaction_order().


Function Documentation

static int obsq_sortcmp ( const void *  ap,
const void *  bp,
void *  dp 
) [static]
void transaction_all_obs_pkgs ( Transaction trans,
Id  p,
Queue pkgs 
)
Id transaction_obs_pkg ( Transaction trans,
Id  p 
)
static Id transaction_base_type ( Transaction trans,
Id  p 
) [static]
Id transaction_type ( Transaction trans,
Id  p,
int  mode 
)
static int classify_cmp ( const void *  ap,
const void *  bp,
void *  dp 
) [static]

Definition at line 359 of file transaction.c.

References id2str(), and _Transaction::pool.

Referenced by transaction_classify().

static int classify_cmp_pkgs ( const void *  ap,
const void *  bp,
void *  dp 
) [static]
void transaction_classify ( Transaction trans,
int  mode,
Queue classes 
)
void transaction_classify_pkgs ( Transaction trans,
int  mode,
Id  class,
Id  from,
Id  to,
Queue pkgs 
)
static void create_transaction_info ( Transaction trans,
Queue decisionq 
) [static]
void transaction_calculate ( Transaction trans,
Queue decisionq,
Map noobsmap 
)
int transaction_installedresult ( Transaction trans,
Queue installedq 
)
static void transaction_create_installedmap ( Transaction trans,
Map installedmap 
) [static]
int transaction_calc_installsizechange ( Transaction trans  ) 
void transaction_calc_duchanges ( Transaction trans,
DUChanges mps,
int  nmps 
)
void transaction_init ( Transaction trans,
Pool pool 
)

Definition at line 792 of file transaction.c.

References _Transaction::pool.

Referenced by solver_create().

void transaction_init_clone ( Transaction trans,
Transaction srctrans 
)
void transaction_free ( Transaction trans  ) 
void transaction_free_orderdata ( Transaction trans  ) 
static int addteedge ( struct orderdata od,
int  from,
int  to,
int  type 
) [static]
static int addedge ( struct orderdata od,
Id  from,
Id  to,
int  type 
) [static]
static int havechoice ( struct orderdata od,
Id  p,
Id  q1,
Id  q2 
) [static]
static int havescripts ( Pool pool,
Id  solvid 
) [inline, static]
static void addsolvableedges ( struct orderdata od,
Solvable s 
) [static]
static void breakcycle ( struct orderdata od,
Id cycle 
) [static]
static void dump_tes ( struct orderdata od  )  [inline, static]
static void reachable ( struct orderdata od,
Id  i 
) [static]
static void addcycleedges ( struct orderdata od,
Id cycle,
Queue todo 
) [static]
void transaction_order ( Transaction trans,
int  flags 
)
int transaction_order_add_choices ( Transaction trans,
Id  chosen,
Queue choices 
)
void transaction_add_obsoleted ( Transaction trans  ) 
static void transaction_check_pkg ( Transaction trans,
Id  tepkg,
Id  pkg,
Map ins,
Map seen,
int  onlyprereq,
Id  noconfpkg,
int  depth 
) [static]
void transaction_check_order ( Transaction trans  ) 
Generated on Mon Dec 12 11:44:13 2011 for satsolver by  doxygen 1.6.3