MCPcopy Create free account
hub / github.com/deathkiller/jazz2-native / Seek

Method Seek

Sources/Shared/IO/BoundedFileStream.cpp:22–41  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

20 }
21
22 std::int64_t BoundedFileStream::Seek(std::int64_t offset, SeekOrigin origin)
23 {
24 std::int64_t newPos;
25 switch (origin) {
26 case SeekOrigin::Begin: newPos = _offset + offset; break;
27 case SeekOrigin::Current: newPos = _underlyingStream.GetPosition() + offset; break;
28 case SeekOrigin::End: newPos = _offset + _size + offset; break;
29 default: return Stream::OutOfRange;
30 }
31
32 if (newPos < static_cast<std::int64_t>(_offset) || newPos > static_cast<std::int64_t>(_offset + _size)) {
33 newPos = Stream::OutOfRange;
34 } else {
35 newPos = _underlyingStream.Seek(newPos, SeekOrigin::Begin);
36 if (newPos >= static_cast<std::int64_t>(_offset)) {
37 newPos -= _offset;
38 }
39 }
40 return newPos;
41 }
42
43 std::int64_t BoundedFileStream::GetPosition() const
44 {

Callers 1

BoundedFileStreamMethod · 0.45

Calls 1

GetPositionMethod · 0.45

Tested by

no test coverage detected