Frameworks/libpurple.framework/Versions/0.6.0/Headers/ft.h
changeset 2592 e8d15275025e
parent 2591 f66a716bfc79
child 2593 b4bd28402abc
     1.1 --- a/Frameworks/libpurple.framework/Versions/0.6.0/Headers/ft.h	Fri Aug 21 13:24:36 2009 -0700
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,664 +0,0 @@
     1.4 -/**
     1.5 - * @file ft.h File Transfer API
     1.6 - * @ingroup core
     1.7 - * @see @ref xfer-signals
     1.8 - */
     1.9 -
    1.10 -/* purple
    1.11 - *
    1.12 - * Purple is the legal property of its developers, whose names are too numerous
    1.13 - * to list here.  Please refer to the COPYRIGHT file distributed with this
    1.14 - * source distribution.
    1.15 - *
    1.16 - * This program is free software; you can redistribute it and/or modify
    1.17 - * it under the terms of the GNU General Public License as published by
    1.18 - * the Free Software Foundation; either version 2 of the License, or
    1.19 - * (at your option) any later version.
    1.20 - *
    1.21 - * This program is distributed in the hope that it will be useful,
    1.22 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.23 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.24 - * GNU General Public License for more details.
    1.25 - *
    1.26 - * You should have received a copy of the GNU General Public License
    1.27 - * along with this program; if not, write to the Free Software
    1.28 - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
    1.29 - */
    1.30 -#ifndef _PURPLE_FT_H_
    1.31 -#define _PURPLE_FT_H_
    1.32 -
    1.33 -/**************************************************************************/
    1.34 -/** Data Structures                                                       */
    1.35 -/**************************************************************************/
    1.36 -typedef struct _PurpleXfer PurpleXfer;
    1.37 -
    1.38 -#include <glib.h>
    1.39 -#include <stdio.h>
    1.40 -
    1.41 -#include "account.h"
    1.42 -
    1.43 -/**
    1.44 - * Types of file transfers.
    1.45 - */
    1.46 -typedef enum
    1.47 -{
    1.48 -	PURPLE_XFER_UNKNOWN = 0,  /**< Unknown file transfer type. */
    1.49 -	PURPLE_XFER_SEND,         /**< File sending.               */
    1.50 -	PURPLE_XFER_RECEIVE       /**< File receiving.             */
    1.51 -
    1.52 -} PurpleXferType;
    1.53 -
    1.54 -/**
    1.55 - * The different states of the xfer.
    1.56 - */
    1.57 -typedef enum
    1.58 -{
    1.59 -	PURPLE_XFER_STATUS_UNKNOWN = 0,   /**< Unknown, the xfer may be null. */
    1.60 -	PURPLE_XFER_STATUS_NOT_STARTED,   /**< It hasn't started yet. */
    1.61 -	PURPLE_XFER_STATUS_ACCEPTED,      /**< Receive accepted, but destination file not selected yet */
    1.62 -	PURPLE_XFER_STATUS_STARTED,       /**< purple_xfer_start has been called. */
    1.63 -	PURPLE_XFER_STATUS_DONE,          /**< The xfer completed successfully. */
    1.64 -	PURPLE_XFER_STATUS_CANCEL_LOCAL,  /**< The xfer was canceled by us. */
    1.65 -	PURPLE_XFER_STATUS_CANCEL_REMOTE  /**< The xfer was canceled by the other end, or we couldn't connect. */
    1.66 -} PurpleXferStatusType;
    1.67 -
    1.68 -/**
    1.69 - * File transfer UI operations.
    1.70 - *
    1.71 - * Any UI representing a file transfer must assign a filled-out
    1.72 - * PurpleXferUiOps structure to the purple_xfer.
    1.73 - */
    1.74 -typedef struct
    1.75 -{
    1.76 -	void (*new_xfer)(PurpleXfer *xfer);
    1.77 -	void (*destroy)(PurpleXfer *xfer);
    1.78 -	void (*add_xfer)(PurpleXfer *xfer);
    1.79 -	void (*update_progress)(PurpleXfer *xfer, double percent);
    1.80 -	void (*cancel_local)(PurpleXfer *xfer);
    1.81 -	void (*cancel_remote)(PurpleXfer *xfer);
    1.82 -
    1.83 -	void (*_purple_reserved1)(void);
    1.84 -	void (*_purple_reserved2)(void);
    1.85 -	void (*_purple_reserved3)(void);
    1.86 -	void (*_purple_reserved4)(void);
    1.87 -} PurpleXferUiOps;
    1.88 -
    1.89 -/**
    1.90 - * A core representation of a file transfer.
    1.91 - */
    1.92 -struct _PurpleXfer
    1.93 -{
    1.94 -	guint ref;                    /**< The reference count.                */
    1.95 -	PurpleXferType type;            /**< The type of transfer.               */
    1.96 -
    1.97 -	PurpleAccount *account;         /**< The account.                        */
    1.98 -
    1.99 -	char *who;                    /**< The person on the other end of the
   1.100 -	                                   transfer.                           */
   1.101 -
   1.102 -	char *message;                /**< A message sent with the request     */
   1.103 -	char *filename;               /**< The name sent over the network.     */
   1.104 -	char *local_filename;         /**< The name on the local hard drive.   */
   1.105 -	size_t size;                  /**< The size of the file.               */
   1.106 -
   1.107 -	FILE *dest_fp;                /**< The destination file pointer.       */
   1.108 -
   1.109 -	char *remote_ip;              /**< The remote IP address.              */
   1.110 -	int local_port;               /**< The local port.                     */
   1.111 -	int remote_port;              /**< The remote port.                    */
   1.112 -
   1.113 -	int fd;                       /**< The socket file descriptor.         */
   1.114 -	int watcher;                  /**< Watcher.                            */
   1.115 -
   1.116 -	size_t bytes_sent;            /**< The number of bytes sent.           */
   1.117 -	size_t bytes_remaining;       /**< The number of bytes remaining.      */
   1.118 -	time_t start_time;            /**< When the transfer of data began.    */
   1.119 -	time_t end_time;              /**< When the transfer of data ended.    */
   1.120 -
   1.121 -	size_t current_buffer_size;   /**< This gradually increases for fast
   1.122 -	                                   network connections. */
   1.123 -
   1.124 -	PurpleXferStatusType status;    /**< File Transfer's status.             */
   1.125 -
   1.126 -	/* I/O operations. */
   1.127 -	struct
   1.128 -	{
   1.129 -		void (*init)(PurpleXfer *xfer);
   1.130 -		void (*request_denied)(PurpleXfer *xfer);
   1.131 -		void (*start)(PurpleXfer *xfer);
   1.132 -		void (*end)(PurpleXfer *xfer);
   1.133 -		void (*cancel_send)(PurpleXfer *xfer);
   1.134 -		void (*cancel_recv)(PurpleXfer *xfer);
   1.135 -		gssize (*read)(guchar **buffer, PurpleXfer *xfer);
   1.136 -		gssize (*write)(const guchar *buffer, size_t size, PurpleXfer *xfer);
   1.137 -		void (*ack)(PurpleXfer *xfer, const guchar *buffer, size_t size);
   1.138 -
   1.139 -	} ops;
   1.140 -
   1.141 -	PurpleXferUiOps *ui_ops;            /**< UI-specific operations. */
   1.142 -	void *ui_data;                    /**< UI-specific data.       */
   1.143 -
   1.144 -	void *data;                       /**< prpl-specific data.     */
   1.145 -};
   1.146 -
   1.147 -#ifdef __cplusplus
   1.148 -extern "C" {
   1.149 -#endif
   1.150 -
   1.151 -/**************************************************************************/
   1.152 -/** @name File Transfer API                                               */
   1.153 -/**************************************************************************/
   1.154 -/*@{*/
   1.155 -
   1.156 -/**
   1.157 - * Creates a new file transfer handle.
   1.158 - * This is called by prpls.
   1.159 - * The handle starts with a ref count of 1, and this reference
   1.160 - * is owned by the core. The prpl normally does not need to
   1.161 - * purple_xfer_ref or unref.
   1.162 - *
   1.163 - * @param account The account sending or receiving the file.
   1.164 - * @param type    The type of file transfer.
   1.165 - * @param who     The name of the remote user.
   1.166 - *
   1.167 - * @return A file transfer handle.
   1.168 - */
   1.169 -PurpleXfer *purple_xfer_new(PurpleAccount *account,
   1.170 -								PurpleXferType type, const char *who);
   1.171 -
   1.172 -/**
   1.173 - * Returns all xfers
   1.174 - *
   1.175 - * @return all current xfers with refs
   1.176 - */
   1.177 -GList *purple_xfers_get_all(void);
   1.178 -
   1.179 -/**
   1.180 - * Increases the reference count on a PurpleXfer.
   1.181 - * Please call purple_xfer_unref later.
   1.182 - *
   1.183 - * @param xfer A file transfer handle.
   1.184 - */
   1.185 -void purple_xfer_ref(PurpleXfer *xfer);
   1.186 -
   1.187 -/**
   1.188 - * Decreases the reference count on a PurpleXfer.
   1.189 - * If the reference reaches 0, purple_xfer_destroy (an internal function)
   1.190 - * will destroy the xfer. It calls the ui destroy cb first.
   1.191 - * Since the core keeps a ref on the xfer, only an erroneous call to
   1.192 - * this function will destroy the xfer while still in use.
   1.193 - *
   1.194 - * @param xfer A file transfer handle.
   1.195 - */
   1.196 -void purple_xfer_unref(PurpleXfer *xfer);
   1.197 -
   1.198 -/**
   1.199 - * Requests confirmation for a file transfer from the user. If receiving
   1.200 - * a file which is known at this point, this requests user to accept and
   1.201 - * save the file. If the filename is unknown (not set) this only requests user
   1.202 - * to accept the file transfer. In this case protocol must call this function
   1.203 - * again once the filename is available.
   1.204 - *
   1.205 - * @param xfer The file transfer to request confirmation on.
   1.206 - */
   1.207 -void purple_xfer_request(PurpleXfer *xfer);
   1.208 -
   1.209 -/**
   1.210 - * Called if the user accepts the file transfer request.
   1.211 - *
   1.212 - * @param xfer     The file transfer.
   1.213 - * @param filename The filename.
   1.214 - */
   1.215 -void purple_xfer_request_accepted(PurpleXfer *xfer, const char *filename);
   1.216 -
   1.217 -/**
   1.218 - * Called if the user rejects the file transfer request.
   1.219 - *
   1.220 - * @param xfer The file transfer.
   1.221 - */
   1.222 -void purple_xfer_request_denied(PurpleXfer *xfer);
   1.223 -
   1.224 -/**
   1.225 - * Returns the type of file transfer.
   1.226 - *
   1.227 - * @param xfer The file transfer.
   1.228 - *
   1.229 - * @return The type of the file transfer.
   1.230 - */
   1.231 -PurpleXferType purple_xfer_get_type(const PurpleXfer *xfer);
   1.232 -
   1.233 -/**
   1.234 - * Returns the account the file transfer is using.
   1.235 - *
   1.236 - * @param xfer The file transfer.
   1.237 - *
   1.238 - * @return The account.
   1.239 - */
   1.240 -PurpleAccount *purple_xfer_get_account(const PurpleXfer *xfer);
   1.241 -
   1.242 -/**
   1.243 - * Returns the name of the remote user.
   1.244 - *
   1.245 - * @param xfer The file transfer.
   1.246 - *
   1.247 - * @return The name of the remote user.
   1.248 - *
   1.249 - * @since 2.1.0
   1.250 - */
   1.251 -const char *purple_xfer_get_remote_user(const PurpleXfer *xfer);
   1.252 -
   1.253 -/**
   1.254 - * Returns the status of the xfer.
   1.255 - *
   1.256 - * @param xfer The file transfer.
   1.257 - *
   1.258 - * @return The status.
   1.259 - */
   1.260 -PurpleXferStatusType purple_xfer_get_status(const PurpleXfer *xfer);
   1.261 -
   1.262 -/**
   1.263 - * Returns true if the file transfer was canceled.
   1.264 - *
   1.265 - * @param xfer The file transfer.
   1.266 - *
   1.267 - * @return Whether or not the transfer was canceled.
   1.268 - */
   1.269 -gboolean purple_xfer_is_canceled(const PurpleXfer *xfer);
   1.270 -
   1.271 -/**
   1.272 - * Returns the completed state for a file transfer.
   1.273 - *
   1.274 - * @param xfer The file transfer.
   1.275 - *
   1.276 - * @return The completed state.
   1.277 - */
   1.278 -gboolean purple_xfer_is_completed(const PurpleXfer *xfer);
   1.279 -
   1.280 -/**
   1.281 - * Returns the name of the file being sent or received.
   1.282 - *
   1.283 - * @param xfer The file transfer.
   1.284 - *
   1.285 - * @return The filename.
   1.286 - */
   1.287 -const char *purple_xfer_get_filename(const PurpleXfer *xfer);
   1.288 -
   1.289 -/**
   1.290 - * Returns the file's destination filename,
   1.291 - *
   1.292 - * @param xfer The file transfer.
   1.293 - *
   1.294 - * @return The destination filename.
   1.295 - */
   1.296 -const char *purple_xfer_get_local_filename(const PurpleXfer *xfer);
   1.297 -
   1.298 -/**
   1.299 - * Returns the number of bytes sent (or received) so far.
   1.300 - *
   1.301 - * @param xfer The file transfer.
   1.302 - *
   1.303 - * @return The number of bytes sent.
   1.304 - */
   1.305 -size_t purple_xfer_get_bytes_sent(const PurpleXfer *xfer);
   1.306 -
   1.307 -/**
   1.308 - * Returns the number of bytes remaining to send or receive.
   1.309 - *
   1.310 - * @param xfer The file transfer.
   1.311 - *
   1.312 - * @return The number of bytes remaining.
   1.313 - */
   1.314 -size_t purple_xfer_get_bytes_remaining(const PurpleXfer *xfer);
   1.315 -
   1.316 -/**
   1.317 - * Returns the size of the file being sent or received.
   1.318 - *
   1.319 - * @param xfer The file transfer.
   1.320 - *
   1.321 - * @return The total size of the file.
   1.322 - */
   1.323 -size_t purple_xfer_get_size(const PurpleXfer *xfer);
   1.324 -
   1.325 -/**
   1.326 - * Returns the current percentage of progress of the transfer.
   1.327 - *
   1.328 - * This is a number between 0 (0%) and 1 (100%).
   1.329 - *
   1.330 - * @param xfer The file transfer.
   1.331 - *
   1.332 - * @return The percentage complete.
   1.333 - */
   1.334 -double purple_xfer_get_progress(const PurpleXfer *xfer);
   1.335 -
   1.336 -/**
   1.337 - * Returns the local port number in the file transfer.
   1.338 - *
   1.339 - * @param xfer The file transfer.
   1.340 - *
   1.341 - * @return The port number on this end.
   1.342 - */
   1.343 -unsigned int purple_xfer_get_local_port(const PurpleXfer *xfer);
   1.344 -
   1.345 -/**
   1.346 - * Returns the remote IP address in the file transfer.
   1.347 - *
   1.348 - * @param xfer The file transfer.
   1.349 - *
   1.350 - * @return The IP address on the other end.
   1.351 - */
   1.352 -const char *purple_xfer_get_remote_ip(const PurpleXfer *xfer);
   1.353 -
   1.354 -/**
   1.355 - * Returns the remote port number in the file transfer.
   1.356 - *
   1.357 - * @param xfer The file transfer.
   1.358 - *
   1.359 - * @return The port number on the other end.
   1.360 - */
   1.361 -unsigned int purple_xfer_get_remote_port(const PurpleXfer *xfer);
   1.362 -
   1.363 -/**
   1.364 - * Returns the time the transfer of a file started.
   1.365 - *
   1.366 - * @param xfer  The file transfer.
   1.367 - *
   1.368 - * @return The time when the transfer started.
   1.369 - * @since 2.4.0
   1.370 - */
   1.371 -time_t purple_xfer_get_start_time(const PurpleXfer *xfer);
   1.372 -
   1.373 -/**
   1.374 - * Returns the time the transfer of a file ended.
   1.375 - *
   1.376 - * @param xfer  The file transfer.
   1.377 - *
   1.378 - * @return The time when the transfer ended.
   1.379 - * @since 2.4.0
   1.380 - */
   1.381 -time_t purple_xfer_get_end_time(const PurpleXfer *xfer);
   1.382 -
   1.383 -/**
   1.384 - * Sets the completed state for the file transfer.
   1.385 - *
   1.386 - * @param xfer      The file transfer.
   1.387 - * @param completed The completed state.
   1.388 - */
   1.389 -void purple_xfer_set_completed(PurpleXfer *xfer, gboolean completed);
   1.390 -
   1.391 -/**
   1.392 - * Sets the filename for the file transfer.
   1.393 - *
   1.394 - * @param xfer     The file transfer.
   1.395 - * @param message The message.
   1.396 - */
   1.397 -void purple_xfer_set_message(PurpleXfer *xfer, const char *message);
   1.398 -
   1.399 -/**
   1.400 - * Sets the filename for the file transfer.
   1.401 - *
   1.402 - * @param xfer     The file transfer.
   1.403 - * @param filename The filename.
   1.404 - */
   1.405 -void purple_xfer_set_filename(PurpleXfer *xfer, const char *filename);
   1.406 -
   1.407 -/**
   1.408 - * Sets the local filename for the file transfer.
   1.409 - *
   1.410 - * @param xfer     The file transfer.
   1.411 - * @param filename The filename
   1.412 - */
   1.413 -void purple_xfer_set_local_filename(PurpleXfer *xfer, const char *filename);
   1.414 -
   1.415 -/**
   1.416 - * Sets the size of the file in a file transfer.
   1.417 - *
   1.418 - * @param xfer The file transfer.
   1.419 - * @param size The size of the file.
   1.420 - */
   1.421 -void purple_xfer_set_size(PurpleXfer *xfer, size_t size);
   1.422 -
   1.423 -/**
   1.424 - * Sets the current working position in the active file transfer.  This
   1.425 - * can be used to jump backward in the file if the protocol detects
   1.426 - * that some bit of data needs to be resent or has been sent twice.
   1.427 - *
   1.428 - * It's used for pausing and resuming an oscar file transfer.
   1.429 - *
   1.430 - * @param xfer       The file transfer.
   1.431 - * @param bytes_sent The new current position in the file.  If we're
   1.432 - *                   sending a file then this is the byte that we will
   1.433 - *                   send.  If we're receiving a file, this is the
   1.434 - *                   next byte that we expect to receive.
   1.435 - */
   1.436 -void purple_xfer_set_bytes_sent(PurpleXfer *xfer, size_t bytes_sent);
   1.437 -
   1.438 -/**
   1.439 - * Returns the UI operations structure for a file transfer.
   1.440 - *
   1.441 - * @param xfer The file transfer.
   1.442 - *
   1.443 - * @return The UI operations structure.
   1.444 - */
   1.445 -PurpleXferUiOps *purple_xfer_get_ui_ops(const PurpleXfer *xfer);
   1.446 -
   1.447 -/**
   1.448 - * Sets the read function for the file transfer.
   1.449 - *
   1.450 - * @param xfer The file transfer.
   1.451 - * @param fnc  The read function.
   1.452 - */
   1.453 -void purple_xfer_set_read_fnc(PurpleXfer *xfer,
   1.454 -		gssize (*fnc)(guchar **, PurpleXfer *));
   1.455 -
   1.456 -/**
   1.457 - * Sets the write function for the file transfer.
   1.458 - *
   1.459 - * @param xfer The file transfer.
   1.460 - * @param fnc  The write function.
   1.461 - */
   1.462 -void purple_xfer_set_write_fnc(PurpleXfer *xfer,
   1.463 -		gssize (*fnc)(const guchar *, size_t, PurpleXfer *));
   1.464 -
   1.465 -/**
   1.466 - * Sets the acknowledge function for the file transfer.
   1.467 - *
   1.468 - * @param xfer The file transfer.
   1.469 - * @param fnc  The acknowledge function.
   1.470 - */
   1.471 -void purple_xfer_set_ack_fnc(PurpleXfer *xfer,
   1.472 -		void (*fnc)(PurpleXfer *, const guchar *, size_t));
   1.473 -
   1.474 -/**
   1.475 - * Sets the function to be called if the request is denied.
   1.476 - *
   1.477 - * @param xfer The file transfer.
   1.478 - * @param fnc The request denied prpl callback.
   1.479 - */
   1.480 -void purple_xfer_set_request_denied_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
   1.481 -
   1.482 -/**
   1.483 - * Sets the transfer initialization function for the file transfer.
   1.484 - *
   1.485 - * This function is required, and must call purple_xfer_start() with
   1.486 - * the necessary parameters. This will be called if the file transfer
   1.487 - * is accepted by the user.
   1.488 - *
   1.489 - * @param xfer The file transfer.
   1.490 - * @param fnc  The transfer initialization function.
   1.491 - */
   1.492 -void purple_xfer_set_init_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
   1.493 -
   1.494 -/**
   1.495 - * Sets the start transfer function for the file transfer.
   1.496 - *
   1.497 - * @param xfer The file transfer.
   1.498 - * @param fnc  The start transfer function.
   1.499 - */
   1.500 -void purple_xfer_set_start_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
   1.501 -
   1.502 -/**
   1.503 - * Sets the end transfer function for the file transfer.
   1.504 - *
   1.505 - * @param xfer The file transfer.
   1.506 - * @param fnc  The end transfer function.
   1.507 - */
   1.508 -void purple_xfer_set_end_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
   1.509 -
   1.510 -/**
   1.511 - * Sets the cancel send function for the file transfer.
   1.512 - *
   1.513 - * @param xfer The file transfer.
   1.514 - * @param fnc  The cancel send function.
   1.515 - */
   1.516 -void purple_xfer_set_cancel_send_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
   1.517 -
   1.518 -/**
   1.519 - * Sets the cancel receive function for the file transfer.
   1.520 - *
   1.521 - * @param xfer The file transfer.
   1.522 - * @param fnc  The cancel receive function.
   1.523 - */
   1.524 -void purple_xfer_set_cancel_recv_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *));
   1.525 -
   1.526 -/**
   1.527 - * Reads in data from a file transfer stream.
   1.528 - *
   1.529 - * @param xfer   The file transfer.
   1.530 - * @param buffer The buffer that will be created to contain the data.
   1.531 - *
   1.532 - * @return The number of bytes read, or -1.
   1.533 - */
   1.534 -gssize purple_xfer_read(PurpleXfer *xfer, guchar **buffer);
   1.535 -
   1.536 -/**
   1.537 - * Writes data to a file transfer stream.
   1.538 - *
   1.539 - * @param xfer   The file transfer.
   1.540 - * @param buffer The buffer to read the data from.
   1.541 - * @param size   The number of bytes to write.
   1.542 - *
   1.543 - * @return The number of bytes written, or -1.
   1.544 - */
   1.545 -gssize purple_xfer_write(PurpleXfer *xfer, const guchar *buffer, gsize size);
   1.546 -
   1.547 -/**
   1.548 - * Starts a file transfer.
   1.549 - *
   1.550 - * Either @a fd must be specified <i>or</i> @a ip and @a port on a
   1.551 - * file receive transfer. On send, @a fd must be specified, and
   1.552 - * @a ip and @a port are ignored.
   1.553 - *
   1.554 - * @param xfer The file transfer.
   1.555 - * @param fd   The file descriptor for the socket.
   1.556 - * @param ip   The IP address to connect to.
   1.557 - * @param port The port to connect to.
   1.558 - */
   1.559 -void purple_xfer_start(PurpleXfer *xfer, int fd, const char *ip,
   1.560 -					 unsigned int port);
   1.561 -
   1.562 -/**
   1.563 - * Ends a file transfer.
   1.564 - *
   1.565 - * @param xfer The file transfer.
   1.566 - */
   1.567 -void purple_xfer_end(PurpleXfer *xfer);
   1.568 -
   1.569 -/**
   1.570 - * Adds a new file transfer to the list of file transfers. Call this only
   1.571 - * if you are not using purple_xfer_start.
   1.572 - *
   1.573 - * @param xfer The file transfer.
   1.574 - */
   1.575 -void purple_xfer_add(PurpleXfer *xfer);
   1.576 -
   1.577 -/**
   1.578 - * Cancels a file transfer on the local end.
   1.579 - *
   1.580 - * @param xfer The file transfer.
   1.581 - */
   1.582 -void purple_xfer_cancel_local(PurpleXfer *xfer);
   1.583 -
   1.584 -/**
   1.585 - * Cancels a file transfer from the remote end.
   1.586 - *
   1.587 - * @param xfer The file transfer.
   1.588 - */
   1.589 -void purple_xfer_cancel_remote(PurpleXfer *xfer);
   1.590 -
   1.591 -/**
   1.592 - * Displays a file transfer-related error message.
   1.593 - *
   1.594 - * This is a wrapper around purple_notify_error(), which automatically
   1.595 - * specifies a title ("File transfer to <i>user</i> failed" or
   1.596 - * "File Transfer from <i>user</i> failed").
   1.597 - *
   1.598 - * @param type    The type of file transfer.
   1.599 - * @param account The account sending or receiving the file.
   1.600 - * @param who     The user on the other end of the transfer.
   1.601 - * @param msg     The message to display.
   1.602 - */
   1.603 -void purple_xfer_error(PurpleXferType type, PurpleAccount *account, const char *who, const char *msg);
   1.604 -
   1.605 -/**
   1.606 - * Updates file transfer progress.
   1.607 - *
   1.608 - * @param xfer      The file transfer.
   1.609 - */
   1.610 -void purple_xfer_update_progress(PurpleXfer *xfer);
   1.611 -
   1.612 -/**
   1.613 - * Displays a file transfer-related message in the conversation window
   1.614 - *
   1.615 - * This is a wrapper around purple_conversation_write
   1.616 - *
   1.617 - * @param xfer The file transfer to which this message relates.
   1.618 - * @param message The message to display.
   1.619 - * @param is_error Is this an error message?.
   1.620 - */
   1.621 -void purple_xfer_conversation_write(PurpleXfer *xfer, char *message, gboolean is_error);
   1.622 -
   1.623 -/*@}*/
   1.624 -
   1.625 -/**************************************************************************/
   1.626 -/** @name UI Registration Functions                                       */
   1.627 -/**************************************************************************/
   1.628 -/*@{*/
   1.629 -
   1.630 -/**
   1.631 - * Returns the handle to the file transfer subsystem
   1.632 - *
   1.633 - * @return The handle
   1.634 - */
   1.635 -void *purple_xfers_get_handle(void);
   1.636 -
   1.637 -/**
   1.638 - * Initializes the file transfer subsystem
   1.639 - */
   1.640 -void purple_xfers_init(void);
   1.641 -
   1.642 -/**
   1.643 - * Uninitializes the file transfer subsystem
   1.644 - */
   1.645 -void purple_xfers_uninit(void);
   1.646 -
   1.647 -/**
   1.648 - * Sets the UI operations structure to be used in all purple file transfers.
   1.649 - *
   1.650 - * @param ops The UI operations structure.
   1.651 - */
   1.652 -void purple_xfers_set_ui_ops(PurpleXferUiOps *ops);
   1.653 -
   1.654 -/**
   1.655 - * Returns the UI operations structure to be used in all purple file transfers.
   1.656 - *
   1.657 - * @return The UI operations structure.
   1.658 - */
   1.659 -PurpleXferUiOps *purple_xfers_get_ui_ops(void);
   1.660 -
   1.661 -/*@}*/
   1.662 -
   1.663 -#ifdef __cplusplus
   1.664 -}
   1.665 -#endif
   1.666 -
   1.667 -#endif /* _PURPLE_FT_H_ */