1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
#ifndef _ALPM_HANDLE_H
#define _ALPM_HANDLE_H
#include <stdio.h>
#include <sys/types.h>
#include <regex.h>
#include "alpm_list.h"
#include "alpm.h"
#ifdef HAVE_LIBCURL
#include <curl/curl.h>
#endif
#define EVENT(h, e) \
do { \
if((h)->eventcb) { \
(h)->eventcb((alpm_event_t *) (e)); \
} \
} while(0)
#define QUESTION(h, q) \
do { \
if((h)->questioncb) { \
(h)->questioncb((alpm_question_t *) (q)); \
} \
} while(0)
#define PROGRESS(h, e, p, per, n, r) \
do { \
if((h)->progresscb) { \
(h)->progresscb(e, p, per, n, r); \
} \
} while(0)
struct __alpm_handle_t {
alpm_db_t *db_local;
alpm_list_t *dbs_sync;
FILE *logstream;
alpm_trans_t *trans;
#ifdef HAVE_LIBCURL
CURL *curl;
#endif
#ifdef HAVE_LIBGPGME
alpm_list_t *known_keys;
#endif
alpm_cb_log logcb;
alpm_cb_download dlcb;
alpm_cb_totaldl totaldlcb;
alpm_cb_fetch fetchcb;
alpm_cb_event eventcb;
alpm_cb_question questioncb;
alpm_cb_progress progresscb;
char *root;
char *dbpath;
char *logfile;
char *lockfile;
char *gpgdir;
alpm_list_t *cachedirs;
alpm_list_t *noupgrade;
alpm_list_t *noextract;
alpm_list_t *ignorepkg;
alpm_list_t *ignoregroup;
alpm_list_t *assumeinstalled;
char *arch;
double deltaratio;
int usesyslog; TODO
int checkspace;
alpm_siglevel_t siglevel;
alpm_siglevel_t localfilesiglevel;
alpm_siglevel_t remotefilesiglevel;
alpm_errno_t pm_errno;
int lockfd;
int delta_regex_compiled;
regex_t delta_regex;
};
alpm_handle_t *_alpm_handle_new(void);
void _alpm_handle_free(alpm_handle_t *handle);
int _alpm_handle_lock(alpm_handle_t *handle);
int _alpm_handle_unlock(alpm_handle_t *handle);
alpm_errno_t _alpm_set_directory_option(const char *value,
char **storage, int must_exist);
#endif
|