2 * This file Copyright (C) Mnemosyne LLC
4 * This file is licensed by the GPL version 2. Works owned by the
5 * Transmission project are granted a special exemption to clause 2(b)
6 * so that the bulk of its code can remain under the MIT license.
7 * This exemption does not extend to derived works not owned by
8 * the Transmission project.
10 * $Id: inout.h 12545 2011-07-13 03:23:37Z jordan $
13 #ifndef __TRANSMISSION__
14 #error only libtransmission should #include this header.
23 * @addtogroup file_io File IO
28 * Reads the block specified by the piece index, offset, and length.
29 * @return 0 on success, or an errno value on failure.
31 int tr_ioRead( struct tr_torrent
* tor
,
32 tr_piece_index_t pieceIndex
,
37 int tr_ioPrefetch( tr_torrent
* tor
,
38 tr_piece_index_t pieceIndex
,
43 * Writes the block specified by the piece index, offset, and length.
44 * @return 0 on success, or an errno value on failure.
46 int tr_ioWrite( struct tr_torrent
* tor
,
47 tr_piece_index_t pieceIndex
,
50 const uint8_t * writeme
);
53 * @brief Test to see if the piece matches its metainfo's SHA1 checksum.
55 bool tr_ioTestPiece( tr_torrent
* tor
,
56 tr_piece_index_t piece
);
60 * Converts a piece index + offset into a file index + offset.
62 void tr_ioFindFileLocation( const tr_torrent
* tor
,
63 tr_piece_index_t pieceIndex
,
65 tr_file_index_t
* fileIndex
,
66 uint64_t * fileOffset
);