#define _CONDUIT_H
#include <sys/types.h>
+#include <stdint.h>
#define CNDS_IDLE 0
#define CNDS_SYN 1
struct transfer *next, *prev;
struct conduit *conduit;
char *tag; /* UTF8 */
- int pos, size;
+ intmax_t pos, size;
time_t cmptime, ckptime;
- size_t cmpsize, ckpsize;
+ intmax_t cmpsize, ckpsize;
int timeout;
};
int (*init)(struct conduit *conduit);
int (*connect)(struct conduit *conduit);
void (*destroy)(struct conduit *conduit);
+ int (*cancel)(struct conduit *conduit, struct transfer *transfer);
};
struct transfer *findtransferbytag(struct conduit *conduit, char *tag);
-void transfersetsize(struct transfer *transfer, int size);
-void transfersetpos(struct transfer *transfer, int pos);
-struct transfer *newtransfer(struct conduit *conduit, char *tag, int size, int pos);
+void transfersetsize(struct transfer *transfer, intmax_t size);
+void transfersetpos(struct transfer *transfer, intmax_t pos);
+struct transfer *newtransfer(struct conduit *conduit, char *tag, intmax_t size, intmax_t pos);
void freetransfer(struct transfer *transfer);
struct conduit *newconduit(struct conduitiface *iface, void *udata);
void freeconduit(struct conduit *conduit);