gmio/src/gmio_core/transfer.h

61 lines
2.1 KiB
C
Raw Normal View History

2015-03-03 00:38:33 +08:00
/****************************************************************************
** GeomIO Library
** Copyright FougSys (2 Mar. 2015)
** contact@fougsys.fr
**
** This software is a reusable library whose purpose is to provide complete
** I/O support for various CAD file formats (eg. STL)
**
** This software is governed by the CeCILL-B license under French law and
** abiding by the rules of distribution of free software. You can use,
** modify and/ or redistribute the software under the terms of the CeCILL-B
** license as circulated by CEA, CNRS and INRIA at the following URL
2015-03-30 15:05:25 +08:00
** "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html".
2015-03-03 00:38:33 +08:00
****************************************************************************/
2015-03-05 01:25:51 +08:00
/*! \file transfer.h
* Declaration of gmio_transfer
*/
#ifndef GMIO_TRANSFER_H
#define GMIO_TRANSFER_H
2013-03-06 18:49:53 +08:00
#include "buffer.h"
2013-03-06 18:49:53 +08:00
#include "global.h"
#include "stream.h"
2014-11-19 16:39:56 +08:00
/*! Defines objects required for any transfer(read/write) operation */
struct gmio_transfer
2013-03-06 18:49:53 +08:00
{
/*! Optional opaque pointer on a user task object, passed as first
* argument to hook functions */
void* cookie;
/*! Optional pointer on a function that says if the currently running
* operation must stop
*
* If \c GMIO_TRUE is returned then the current transfer should abort as
* soon as possible, otherwise it can continue execution.
*/
gmio_bool_t (*is_stop_requested_func)(void* cookie);
2014-03-13 21:37:55 +08:00
/*! Optional pointer on a function that is called anytime some progress
* was done during transfer
*
* \param cookie The cookie set inside the gmio_transfer object
* \param value Current value of the transfer progress (<= \p max_value )
* \param max_value Maximum value of the transfer progress
*/
void (*handle_progress_func)(void* cookie, size_t value, size_t max_value);
/*! The stream object to be used for I/O */
gmio_stream_t stream;
2014-03-13 21:37:55 +08:00
/*! The memory buffer used by the transfer for stream operations */
gmio_buffer_t buffer;
};
typedef struct gmio_transfer gmio_transfer_t;
2013-03-06 18:49:53 +08:00
#endif /* GMIO_TRANSFER_H */