libpurple/xfer.h

branch
soc.2013.gobjectification
changeset 34919
80d8cc6db8a3
parent 34913
21017b84a070
child 34922
6043d2b7f55a
equal deleted inserted replaced
34918:cacde085bb16 34919:80d8cc6db8a3
132 * @param xfer The file transfer structure 132 * @param xfer The file transfer structure
133 */ 133 */
134 void (*add_thumbnail)(PurpleXfer *xfer, const gchar *formats); 134 void (*add_thumbnail)(PurpleXfer *xfer, const gchar *formats);
135 } PurpleXferUiOps; 135 } PurpleXferUiOps;
136 136
137 /** I/O operations, which should be set by the prpl using
138 * purple_xfer_set_io_ops() and friends. Setting #init is
139 * mandatory; all others are optional. TODO
140 */
141 typedef struct
142 {
143 void (*init)(PurpleXfer *xfer);
144 void (*request_denied)(PurpleXfer *xfer);
145 void (*start)(PurpleXfer *xfer);
146 void (*end)(PurpleXfer *xfer);
147 void (*cancel_send)(PurpleXfer *xfer);
148 void (*cancel_recv)(PurpleXfer *xfer);
149 gssize (*read)(guchar **buffer, PurpleXfer *xfer);
150 gssize (*write)(const guchar *buffer, size_t size, PurpleXfer *xfer);
151 void (*ack)(PurpleXfer *xfer, const guchar *buffer, size_t size);
152 } PurpleXferIoOps;
153
154 /** 137 /**
155 * A core representation of a file transfer. 138 * A core representation of a file transfer.
156 */ 139 */
157 struct _PurpleXfer 140 struct _PurpleXfer
158 { 141 {
506 * 489 *
507 * @return The UI operations structure. 490 * @return The UI operations structure.
508 */ 491 */
509 PurpleXferUiOps *purple_xfer_get_ui_ops(const PurpleXfer *xfer); 492 PurpleXferUiOps *purple_xfer_get_ui_ops(const PurpleXfer *xfer);
510 493
511 /** TODO 494 /**
512 * Sets the IO operations structure to be used for a file transfer. 495 * Sets the read function for the file transfer.
513 * 496 *
514 * @param xfer The file transfer 497 * @param xfer The file transfer.
515 * @param ops The IO operations structure. 498 * @param fnc The read function.
516 */ 499 */
517 void purple_xfer_set_io_ops(PurpleXfer *xfer, PurpleXferIoOps *ops); 500 void purple_xfer_set_read_fnc(PurpleXfer *xfer,
518 501 gssize (*fnc)(guchar **, PurpleXfer *));
519 /** TODO check if this is necessary. if so, implement. 502
520 * Returns the IO operations structure for a file transfer. 503 /**
521 * 504 * Sets the write function for the file transfer.
522 * @param xfer The file transfer. 505 *
523 * 506 * @param xfer The file transfer.
524 * @return The IO operations structure. 507 * @param fnc The write function.
525 */ 508 */
526 PurpleXferIoOps *purple_xfer_get_io_ops(const PurpleXfer *xfer); 509 void purple_xfer_set_write_fnc(PurpleXfer *xfer,
510 gssize (*fnc)(const guchar *, size_t, PurpleXfer *));
511
512 /**
513 * Sets the acknowledge function for the file transfer.
514 *
515 * @param xfer The file transfer.
516 * @param fnc The acknowledge function.
517 */
518 void purple_xfer_set_ack_fnc(PurpleXfer *xfer,
519 void (*fnc)(PurpleXfer *, const guchar *, size_t));
520
521 /**
522 * Sets the function to be called if the request is denied.
523 *
524 * @param xfer The file transfer.
525 * @param fnc The request denied prpl callback.
526 */
527 void purple_xfer_set_request_denied_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
528
529 /**
530 * Sets the transfer initialization function for the file transfer.
531 *
532 * This function is required, and must call purple_xfer_start() with
533 * the necessary parameters. This will be called if the file transfer
534 * is accepted by the user.
535 *
536 * @param xfer The file transfer.
537 * @param fnc The transfer initialization function.
538 */
539 void purple_xfer_set_init_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
540
541 /**
542 * Sets the start transfer function for the file transfer.
543 *
544 * @param xfer The file transfer.
545 * @param fnc The start transfer function.
546 */
547 void purple_xfer_set_start_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
548
549 /**
550 * Sets the end transfer function for the file transfer.
551 *
552 * @param xfer The file transfer.
553 * @param fnc The end transfer function.
554 */
555 void purple_xfer_set_end_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
556
557 /**
558 * Sets the cancel send function for the file transfer.
559 *
560 * @param xfer The file transfer.
561 * @param fnc The cancel send function.
562 */
563 void purple_xfer_set_cancel_send_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
564
565 /**
566 * Sets the cancel receive function for the file transfer.
567 *
568 * @param xfer The file transfer.
569 * @param fnc The cancel receive function.
570 */
571 void purple_xfer_set_cancel_recv_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
527 572
528 /** 573 /**
529 * Reads in data from a file transfer stream. 574 * Reads in data from a file transfer stream.
530 * 575 *
531 * @param xfer The file transfer. 576 * @param xfer The file transfer.

mercurial