#ifndef MSP_IO_SEEKABLE_H_
#define MSP_IO_SEEKABLE_H_
+#include <msp/core/inttypes.h>
#include "base.h"
namespace Msp {
namespace IO {
+class Handle;
+
+typedef Int64 SeekOffset;
+
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