summaryrefslogtreecommitdiffstats
path: root/trackingt.h
blob: 6faf09351954b6523576ce7c65de50e01244a03c (plain)
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
#ifndef REPREPRO_TRACKINGT_H
#define REPREPRO_TRACKINGT_H

enum filetype { ft_ALL_BINARY='a',
		ft_ARCH_BINARY='b',
		ft_CHANGES = 'c',
		ft_LOG='l',
		ft_BUILDINFO='i',
		ft_SOURCE='s',
		ft_XTRA_DATA='x'};

struct trackedpackage {
	char *sourcename;
	char *sourceversion;
	struct strlist filekeys;
	int *refcounts;
	enum filetype *filetypes;
	struct {
		bool isnew;
		bool deleted;
	} flags;
};
typedef struct s_tracking *trackingdb;

struct trackingdata {
	/*@temp@*/trackingdb tracks;
	struct trackedpackage *pkg;
	/*@null@*/ struct trackingdata_remember {
		/*@null@*/struct trackingdata_remember *next;
		char *name;
		char *version;
	} *remembered;
};

struct distribution;
typedef retvalue tracking_foreach_ro_action(struct distribution *, const struct trackedpackage *);
retvalue tracking_foreach_ro(struct distribution *, tracking_foreach_ro_action *);
#endif /*REPREPRO_TRACKINGT_H*/