#ifndef BTPD_IF_H #define BTPD_IF_H struct ipc; enum torrent_state { //XXX: Same as in btpd/torrent.h T_STARTING, T_ACTIVE, T_STOPPING }; enum ipc_code { IPC_OK, IPC_FAIL, IPC_ERROR, IPC_COMMERR }; struct btstat { unsigned ntorrents; struct tpstat { uint8_t *hash; char *name; enum torrent_state state; unsigned tr_errors; unsigned peers; uint32_t pieces_got, pieces_seen, torrent_pieces; off_t content_got, content_size; unsigned long long downloaded, uploaded; unsigned long rate_up, rate_down; } torrents[]; }; int ipc_open(const char *dir, struct ipc **out); int ipc_close(struct ipc *ipc); enum ipc_code btpd_add(struct ipc *ipc, const uint8_t *hash, const char *torrent, const char *content); enum ipc_code btpd_del(struct ipc *ipc, const uint8_t *hash); enum ipc_code btpd_die(struct ipc *ipc, int seconds); enum ipc_code btpd_stat(struct ipc *ipc, struct btstat **out); void free_btstat(struct btstat *stat); #endif