Blame src/selection.h

Packit 54873f
/*
Packit 54873f
 * Copyright (c) 2012, Novell Inc.
Packit 54873f
 *
Packit 54873f
 * This program is licensed under the BSD license, read LICENSE.BSD
Packit 54873f
 * for further information
Packit 54873f
 */
Packit 54873f
Packit 54873f
/*
Packit 54873f
 * selection.h
Packit 54873f
 *
Packit 54873f
 */
Packit 54873f
Packit 54873f
#ifndef LIBSOLV_SELECTION_H
Packit 54873f
#define LIBSOLV_SELECTION_H
Packit 54873f
Packit 54873f
#include "pool.h"
Packit 54873f
Packit 54873f
#ifdef __cplusplus
Packit 54873f
extern "C" {
Packit 54873f
#endif
Packit 54873f
Packit 54873f
/* what to match */
Packit 54873f
#define SELECTION_NAME			(1 << 0)
Packit 54873f
#define SELECTION_PROVIDES		(1 << 1)
Packit 54873f
#define SELECTION_FILELIST		(1 << 2)
Packit 54873f
#define SELECTION_CANON			(1 << 3)
Packit 54873f
Packit 54873f
/* match extensions */
Packit 54873f
#define SELECTION_DOTARCH		(1 << 4)	/* allow ".arch" suffix */
Packit 54873f
#define SELECTION_REL			(1 << 5)	/* allow "<=> rel" suffix */
Packit 54873f
Packit 54873f
/* string comparison modifiers */
Packit 54873f
#define SELECTION_GLOB			(1 << 9)
Packit 54873f
#define SELECTION_NOCASE		(1 << 11)
Packit 54873f
Packit 54873f
/* extra flags */
Packit 54873f
#define SELECTION_FLAT			(1 << 10)	/* flatten the resulting selection */
Packit 54873f
#define SELECTION_SKIP_KIND		(1 << 14)	/* remove kind: name prefix in SELECTION_NAME matches */
Packit 54873f
#define SELECTION_MATCH_DEPSTR		(1 << 15)	/* match dep2str result */
Packit 54873f
Packit 54873f
/* package selection */
Packit 54873f
#define SELECTION_INSTALLED_ONLY	(1 << 8)
Packit 54873f
#define SELECTION_SOURCE_ONLY		(1 << 12)
Packit 54873f
#define SELECTION_WITH_SOURCE		(1 << 13)
Packit 54873f
#define SELECTION_WITH_DISABLED		(1 << 16)
Packit 54873f
#define SELECTION_WITH_BADARCH		(1 << 17)
Packit 54873f
#define SELECTION_WITH_ALL		(SELECTION_WITH_SOURCE | SELECTION_WITH_DISABLED | SELECTION_WITH_BADARCH)
Packit 54873f
Packit 54873f
/* result operator */
Packit 54873f
#define SELECTION_REPLACE		(0 << 28)
Packit 54873f
#define SELECTION_ADD			(1 << 28)
Packit 54873f
#define SELECTION_SUBTRACT		(2 << 28)
Packit 54873f
#define SELECTION_FILTER		(3 << 28)
Packit 54873f
Packit 54873f
Packit 54873f
/* extra SELECTION_FILTER bits */
Packit 54873f
#define SELECTION_FILTER_KEEP_IFEMPTY	(1 << 30)
Packit 54873f
#define SELECTION_FILTER_SWAPPED	(1 << 31)
Packit 54873f
Packit 54873f
/* internal */
Packit 54873f
#define SELECTION_MODEBITS		(3 << 28)
Packit 54873f
Packit 54873f
extern int  selection_make(Pool *pool, Queue *selection, const char *name, int flags);
Packit 54873f
extern int  selection_make_matchdeps(Pool *pool, Queue *selection, const char *name, int flags, int keyname, int marker);
Packit 54873f
extern int  selection_make_matchdepid(Pool *pool, Queue *selection, Id dep, int flags, int keyname, int marker);
Packit 54873f
extern int selection_make_matchsolvable(Pool *pool, Queue *selection, Id solvid, int flags, int keyname, int marker);
Packit 54873f
extern int selection_make_matchsolvablelist(Pool *pool, Queue *selection, Queue *solvidq, int flags, int keyname, int marker);
Packit 54873f
Packit 54873f
extern void selection_filter(Pool *pool, Queue *sel1, Queue *sel2);
Packit 54873f
extern void selection_add(Pool *pool, Queue *sel1, Queue *sel2);
Packit 54873f
extern void selection_subtract(Pool *pool, Queue *sel1, Queue *sel2);
Packit 54873f
Packit 54873f
extern void selection_solvables(Pool *pool, Queue *selection, Queue *pkgs);
Packit 54873f
Packit 54873f
extern const char *pool_selection2str(Pool *pool, Queue *selection, Id flagmask);
Packit 54873f
Packit 54873f
#ifdef __cplusplus
Packit 54873f
}
Packit 54873f
#endif
Packit 54873f
Packit 54873f
#endif