satsolver  0.17.2
Classes | Macros | Typedefs | Functions
repo.h File Reference
#include "pooltypes.h"
#include "pool.h"
#include "repodata.h"

Go to the source code of this file.

Classes

struct  _Repo
 
struct  _KeyValue
 
struct  _Datamatcher
 
struct  _Dataiterator
 
struct  _Dataiterator::di_parent
 

Macros

#define FOR_REPO_SOLVABLES(r, p, s)
 
#define SEARCH_NEXT_KEY   1
 
#define SEARCH_NEXT_SOLVABLE   2
 
#define SEARCH_STOP   3
 
#define SEARCH_ENTERSUB   -1
 
#define SEARCH_STRINGMASK   15
 
#define SEARCH_STRING   1
 
#define SEARCH_STRINGSTART   2
 
#define SEARCH_STRINGEND   3
 
#define SEARCH_SUBSTRING   4
 
#define SEARCH_GLOB   5
 
#define SEARCH_REGEX   6
 
#define SEARCH_ERROR   15
 
#define SEARCH_NOCASE   (1<<7)
 
#define SEARCH_NO_STORAGE_SOLVABLE   (1<<8)
 
#define SEARCH_SUB   (1<<9)
 
#define SEARCH_ARRAYSENTINEL   (1<<10)
 
#define SEARCH_DISABLED_REPOS   (1<<11)
 
#define SEARCH_COMPLETE_FILELIST   (1<<12)
 
#define SEARCH_SKIP_KIND   (1<<16)
 
#define SEARCH_FILES   (1<<17)
 
#define SEARCH_CHECKSUMS   (1<<18)
 
#define SEARCH_THISSOLVID   (1<<31)
 
#define REPO_REUSE_REPODATA   (1 << 0)
 
#define REPO_NO_INTERNALIZE   (1 << 1)
 
#define REPO_LOCALPOOL   (1 << 2)
 
#define REPO_USE_LOADING   (1 << 3)
 
#define REPO_EXTEND_SOLVABLES   (1 << 4)
 
#define DI_SEEK_STAY   (1 << 16)
 
#define DI_SEEK_CHILD   1
 
#define DI_SEEK_PARENT   2
 
#define DI_SEEK_REWIND   3
 

Typedefs

typedef struct _Repo Repo
 
typedef struct _KeyValue KeyValue
 
typedef struct _Datamatcher Datamatcher
 
typedef struct _Dataiterator Dataiterator
 

Functions

Reporepo_create (Pool *pool, const char *name)
 
void repo_free (Repo *repo, int reuseids)
 
void repo_empty (Repo *repo, int reuseids)
 
void repo_freeallrepos (Pool *pool, int reuseids)
 
void repo_free_solvable_block (Repo *repo, Id start, int count, int reuseids)
 
void * repo_sidedata_create (Repo *repo, size_t size)
 
void * repo_sidedata_extend (Repo *repo, void *b, size_t size, Id p, int count)
 
Offset repo_addid (Repo *repo, Offset olddeps, Id id)
 
Offset repo_addid_dep (Repo *repo, Offset olddeps, Id id, Id marker)
 
Offset repo_reserve_ids (Repo *repo, Offset olddeps, int num)
 
Offset repo_fix_supplements (Repo *repo, Offset provides, Offset supplements, Offset freshens)
 
Offset repo_fix_conflicts (Repo *repo, Offset conflicts)
 
static const char * repo_name (const Repo *repo)
 
static Id repo_add_solvable (Repo *repo)
 
static Id repo_add_solvable_block (Repo *repo, int count)
 
static Repopool_id2repo (Pool *pool, Id repoid)
 
static int pool_installable (const Pool *pool, Solvable *s)
 
Repodatarepo_add_repodata (Repo *repo, int flags)
 
Repodatarepo_last_repodata (Repo *repo)
 
void repo_search (Repo *repo, Id p, Id key, const char *match, int flags, int(*callback)(void *cbdata, Solvable *s, Repodata *data, Repokey *key, KeyValue *kv), void *cbdata)
 
Id repo_lookup_type (Repo *repo, Id entry, Id keyname)
 
const char * repo_lookup_str (Repo *repo, Id entry, Id keyname)
 
unsigned int repo_lookup_num (Repo *repo, Id entry, Id keyname, unsigned int notfound)
 
Id repo_lookup_id (Repo *repo, Id entry, Id keyname)
 
int repo_lookup_idarray (Repo *repo, Id entry, Id keyname, Queue *q)
 
int repo_lookup_void (Repo *repo, Id entry, Id keyname)
 
const char * repo_lookup_checksum (Repo *repo, Id entry, Id keyname, Id *typep)
 
const unsigned char * repo_lookup_bin_checksum (Repo *repo, Id entry, Id keyname, Id *typep)
 
int datamatcher_init (Datamatcher *ma, const char *match, int flags)
 
void datamatcher_free (Datamatcher *ma)
 
int datamatcher_match (Datamatcher *ma, const char *str)
 
int dataiterator_init (Dataiterator *di, Pool *pool, Repo *repo, Id p, Id keyname, const char *match, int flags)
 
void dataiterator_init_clone (Dataiterator *di, Dataiterator *from)
 
void dataiterator_set_search (Dataiterator *di, Repo *repo, Id p)
 
void dataiterator_set_keyname (Dataiterator *di, Id keyname)
 
int dataiterator_set_match (Dataiterator *di, const char *match, int flags)
 
void dataiterator_prepend_keyname (Dataiterator *di, Id keyname)
 
void dataiterator_free (Dataiterator *di)
 
int dataiterator_step (Dataiterator *di)
 
void dataiterator_setpos (Dataiterator *di)
 
void dataiterator_setpos_parent (Dataiterator *di)
 
int dataiterator_match (Dataiterator *di, Datamatcher *ma)
 
void dataiterator_skip_attribute (Dataiterator *di)
 
void dataiterator_skip_solvable (Dataiterator *di)
 
void dataiterator_skip_repo (Dataiterator *di)
 
void dataiterator_jump_to_solvid (Dataiterator *di, Id solvid)
 
void dataiterator_jump_to_repo (Dataiterator *di, Repo *repo)
 
void dataiterator_entersub (Dataiterator *di)
 
void dataiterator_clonepos (Dataiterator *di, Dataiterator *from)
 
void dataiterator_seek (Dataiterator *di, int whence)
 
void repo_set_id (Repo *repo, Id p, Id keyname, Id id)
 
void repo_set_num (Repo *repo, Id p, Id keyname, unsigned int num)
 
void repo_set_str (Repo *repo, Id p, Id keyname, const char *str)
 
void repo_set_poolstr (Repo *repo, Id p, Id keyname, const char *str)
 
void repo_add_poolstr_array (Repo *repo, Id p, Id keyname, const char *str)
 
void repo_internalize (Repo *repo)
 
void repo_disable_paging (Repo *repo)
 

Macro Definition Documentation

#define FOR_REPO_SOLVABLES (   r,
  p,
 
)
Value:
for (p = (r)->start, s = (r)->pool->solvables + p; p < (r)->end; p++, s = (r)->pool->solvables + p) \
if (s->repo == (r))

Definition at line 108 of file repo.h.

Referenced by pool_calc_duchanges(), pool_calc_installsizechange(), solvable_trivial_installable_repo(), solver_createdupmaps(), solver_solve(), transaction_add_obsoleted(), transaction_calculate(), transaction_check_order(), transaction_create_installedmap(), and transaction_installedresult().

#define SEARCH_NEXT_KEY   1

Definition at line 139 of file repo.h.

Referenced by repo_search_md(), and repodata_search().

#define SEARCH_NEXT_SOLVABLE   2

Definition at line 140 of file repo.h.

Referenced by repo_search_md().

#define SEARCH_STOP   3

Definition at line 141 of file repo.h.

#define SEARCH_ENTERSUB   -1

Definition at line 142 of file repo.h.

Referenced by repodata_search().

#define SEARCH_STRINGMASK   15
#define SEARCH_STRING   1

Definition at line 158 of file repo.h.

Referenced by dataiterator_filelistcheck(), dataiterator_step(), and datamatcher_match().

#define SEARCH_STRINGSTART   2

Definition at line 159 of file repo.h.

Referenced by datamatcher_match().

#define SEARCH_STRINGEND   3

Definition at line 160 of file repo.h.

Referenced by datamatcher_match().

#define SEARCH_SUBSTRING   4

Definition at line 161 of file repo.h.

Referenced by datamatcher_match().

#define SEARCH_GLOB   5

Definition at line 162 of file repo.h.

Referenced by dataiterator_filelistcheck(), and datamatcher_match().

#define SEARCH_REGEX   6

Definition at line 163 of file repo.h.

Referenced by datamatcher_free(), datamatcher_init(), and datamatcher_match().

#define SEARCH_ERROR   15

Definition at line 164 of file repo.h.

Referenced by datamatcher_init().

#define SEARCH_NOCASE   (1<<7)
#define SEARCH_NO_STORAGE_SOLVABLE   (1<<8)

Definition at line 168 of file repo.h.

Referenced by dataiterator_step(), and repo_search_md().

#define SEARCH_SUB   (1<<9)

Definition at line 169 of file repo.h.

Referenced by dataiterator_step(), and repodata_search().

#define SEARCH_ARRAYSENTINEL   (1<<10)

Definition at line 170 of file repo.h.

Referenced by dataiterator_step(), and repodata_search().

#define SEARCH_DISABLED_REPOS   (1<<11)

Definition at line 171 of file repo.h.

Referenced by dataiterator_step(), and repo_search().

#define SEARCH_COMPLETE_FILELIST   (1<<12)

Definition at line 172 of file repo.h.

Referenced by dataiterator_filelistcheck(), and repo_search_md().

#define SEARCH_SKIP_KIND   (1<<16)

Definition at line 175 of file repo.h.

Referenced by repodata_stringify().

#define SEARCH_FILES   (1<<17)

Definition at line 179 of file repo.h.

Referenced by dataiterator_step(), and repodata_stringify().

#define SEARCH_CHECKSUMS   (1<<18)

Definition at line 180 of file repo.h.

Referenced by repodata_stringify().

#define SEARCH_THISSOLVID   (1<<31)
#define REPO_REUSE_REPODATA   (1 << 0)

Definition at line 187 of file repo.h.

Referenced by repo_add_repodata(), and repo_add_solv_flags().

#define REPO_NO_INTERNALIZE   (1 << 1)

Definition at line 188 of file repo.h.

#define REPO_LOCALPOOL   (1 << 2)

Definition at line 189 of file repo.h.

Referenced by repo_add_repodata(), and repo_add_solv_flags().

#define REPO_USE_LOADING   (1 << 3)

Definition at line 190 of file repo.h.

Referenced by repo_add_repodata(), and repo_add_solv_flags().

#define REPO_EXTEND_SOLVABLES   (1 << 4)

Definition at line 191 of file repo.h.

Referenced by repo_add_solv_flags().

#define DI_SEEK_STAY   (1 << 16)

Definition at line 309 of file repo.h.

Referenced by dataiterator_seek().

#define DI_SEEK_CHILD   1

Definition at line 310 of file repo.h.

Referenced by dataiterator_seek().

#define DI_SEEK_PARENT   2

Definition at line 311 of file repo.h.

Referenced by dataiterator_seek().

#define DI_SEEK_REWIND   3

Definition at line 312 of file repo.h.

Referenced by dataiterator_seek().

Typedef Documentation

typedef struct _Repo Repo
typedef struct _KeyValue KeyValue
typedef struct _Datamatcher Datamatcher
typedef struct _Dataiterator Dataiterator

Function Documentation

Repo* repo_create ( Pool pool,
const char *  name 
)
void repo_free ( Repo repo,
int  reuseids 
)
void repo_empty ( Repo repo,
int  reuseids 
)
void repo_freeallrepos ( Pool pool,
int  reuseids 
)
void repo_free_solvable_block ( Repo repo,
Id  start,
int  count,
int  reuseids 
)
void* repo_sidedata_create ( Repo repo,
size_t  size 
)

Definition at line 177 of file repo.c.

References _Repo::end, REPO_SIDEDATA_BLOCK, sat_calloc_block(), and _Repo::start.

Referenced by repo_add_solv_flags(), and repo_set_num().

void* repo_sidedata_extend ( Repo repo,
void *  b,
size_t  size,
Id  p,
int  count 
)

Definition at line 183 of file repo.c.

References _Repo::end, REPO_SIDEDATA_BLOCK, sat_extend(), and _Repo::start.

Referenced by repo_add_solvable(), and repo_add_solvable_block().

Offset repo_addid ( Repo repo,
Offset  olddeps,
Id  id 
)
Offset repo_addid_dep ( Repo repo,
Offset  olddeps,
Id  id,
Id  marker 
)

Definition at line 267 of file repo.c.

References _Repo::idarraydata, and repo_addid().

Referenced by addfileprovides_cb(), pool_add_fileconflicts_deps(), and repo_fix_supplements().

Offset repo_reserve_ids ( Repo repo,
Offset  olddeps,
int  num 
)
Offset repo_fix_supplements ( Repo repo,
Offset  provides,
Offset  supplements,
Offset  freshens 
)
Offset repo_fix_conflicts ( Repo repo,
Offset  conflicts 
)

Definition at line 595 of file repo.c.

References id2str(), _Repo::idarraydata, ISRELDEP, _Repo::pool, rel2id(), REL_NAMESPACE, and str2id().

static const char* repo_name ( const Repo repo)
inlinestatic

Definition at line 61 of file repo.h.

References _Repo::name.

static Id repo_add_solvable ( Repo repo)
inlinestatic
static Id repo_add_solvable_block ( Repo repo,
int  count 
)
inlinestatic
static Repo* pool_id2repo ( Pool pool,
Id  repoid 
)
inlinestatic

Definition at line 115 of file repo.h.

References _Pool::repos.

Referenced by solver_createdupmaps().

static int pool_installable ( const Pool pool,
Solvable s 
)
inlinestatic
Repodata* repo_add_repodata ( Repo repo,
int  flags 
)
Repodata* repo_last_repodata ( Repo repo)
void repo_search ( Repo repo,
Id  p,
Id  key,
const char *  match,
int  flags,
int(*)(void *cbdata, Solvable *s, Repodata *data, Repokey *key, KeyValue *kv)  callback,
void *  cbdata 
)
Id repo_lookup_type ( Repo repo,
Id  entry,
Id  keyname 
)
const char* repo_lookup_str ( Repo repo,
Id  entry,
Id  keyname 
)
unsigned int repo_lookup_num ( Repo repo,
Id  entry,
Id  keyname,
unsigned int  notfound 
)
Id repo_lookup_id ( Repo repo,
Id  entry,
Id  keyname 
)
int repo_lookup_idarray ( Repo repo,
Id  entry,
Id  keyname,
Queue q 
)
int repo_lookup_void ( Repo repo,
Id  entry,
Id  keyname 
)
const char* repo_lookup_checksum ( Repo repo,
Id  entry,
Id  keyname,
Id typep 
)

Definition at line 1049 of file repo.c.

References _Repo::pool, pool_bin2hex(), repo_lookup_bin_checksum(), and sat_chksum_len().

const unsigned char* repo_lookup_bin_checksum ( Repo repo,
Id  entry,
Id  keyname,
Id typep 
)
int datamatcher_init ( Datamatcher ma,
const char *  match,
int  flags 
)
void datamatcher_free ( Datamatcher ma)
int datamatcher_match ( Datamatcher ma,
const char *  str 
)
int dataiterator_init ( Dataiterator di,
Pool pool,
Repo repo,
Id  p,
Id  keyname,
const char *  match,
int  flags 
)
void dataiterator_init_clone ( Dataiterator di,
Dataiterator from 
)
void dataiterator_set_search ( Dataiterator di,
Repo repo,
Id  p 
)
void dataiterator_set_keyname ( Dataiterator di,
Id  keyname 
)
int dataiterator_set_match ( Dataiterator di,
const char *  match,
int  flags 
)
void dataiterator_prepend_keyname ( Dataiterator di,
Id  keyname 
)
void dataiterator_free ( Dataiterator di)

Definition at line 1224 of file repodata.c.

References datamatcher_free(), _Datamatcher::match, and _Dataiterator::matcher.

Referenced by repodata_create_stubs().

int dataiterator_step ( Dataiterator di)

Definition at line 1271 of file repodata.c.

References _Dataiterator::data, data_fetch(), data_read_id(), data_skip_schema(), dataiterator_filelistcheck(), dataiterator_find_keyname(), datamatcher_match(), _Dataiterator::ddp, di_bye, di_enterarray, di_enterkey, di_enterrepo, di_enterrepodata, di_enterschema, di_entersolvable, di_entersolvablekey, di_entersub, di_leavesub, di_nextarrayelement, di_nextattr, di_nextkey, di_nextrepo, di_nextrepodata, di_nextsolvable, di_nextsolvableattr, di_nextsolvablekey, _Repo::disabled, _Dataiterator::dp, _Dataiterator::di_parent::dp, _Repo::end, _KeyValue::entry, _KeyValue::eof, _Datamatcher::flags, _Dataiterator::flags, get_data(), _KeyValue::id, _Dataiterator::idp, _Dataiterator::key, _Dataiterator::keyname, _Dataiterator::keynames, _Dataiterator::keyp, _Dataiterator::di_parent::keyp, _Repodata::keys, _Dataiterator::kv, _Dataiterator::di_parent::kv, _Datamatcher::match, _Dataiterator::matcher, maybe_load_repodata(), _Repokey::name, _Dataiterator::nkeynames, _Dataiterator::nparents, _Repo::nrepodata, _Pool::nrepos, _KeyValue::num, _KeyValue::parent, _Dataiterator::parents, _Dataiterator::pool, _Pool::pos, _Solvable::repo, _Dataiterator::repo, _Repo::repodata, repodata_stringify(), _Dataiterator::repodataid, _Dataiterator::repoid, _Pool::repos, _Dataiterator::rootlevel, _Repodata::schemadata, _Repodata::schemata, SEARCH_ARRAYSENTINEL, SEARCH_DISABLED_REPOS, SEARCH_FILES, SEARCH_NO_STORAGE_SOLVABLE, SEARCH_NOCASE, SEARCH_STRING, SEARCH_STRINGMASK, SEARCH_SUB, SEARCH_THISSOLVID, solvabledata_fetch(), _Pool::solvables, _Datapos::solvid, _Dataiterator::solvid, solvid2data(), SOLVID_POS, _Repo::start, _Dataiterator::state, _KeyValue::str, and _Repokey::type.

Referenced by repodata_create_stubs().

void dataiterator_setpos ( Dataiterator di)
void dataiterator_setpos_parent ( Dataiterator di)
int dataiterator_match ( Dataiterator di,
Datamatcher ma 
)
void dataiterator_skip_attribute ( Dataiterator di)

Definition at line 1636 of file repodata.c.

References di_nextkey, di_nextsolvableattr, di_nextsolvablekey, and _Dataiterator::state.

void dataiterator_skip_solvable ( Dataiterator di)
void dataiterator_skip_repo ( Dataiterator di)
void dataiterator_jump_to_solvid ( Dataiterator di,
Id  solvid 
)
void dataiterator_jump_to_repo ( Dataiterator di,
Repo repo 
)
void dataiterator_entersub ( Dataiterator di)

Definition at line 1523 of file repodata.c.

References di_entersub, di_nextarrayelement, and _Dataiterator::state.

Referenced by repodata_create_stubs().

void dataiterator_clonepos ( Dataiterator di,
Dataiterator from 
)
void dataiterator_seek ( Dataiterator di,
int  whence 
)
void repo_set_id ( Repo repo,
Id  p,
Id  keyname,
Id  id 
)
void repo_set_num ( Repo repo,
Id  p,
Id  keyname,
unsigned int  num 
)
void repo_set_str ( Repo repo,
Id  p,
Id  keyname,
const char *  str 
)

Definition at line 1181 of file repo.c.

References _Repo::pool, repo_last_repodata(), repo_set_id(), repodata_set_str(), and str2id().

void repo_set_poolstr ( Repo repo,
Id  p,
Id  keyname,
const char *  str 
)

Definition at line 1201 of file repo.c.

References _Repo::pool, repo_last_repodata(), repo_set_id(), repodata_set_poolstr(), and str2id().

void repo_add_poolstr_array ( Repo repo,
Id  p,
Id  keyname,
const char *  str 
)

Definition at line 1221 of file repo.c.

References repo_last_repodata(), and repodata_add_poolstr_array().

void repo_internalize ( Repo repo)

Definition at line 1228 of file repo.c.

References _Repodata::attrs, _Repo::repodata, repodata_internalize(), and _Repodata::xattrs.

void repo_disable_paging ( Repo repo)

Definition at line 1239 of file repo.c.

References _Repo::repodata, and repodata_disable_paging().