53#define mwService_FILE_TRANSFER 0x00000038
68#define mwFileTransfer_isState(ft, state) \
69 (mwFileTransfer_getState(ft) == (state))
71#define mwFileTransfer_isNew(ft) \
72 mwFileTransfer_isState((ft), mwFileTransfer_NEW)
74#define mwFileTransfer_isPending(ft) \
75 mwFileTransfer_isState((ft), mwFileTransfer_PENDING)
77#define mwFileTransfer_isOpen(ft) \
78 mwFileTransfer_isState((ft), mwFileTransfer_OPEN)
80#define mwFileTransfer_isDone(ft) \
81 mwFileTransfer_isState((ft), mwFileTransfer_DONE)
83#define mwFileTransfer_isCancelLocal(ft) \
84 mwFileTransfer_isState((ft), mwFileTransfer_CANCEL_LOCAL)
86#define mwFileTransfer_isCancelRemote(ft) \
87 mwFileTransfer_isState((ft), mwFileTransfer_CANCEL_REMOTE)
137 const struct mwIdBlock *who,
const char *msg,
138 const char *filename, guint32 filesize);
181#define mwFileTransfer_getSent(ft) \
182 (mwFileTransfer_getFileSize(ft) - mwFileTransfer_getRemaining(ft))
194#define mwFileTransfer_reject(ft) \
195 mwFileTransfer_close((ft), mwFileTransfer_REJECTED)
199#define mwFileTransfer_cancel(ft) \
200 mwFileTransfer_close((ft), mwFileTransfer_SUCCESS);
235 gpointer data, GDestroyNotify clean);
Common data types and functions for handling those types.
void mwFileTransfer_removeClientData(struct mwFileTransfer *ft)
struct mwFileTransfer * mwFileTransfer_new(struct mwServiceFileTransfer *srvc, const struct mwIdBlock *who, const char *msg, const char *filename, guint32 filesize)
const char * mwFileTransfer_getMessage(struct mwFileTransfer *ft)
the message sent along with an offered file transfer
int mwFileTransfer_accept(struct mwFileTransfer *ft)
accept an incoming file transfer
int mwFileTransfer_send(struct mwFileTransfer *ft, struct mwOpaque *data)
send a chunk of data over an outbound file transfer.
guint32 mwFileTransfer_getRemaining(struct mwFileTransfer *ft)
bytes remaining to be received/send
const struct mwIdBlock * mwFileTransfer_getUser(struct mwFileTransfer *ft)
the user on the other end of the file transfer
struct mwFileTransferHandler * mwServiceFileTransfer_getHandler(struct mwServiceFileTransfer *srvc)
struct mwServiceFileTransfer * mwFileTransfer_getService(struct mwFileTransfer *ft)
gpointer mwFileTransfer_getClientData(struct mwFileTransfer *ft)
enum mwFileTransferState mwFileTransfer_getState(struct mwFileTransfer *ft)
the status of this file transfer
const char * mwFileTransfer_getFileName(struct mwFileTransfer *ft)
the publicized file name.
int mwFileTransfer_ack(struct mwFileTransfer *ft)
acknowledge the receipt of a chunk of data from an inbound file transfer.
mwFileTranferCode
Definition mw_srvc_ft.h:90
@ mwFileTransfer_REJECTED
Definition mw_srvc_ft.h:92
@ mwFileTransfer_SUCCESS
Definition mw_srvc_ft.h:91
struct mwServiceFileTransfer * mwServiceFileTransfer_new(struct mwSession *session, struct mwFileTransferHandler *handler)
guint32 mwFileTransfer_getFileSize(struct mwFileTransfer *ft)
total bytes intended to be sent/received
const GList * mwServiceFileTransfer_getTransfers(struct mwServiceFileTransfer *srvc)
mwFileTransferState
Definition mw_srvc_ft.h:56
@ mwFileTransfer_UNKNOWN
unknown state
Definition mw_srvc_ft.h:64
@ mwFileTransfer_PENDING
file transfer is opening
Definition mw_srvc_ft.h:58
@ mwFileTransfer_NEW
file transfer is not open
Definition mw_srvc_ft.h:57
@ mwFileTransfer_CANCEL_LOCAL
Definition mw_srvc_ft.h:60
@ mwFileTransfer_OPEN
file transfer is open
Definition mw_srvc_ft.h:59
@ mwFileTransfer_DONE
Definition mw_srvc_ft.h:62
@ mwFileTransfer_ERROR
error in file transfer
Definition mw_srvc_ft.h:63
@ mwFileTransfer_CANCEL_REMOTE
Definition mw_srvc_ft.h:61
void mwFileTransfer_setClientData(struct mwFileTransfer *ft, gpointer data, GDestroyNotify clean)
int mwFileTransfer_close(struct mwFileTransfer *ft, guint32 code)
Close a file transfer.
int mwFileTransfer_offer(struct mwFileTransfer *ft)
initiate an outgoing file transfer
void mwFileTransfer_free(struct mwFileTransfer *ft)
deallocate a file transfer.
Definition mw_srvc_ft.h:96
void(* ft_opened)(struct mwFileTransfer *ft)
a file transfer has been fully initiated
Definition mw_srvc_ft.h:102
void(* clear)(struct mwServiceFileTransfer *srvc)
optional.
Definition mw_srvc_ft.h:118
void(* ft_closed)(struct mwFileTransfer *ft, guint32 code)
a file transfer has been closed.
Definition mw_srvc_ft.h:107
void(* ft_recv)(struct mwFileTransfer *ft, struct mwOpaque *data)
receive a chunk of a file from an inbound file transfer.
Definition mw_srvc_ft.h:110
void(* ft_ack)(struct mwFileTransfer *ft)
received an ack for a sent chunk on an outbound file transfer.
Definition mw_srvc_ft.h:115
void(* ft_offered)(struct mwFileTransfer *ft)
an incoming file transfer has been offered
Definition mw_srvc_ft.h:99
A single file trasfer session.
Definition mw_common.h:178
A length of binary data, not null-terminated.
Definition mw_common.h:79
Represents a Sametime client session.