diff options
| author | Richard Nyberg <rnyberg@murmeldjur.se> | 2006-09-12 21:15:30 +0000 |
|---|---|---|
| committer | Richard Nyberg <rnyberg@murmeldjur.se> | 2006-09-12 21:15:30 +0000 |
| commit | a162d34982bf2d44116dae10437fe9b4c1cda0a0 (patch) | |
| tree | d1c62991faf1939f4a99196027b0a51c911f7542 /misc/btpd_if.h | |
| parent | 28380064b76ccc456ac3bd71e01f4610b3f8fe99 (diff) | |
| download | btpd-a162d34982bf2d44116dae10437fe9b4c1cda0a0.tar.gz btpd-a162d34982bf2d44116dae10437fe9b4c1cda0a0.zip | |
Moved from ../cli.
Diffstat (limited to 'misc/btpd_if.h')
| -rw-r--r-- | misc/btpd_if.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/misc/btpd_if.h b/misc/btpd_if.h new file mode 100644 index 0000000..ed0d9ba --- /dev/null +++ b/misc/btpd_if.h @@ -0,0 +1,92 @@ +#ifndef BTPD_IPC_H +#define BTPD_IPC_H + +enum ipc_err { +#define ERRDEF(name, msg) IPC_##name, +#include "ipcdefs.h" +#undef ERRDEF + IPC_ERRCOUNT +}; + +enum ipc_type { + IPC_TYPE_ERR, + IPC_TYPE_BIN, + IPC_TYPE_NUM, + IPC_TYPE_STR +}; + +enum ipc_tval { +#define TVDEF(val, type, name) IPC_TVAL_##val, +#include "ipcdefs.h" +#undef TVDEF + IPC_TVALCOUNT +}; + +enum ipc_dval { + IPC_DVAL_MIN, + IPC_DVAL_MAX +}; + +enum ipc_twc { + IPC_TWC_ALL, + IPC_TWC_ACTIVE, + IPC_TWC_INACTIVE +}; + +enum ipc_tstate { + IPC_TSTATE_INACTIVE, + IPC_TSTATE_START, + IPC_TSTATE_STOP, + IPC_TSTATE_LEECH, + IPC_TSTATE_SEED +}; + +#ifndef DAEMON + +struct ipc; + +struct ipc_get_res { + enum ipc_type type; + union { + struct { + const char *p; + size_t l; + } str; + long long num; + } v; +}; + +struct ipc_torrent { + int by_hash; + union { + unsigned num; + uint8_t hash[20]; + } u; +}; + +typedef void (*tget_cb_t)(int obji, enum ipc_err objerr, + struct ipc_get_res *res, void *arg); + +//typedef void (*dget_cb_t)(struct ipc_get_res *res, size_t nres, void *arg); + +int ipc_open(const char *dir, struct ipc **out); +void ipc_close(struct ipc *ipc); + +const char *ipc_strerror(enum ipc_err err); + +enum ipc_err btpd_add(struct ipc *ipc, const char *mi, size_t mi_size, + const char *content, const char *name); +enum ipc_err btpd_del(struct ipc *ipc, struct ipc_torrent *tp); +enum ipc_err btpd_start(struct ipc *ipc, struct ipc_torrent *tp); +enum ipc_err btpd_stop(struct ipc *ipc, struct ipc_torrent *tp); +enum ipc_err btpd_die(struct ipc *ipc, int seconds); +enum ipc_err btpd_get(struct ipc *ipc, enum ipc_dval *keys, size_t nkeys, + tget_cb_t cb, void *arg); +enum ipc_err btpd_tget(struct ipc *ipc, struct ipc_torrent *tps, size_t ntps, + enum ipc_tval *keys, size_t nkeys, tget_cb_t cb, void *arg); +enum ipc_err btpd_tget_wc(struct ipc *ipc, enum ipc_twc, enum ipc_tval *keys, + size_t nkeys, tget_cb_t cb, void *arg); + +#endif + +#endif |