diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-07-23 21:36:24 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-07-23 21:42:47 +0900 |
| commit | 860f4dd06ace859470e118d4b9a8d10ddf92d076 (patch) | |
| tree | 1effdc3fd73160b57f5d6d109662a66e33050d08 /src/BinaryStream.h | |
| parent | f56743b0833551aa6845d0a4f1d05da02cb52175 (diff) | |
Use int64_t instead of off_t
Using off_t, at least, in DiskAdaptor layer is problematic because
torrent can contain under 2GiB files but total sum of those files may
exceed 2GiB limit, which makes off_t overflow in 32 bit system without
large file support. So we use int64_t in API. We'll check the file
length before download so that it does not exceed max off_t.
Diffstat (limited to 'src/BinaryStream.h')
| -rw-r--r-- | src/BinaryStream.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/BinaryStream.h b/src/BinaryStream.h index bb7853a5..585fa5e9 100644 --- a/src/BinaryStream.h +++ b/src/BinaryStream.h @@ -47,17 +47,18 @@ class BinaryStream { public: virtual ~BinaryStream() {} - virtual void writeData(const unsigned char* data, size_t len, off_t offset) = 0; + virtual void writeData(const unsigned char* data, size_t len, + int64_t offset) = 0; - virtual ssize_t readData(unsigned char* data, size_t len, off_t offset) = 0; + virtual ssize_t readData(unsigned char* data, size_t len, int64_t offset) = 0; // Truncates a file to given length. The default implementation does // nothing. - virtual void truncate(off_t length) {} + virtual void truncate(int64_t length) {} // Allocates given length bytes of disk space from given offset. The // default implementation does nothing. - virtual void allocate(off_t offset, off_t length) {} + virtual void allocate(int64_t offset, int64_t length) {} }; typedef SharedHandle<BinaryStream> BinaryStreamHandle; |
