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

Method Seek

Sources/Shared/IO/Compression/DeflateStream.cpp:75–96  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

73 }
74
75 std::int64_t DeflateStream::Seek(std::int64_t offset, SeekOrigin origin)
76 {
77 switch (origin) {
78 case SeekOrigin::Current: {
79 DEATH_ASSERT(offset >= 0, "Cannot seek to negative values", Stream::OutOfRange);
80
81 std::uint8_t buffer[4096];
82 while (offset > 0) {
83 std::int64_t size = (offset > sizeof(buffer) ? sizeof(buffer) : offset);
84 std::int64_t bytesRead = Read(buffer, size);
85 if (bytesRead <= 0) {
86 return bytesRead;
87 }
88 offset -= bytesRead;
89 }
90
91 return static_cast<std::int64_t>(_strm.total_out);
92 }
93 }
94
95 return Stream::OutOfRange;
96 }
97
98 std::int64_t DeflateStream::GetPosition() const
99 {

Callers 1

CeaseReadingMethod · 0.45

Calls 1

DEATH_ASSERTFunction · 0.85

Tested by

no test coverage detected