src/protocols/sametime/meanwhile/mw_srvc_ft.h

changeset 12957
9af807a5c9e7
parent 12956
39a4efae983c
child 12958
706645a0b944
--- a/src/protocols/sametime/meanwhile/mw_srvc_ft.h	Fri Jan 20 00:19:53 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-
-/*
-  Meanwhile - Unofficial Lotus Sametime Community Client Library
-  Copyright (C) 2004  Christopher (siege) O'Brien
-  
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Library General Public
-  License as published by the Free Software Foundation; either
-  version 2 of the License, or (at your option) any later version.
-  
-  This library is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  Library General Public License for more details.
-  
-  You should have received a copy of the GNU Library General Public
-  License along with this library; if not, write to the Free
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
-
-
-#ifndef _MW_SRVC_FT_H
-#define _MW_SRVC_FT_H
-
-
-#include "mw_common.h"
-
-
-/** @file mw_srvc_ft.h
-
-    A file transfer is a simple way to get large chunks of binary data
-    from one client to another.
-*/
-
-
-/** @struct mwServiceFileTransfer
-    File transfer service
-*/
-struct mwServiceFileTransfer;
-
-
-/** @struct mwFileTransfer
-    A single file trasfer session
- */
-struct mwFileTransfer;
-
-
-#define mwService_FILE_TRANSFER  0x00000038
-
-
-enum mwFileTransferState {
-  mwFileTransfer_NEW,   /**< file transfer is not open */
-  mwFileTransfer_PENDING,  /**< file transfer is opening */
-  mwFileTransfer_OPEN,     /**< file transfer is open */
-  mwFileTransfer_CANCEL_LOCAL,
-  mwFileTransfer_CANCEL_REMOTE,
-  mwFileTransfer_DONE,
-  mwFileTransfer_ERROR,    /**< error in file transfer */
-  mwFileTransfer_UNKNOWN,  /**< unknown state */
-};
-
-
-#define mwFileTransfer_isState(ft, state) \
-  (mwFileTransfer_getState(ft) == (state))
-
-#define mwFileTransfer_isNew(ft) \
-  mwFileTransfer_isState((ft), mwFileTransfer_NEW)
-
-#define mwFileTransfer_isPending(ft) \
-  mwFileTransfer_isState((ft), mwFileTransfer_PENDING)
-
-#define mwFileTransfer_isOpen(ft) \
-  mwFileTransfer_isState((ft), mwFileTransfer_OPEN)
-
-#define mwFileTransfer_isDone(ft) \
-  mwFileTransfer_isState((ft), mwFileTransfer_DONE)
-
-#define mwFileTransfer_isCancelLocal(ft) \
-  mwFileTransfer_isState((ft), mwFileTransfer_CANCEL_LOCAL)
-
-#define mwFileTransfer_isCancelRemote(ft) \
-  mwFileTransfer_isState((ft), mwFileTransfer_CANCEL_REMOTE)
-
-
-enum mwFileTranferCode {
-  mwFileTransfer_SUCCESS   = 0x00000000,
-  mwFileTransfer_REJECTED  = 0x08000606,
-};
-
-
-struct mwFileTransferHandler {
-
-  /** an incoming file transfer has been offered */
-  void (*ft_offered)(struct mwFileTransfer *ft);
-
-  /** a file transfer has been fully initiated */
-  void (*ft_opened)(struct mwFileTransfer *ft);
-
-  /** a file transfer has been closed. Check the status of the file
-      transfer to determine if the transfer was complete or if it had
-      been interrupted */
-  void (*ft_closed)(struct mwFileTransfer *ft, guint32 code);
-
-  /** receive a chunk of a file from an inbound file transfer. */
-  void (*ft_recv)(struct mwFileTransfer *ft, struct mwOpaque *data);
-
-  /** received an ack for a sent chunk on an outbound file transfer.
-      this indicates that a previous call to mwFileTransfer_send has
-      reached the target and that the target has responded. */
-  void (*ft_ack)(struct mwFileTransfer *ft);
-
-  /** optional. called from mwService_free */
-  void (*clear)(struct mwServiceFileTransfer *srvc);
-};
-
-
-struct mwServiceFileTransfer *
-mwServiceFileTransfer_new(struct mwSession *session,
-			  struct mwFileTransferHandler *handler);
-
-
-struct mwFileTransferHandler *
-mwServiceFileTransfer_getHandler(struct mwServiceFileTransfer *srvc);
-
-
-const GList *
-mwServiceFileTransfer_getTransfers(struct mwServiceFileTransfer *srvc);
-
-
-struct mwFileTransfer *
-mwFileTransfer_new(struct mwServiceFileTransfer *srvc,
-		   const struct mwIdBlock *who, const char *msg,
-		   const char *filename, guint32 filesize);
-
-
-/** deallocate a file transfer. will call mwFileTransfer_close if
-    necessary */
-void
-mwFileTransfer_free(struct mwFileTransfer *ft);
-
-
-/** the status of this file transfer */
-enum mwFileTransferState
-mwFileTransfer_getState(struct mwFileTransfer *ft);
-
-
-struct mwServiceFileTransfer *
-mwFileTransfer_getService(struct mwFileTransfer *ft);
-
-
-/** the user on the other end of the file transfer */
-const struct mwIdBlock *
-mwFileTransfer_getUser(struct mwFileTransfer *ft);
-
-
-/** the message sent along with an offered file transfer */
-const char *
-mwFileTransfer_getMessage(struct mwFileTransfer *ft);
-
-
-/** the publicized file name. Not necessarily related to any actual
-    file on either system */
-const char *
-mwFileTransfer_getFileName(struct mwFileTransfer *ft);
-
-
-/** total bytes intended to be sent/received */
-guint32 mwFileTransfer_getFileSize(struct mwFileTransfer *ft);
-
-
-/** bytes remaining to be received/send */
-guint32 mwFileTransfer_getRemaining(struct mwFileTransfer *ft);
-
-
-/** count of bytes sent/received over this file transfer so far */
-#define mwFileTransfer_getSent(ft) \
-  (mwFileTransfer_getFileSize(ft) - mwFileTransfer_getRemaining(ft))
-
-
-/** initiate an outgoing file transfer */
-int mwFileTransfer_offer(struct mwFileTransfer *ft);
-
-
-/** accept an incoming file transfer */
-int mwFileTransfer_accept(struct mwFileTransfer *ft);
-
-
-/** reject an incoming file transfer */
-#define mwFileTransfer_reject(ft) \
-  mwFileTransfer_close((ft), mwFileTransfer_REJECTED)
-
-
-/** cancel an open file transfer */
-#define mwFileTransfer_cancel(ft) \
-  mwFileTransfer_close((ft), mwFileTransfer_SUCCESS);
-
-
-/** Close a file transfer. This will trigger the ft_close function of the
-    session's handler.
-
-    @see mwFileTransfer_reject
-    @see mwFileTransfer_cancel
-*/
-int mwFileTransfer_close(struct mwFileTransfer *ft, guint32 code);
-
-
-/** send a chunk of data over an outbound file transfer. The client at
-    the other end of the transfer should respond with an acknowledgement
-    message, which can be caught in the service's handler.
-
-    @see mwFileTransferHandler::ft_ack
-*/
-int mwFileTransfer_send(struct mwFileTransfer *ft,
-			struct mwOpaque *data);
-
-
-/** acknowledge the receipt of a chunk of data from an inbound file
-    transfer.  This should be done after every received chunk, or the
-    transfer will stall. However, not all clients will wait for an ack
-    after sending a chunk before sending the next chunk, so it is
-    possible to have the handler's ft_recv function triggered again
-    even if no ack was sent.
-
-    @see mwFileTransferHandler::ft_recv
-*/
-int mwFileTransfer_ack(struct mwFileTransfer *ft);
-
-
-void mwFileTransfer_setClientData(struct mwFileTransfer *ft,
-				  gpointer data, GDestroyNotify clean);
-
-
-gpointer mwFileTransfer_getClientData(struct mwFileTransfer *ft);
-
-
-void mwFileTransfer_removeClientData(struct mwFileTransfer *ft);
-
-
-#endif

mercurial