namespace Msp {
namespace IO {
+class Handle;
+
+#ifdef MSVC
+typedef __int64 SeekOffset;
+#else
+typedef long long SeekOffset;
+#endif
+
enum SeekType
{
S_BEG,
S_END
};
-int sys_seek_type(SeekType);
-
class Seekable: public Base
{
public:
/** Changes the read/write offset. Returns the new offset. */
- virtual unsigned seek(int, SeekType) = 0;
+ virtual SeekOffset seek(SeekOffset, SeekType) = 0;
/** Returns the current read/write offset. */
- virtual unsigned tell() const = 0;
+ virtual SeekOffset tell() const = 0;
};
+
+SeekOffset sys_seek(Handle &, SeekOffset, SeekType);
+
} // namespace IO
} // namespace Msp