]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/seekable.cpp
Add an intermediate Seekable interface class
[libs/core.git] / source / io / seekable.cpp
diff --git a/source/io/seekable.cpp b/source/io/seekable.cpp
new file mode 100644 (file)
index 0000000..101676e
--- /dev/null
@@ -0,0 +1,34 @@
+#ifdef WIN32
+#include <windows.h>
+#endif
+#include <stdexcept>
+#include "seekable.h"
+
+using namespace std;
+
+namespace Msp {
+namespace IO {
+
+int sys_seek_type(SeekType st)
+{
+#ifdef WIN32
+       if(st==S_BEG)
+               return FILE_BEGIN;
+       else if(st==S_CUR)
+               return FILE_CURRENT;
+       else if(st==S_END)
+               return FILE_END;
+#else
+       if(st==S_BEG)
+               return SEEK_SET;
+       else if(st==S_CUR)
+               return SEEK_CUR;
+       else if(st==S_END)
+               return SEEK_END;
+#endif
+
+       throw invalid_argument("sys_seek_type");
+}
+
+} // namespace IO
+} // namespace Msp