fs/io/FileOutputStream: add method Tell()

This commit is contained in:
Max Kellermann 2015-03-24 21:46:01 +01:00
parent 6387b52896
commit f1f871f103
2 changed files with 20 additions and 0 deletions

View File

@ -48,6 +48,17 @@ FileOutputStream::FileOutputStream(Path _path, Error &error)
GetPath().ToUTF8().c_str());
}
uint64_t
BaseFileOutputStream::Tell() const
{
LONG high = 0;
DWORD low = SetFilePointer(handle, 0, &high, FILE_CURRENT);
if (low == 0xffffffff)
return 0;
return uint64_t(high) << 32 | uint64_t(low);
}
bool
BaseFileOutputStream::Write(const void *data, size_t size, Error &error)
{
@ -136,6 +147,12 @@ FileOutputStream::FileOutputStream(Path _path, Error &error)
#endif
}
uint64_t
BaseFileOutputStream::Tell() const
{
return fd.Tell();
}
bool
BaseFileOutputStream::Write(const void *data, size_t size, Error &error)
{

View File

@ -114,6 +114,9 @@ public:
return path;
}
gcc_pure
uint64_t Tell() const;
/* virtual methods from class OutputStream */
bool Write(const void *data, size_t size, Error &error) override;
};