Transmission 2.33
[tomato.git] / release / src / router / transmission / libtransmission / inout.h
blob767e9b5f133eb855208c899036b8305a4c131351
1 /*
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.
15 #endif
17 #ifndef TR_IO_H
18 #define TR_IO_H 1
20 struct tr_torrent;
22 /**
23 * @addtogroup file_io File IO
24 * @{
27 /**
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,
33 uint32_t offset,
34 uint32_t len,
35 uint8_t * setme );
37 int tr_ioPrefetch( tr_torrent * tor,
38 tr_piece_index_t pieceIndex,
39 uint32_t begin,
40 uint32_t len );
42 /**
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,
48 uint32_t offset,
49 uint32_t len,
50 const uint8_t * writeme );
52 /**
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 );
59 /**
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,
64 uint32_t pieceOffset,
65 tr_file_index_t * fileIndex,
66 uint64_t * fileOffset );
69 /* @} */
70 #endif