| 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. |