summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/db.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libalpm/db.h')
-rw-r--r--lib/libalpm/db.h30
1 files changed, 19 insertions, 11 deletions
diff --git a/lib/libalpm/db.h b/lib/libalpm/db.h
index 75776d71..03187342 100644
--- a/lib/libalpm/db.h
+++ b/lib/libalpm/db.h
@@ -22,15 +22,16 @@
#ifndef _ALPM_DB_H
#define _ALPM_DB_H
-#include "alpm.h"
-#include "pkghash.h"
-
#include <time.h>
/* libarchive */
#include <archive.h>
#include <archive_entry.h>
+#include "alpm.h"
+#include "pkghash.h"
+#include "signing.h"
+
/* Database entries */
typedef enum _pmdbinfrq_t {
INFRQ_BASE = 1,
@@ -42,24 +43,32 @@ typedef enum _pmdbinfrq_t {
INFRQ_ALL = 0x1F
} pmdbinfrq_t;
+/** Database status. Bitflags. */
+enum _pmdbstatus_t {
+ DB_STATUS_VALID = (1 << 0),
+ DB_STATUS_PKGCACHE = (1 << 1),
+ DB_STATUS_GRPCACHE = (1 << 2)
+};
+
struct db_operations {
int (*populate) (pmdb_t *);
void (*unregister) (pmdb_t *);
- int (*version) (pmdb_t *);
};
/* Database */
struct __pmdb_t {
+ pmhandle_t *handle;
char *treename;
/* do not access directly, use _alpm_db_path(db) for lazy access */
char *_path;
- int pkgcache_loaded;
- int grpcache_loaded;
/* also indicates whether we are RO or RW */
int is_local;
+ /* flags determining validity, loaded caches, etc. */
+ enum _pmdbstatus_t status;
pmpkghash_t *pkgcache;
alpm_list_t *grpcache;
alpm_list_t *servers;
+ pgp_verify_t pgp_verify;
struct db_operations *ops;
};
@@ -69,11 +78,12 @@ struct __pmdb_t {
pmdb_t *_alpm_db_new(const char *treename, int is_local);
void _alpm_db_free(pmdb_t *db);
const char *_alpm_db_path(pmdb_t *db);
-int _alpm_db_version(pmdb_t *db);
+char *_alpm_db_sig_path(pmdb_t *db);
int _alpm_db_cmp(const void *d1, const void *d2);
alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles);
-pmdb_t *_alpm_db_register_local(void);
-pmdb_t *_alpm_db_register_sync(const char *treename);
+pmdb_t *_alpm_db_register_local(pmhandle_t *handle);
+pmdb_t *_alpm_db_register_sync(pmhandle_t *handle, const char *treename,
+ pgp_verify_t level);
void _alpm_db_unregister(pmdb_t *db);
/* be_*.c, backend specific calls */
@@ -84,7 +94,6 @@ int _alpm_local_db_remove(pmdb_t *db, pmpkg_t *info);
/* cache bullshit */
/* packages */
-int _alpm_db_load_pkgcache(pmdb_t *db);
void _alpm_db_free_pkgcache(pmdb_t *db);
int _alpm_db_add_pkgincache(pmdb_t *db, pmpkg_t *pkg);
int _alpm_db_remove_pkgfromcache(pmdb_t *db, pmpkg_t *pkg);
@@ -93,7 +102,6 @@ alpm_list_t *_alpm_db_get_pkgcache(pmdb_t *db);
int _alpm_db_ensure_pkgcache(pmdb_t *db, pmdbinfrq_t infolevel);
pmpkg_t *_alpm_db_get_pkgfromcache(pmdb_t *db, const char *target);
/* groups */
-int _alpm_db_load_grpcache(pmdb_t *db);
void _alpm_db_free_grpcache(pmdb_t *db);
alpm_list_t *_alpm_db_get_grpcache(pmdb_t *db);
pmgrp_t *_alpm_db_get_grpfromcache(pmdb_t *db, const char *target);