aboutsummaryrefslogtreecommitdiff
path: root/dat.h
blob: b23ccb7574be131ae0f8018376e1634d4c615427 (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
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
#define nil NULL

typedef unsigned char uchar;
typedef long long vlong;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned long long uvlong;
typedef uint32_t u32int;
typedef struct sockaddr sockaddr;
typedef struct sockaddr_in sockaddr_in;
typedef struct dirent dirent;

typedef struct Movie Movie;
typedef struct Multipart Multipart;
typedef struct Part Part;
typedef struct Series Series;
typedef struct Season Season;
typedef struct Episode Episode;
typedef struct Resource Resource;
typedef struct Index Index;

struct Movie {
	char *release;		/* release date */
	int hassynopsis;	/* is there a synopsis, */
	int hascover;		/* cover, */
	int hasvideo;		/* video, */
	int hashistory;		/* or history file? */
	char **subs;		/* list of subtitle languages */
	int nsub;
	char **dubs;		/* list of revoicing languages */
	int ndub;
	char **extras;		/* list of extra content */
	int nextra;
	char **remakes;		/* list of remake years */
	int nremake;
};

struct Multipart {
	char *release;		/* release date */
	int hassynopsis;	/* is there a synopsis, */
	int hascover;		/* cover, */
	int hashistory;		/* or history file? */
	Part *part0;		/* list of parts */
	char **extras;		/* list of extra content */
	int nextra;
	char **remakes;		/* list of remake years */
	int nremake;
};

struct Part {
	int no;			/* part number */
	char **subs;		/* list of subtitle languages */
	int nsub;
	char **dubs;		/* list of revoicing languages */
	int ndub;
	Part *next;
};

struct Series {
	int hassynopsis;	/* is there a synopsis, */
	int hascover;		/* cover, */
	int hashistory;		/* or history file? */
	Season *s;		/* list of seasons */
	char **extras;		/* list of extra content */
	int nextra;
	char **remakes;		/* list of remake years */
	int nremake;
};

struct Season {
	char *release;		/* release date */
	int no;			/* season number */
	Episode *pilot;		/* list of episodes */
	Season *next;
};

struct Episode {
	int no;			/* episode number */
	int hasvideo;		/* is there a video file? */
	char **subs;		/* list of subtitle languages */
	int nsub;
	char **dubs;		/* list of revoicing languages */
	int ndub;
	Episode *next;
};

enum {
	Rmovie,
	Rmulti,
	Rserie,
	Runknown
};
struct Resource {
	char *title;
	int type;
	void *media;
	/* this union will disappear soon */
	union {
		Movie movie;
		Multipart multi;
		Series serie;
	};
	Resource *next;
};

enum {
	INDEXSIZE	= 67,
};
struct Index {
	pthread_rwlock_t lock;
	Resource *rtab[INDEXSIZE];
};

typedef struct Req Req;
typedef struct HField HField;

struct Req {
	char *method, *target, *version;
	int status;
	HField *headers;
};

struct HField {
	char *key, *value;
	HField *next;
};