-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathreddit-internal.h
53 lines (43 loc) · 1.34 KB
/
reddit-internal.h
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
#ifndef REDDIT_INTERNAL_H
#define REDDIT_INTERNAL_H
#include "json-actor.h"
#include "json-actor-boxed.h"
#include "user-agent.h"
#include "websockets.h"
#include "cee-utils.h"
struct reddit_request_attr {
/** the object itself */
void *obj;
/** size of `obj` in bytes */
size_t size;
/** initialize `obj` fields */
void (*init)(void *obj);
/** callback for filling `obj` with JSON values */
void (*from_json)(char *json, size_t len, void *obj);
/** perform a cleanup on `obj` */
void (*cleanup)(void *obj);
/** override default URL */
char *base_url;
};
struct reddit_adapter {
struct logconf conf;
struct user_agent *ua;
char *auth;
};
void reddit_adapter_init(struct reddit_adapter *adapter, struct logconf *conf);
void reddit_adapter_cleanup(struct reddit_adapter *adapter);
ORCAcode reddit_adapter_run(struct reddit_adapter *adapter,
struct reddit_request_attr *attr,
struct sized_buffer *body,
enum http_method method,
char endpoint[],
...);
struct reddit {
struct logconf conf;
struct sized_buffer username;
struct sized_buffer password;
struct sized_buffer client_id;
struct sized_buffer client_secret;
struct reddit_adapter adapter;
};
#endif /* REDDIT_INTERNAL_H */