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
|
|
|
|
*/
|
|
|
|
|
2014-03-28 23:33:35 +08:00
|
|
|
#ifndef GMIO_TRANSFER_H
|
|
|
|
#define GMIO_TRANSFER_H
|
2013-03-06 18:49:53 +08:00
|
|
|
|
2015-03-24 01:21:04 +08:00
|
|
|
#include "buffer.h"
|
2013-03-06 18:49:53 +08:00
|
|
|
#include "global.h"
|
|
|
|
#include "stream.h"
|
2015-03-13 00:46:40 +08:00
|
|
|
|
2014-11-19 16:39:56 +08:00
|
|
|
/*! Defines objects required for any transfer(read/write) operation */
|
2014-03-28 23:33:35 +08:00
|
|
|
struct gmio_transfer
|
2013-03-06 18:49:53 +08:00
|
|
|
{
|
2015-03-13 00:46:40 +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
|
|
|
|
*
|
2015-03-13 17:32:18 +08:00
|
|
|
* If \c GMIO_TRUE is returned then the current transfer should abort as
|
2015-03-13 00:46:40 +08:00
|
|
|
* 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
|
|
|
|
2015-03-13 17:32:18 +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);
|
|
|
|
|
2015-03-13 00:46:40 +08:00
|
|
|
/*! The stream object to be used for I/O */
|
|
|
|
gmio_stream_t stream;
|
2014-03-13 21:37:55 +08:00
|
|
|
|
2015-03-24 01:21:04 +08:00
|
|
|
/*! The memory buffer used by the transfer for stream operations */
|
|
|
|
gmio_buffer_t buffer;
|
2014-02-13 19:02:40 +08:00
|
|
|
};
|
|
|
|
|
2014-03-28 23:33:35 +08:00
|
|
|
typedef struct gmio_transfer gmio_transfer_t;
|
2013-03-06 18:49:53 +08:00
|
|
|
|
2014-03-28 23:33:35 +08:00
|
|
|
#endif /* GMIO_TRANSFER_H */
|