A clone of btpd with my configuration changes.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

btpd_if.h 2.0 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #ifndef BTPD_IPC_H
  2. #define BTPD_IPC_H
  3. enum ipc_err {
  4. #define ERRDEF(name, msg) IPC_##name,
  5. #include "ipcdefs.h"
  6. #undef ERRDEF
  7. IPC_ERRCOUNT
  8. };
  9. enum ipc_type {
  10. IPC_TYPE_ERR,
  11. IPC_TYPE_BIN,
  12. IPC_TYPE_NUM,
  13. IPC_TYPE_STR
  14. };
  15. enum ipc_tval {
  16. #define TVDEF(val, type, name) IPC_TVAL_##val,
  17. #include "ipcdefs.h"
  18. #undef TVDEF
  19. IPC_TVALCOUNT
  20. };
  21. enum ipc_dval {
  22. IPC_DVAL_MIN,
  23. IPC_DVAL_MAX
  24. };
  25. enum ipc_twc {
  26. IPC_TWC_ALL,
  27. IPC_TWC_ACTIVE,
  28. IPC_TWC_INACTIVE
  29. };
  30. enum ipc_tstate {
  31. IPC_TSTATE_INACTIVE,
  32. IPC_TSTATE_START,
  33. IPC_TSTATE_STOP,
  34. IPC_TSTATE_LEECH,
  35. IPC_TSTATE_SEED
  36. };
  37. #ifndef DAEMON
  38. struct ipc;
  39. struct ipc_get_res {
  40. enum ipc_type type;
  41. union {
  42. struct {
  43. const char *p;
  44. size_t l;
  45. } str;
  46. long long num;
  47. } v;
  48. };
  49. struct ipc_torrent {
  50. int by_hash;
  51. union {
  52. unsigned num;
  53. uint8_t hash[20];
  54. } u;
  55. };
  56. typedef void (*tget_cb_t)(int obji, enum ipc_err objerr,
  57. struct ipc_get_res *res, void *arg);
  58. //typedef void (*dget_cb_t)(struct ipc_get_res *res, size_t nres, void *arg);
  59. int ipc_open(const char *dir, struct ipc **out);
  60. void ipc_close(struct ipc *ipc);
  61. const char *ipc_strerror(enum ipc_err err);
  62. enum ipc_err btpd_add(struct ipc *ipc, const char *mi, size_t mi_size,
  63. const char *content, const char *name);
  64. enum ipc_err btpd_del(struct ipc *ipc, struct ipc_torrent *tp);
  65. enum ipc_err btpd_start(struct ipc *ipc, struct ipc_torrent *tp);
  66. enum ipc_err btpd_stop(struct ipc *ipc, struct ipc_torrent *tp);
  67. enum ipc_err btpd_stop_all(struct ipc *ipc);
  68. enum ipc_err btpd_die(struct ipc *ipc, int seconds);
  69. enum ipc_err btpd_get(struct ipc *ipc, enum ipc_dval *keys, size_t nkeys,
  70. tget_cb_t cb, void *arg);
  71. enum ipc_err btpd_tget(struct ipc *ipc, struct ipc_torrent *tps, size_t ntps,
  72. enum ipc_tval *keys, size_t nkeys, tget_cb_t cb, void *arg);
  73. enum ipc_err btpd_tget_wc(struct ipc *ipc, enum ipc_twc, enum ipc_tval *keys,
  74. size_t nkeys, tget_cb_t cb, void *arg);
  75. #endif
  76. #endif