MCPcopy Create free account
hub / github.com/AbyssEngine/AbyssEngineOld / underflow

Method underflow

src/Abyss/FileSystem/CASC.cpp:41–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39CASCStream::~CASCStream() { CascCloseFile(_file); }
40
41int CASCStream::underflow() {
42 if (gptr() == egptr()) {
43 _startOfBlock += egptr() - eback();
44 DWORD amountRead;
45 if (!CascReadFile(_file, _buffer, sizeof(_buffer), &amountRead)) {
46 if (GetCascError() != ERROR_HANDLE_EOF) {
47 throw std::runtime_error("Error reading file from CASC");
48 }
49 }
50 setg(_buffer, _buffer, _buffer + amountRead);
51 }
52
53 return gptr() == egptr() ? traits_type::eof() : traits_type::to_int_type(*gptr());
54}
55
56CASCStream::pos_type CASCStream::seekpos(pos_type pos, std::ios_base::openmode which) { return seekoff(pos, std::ios_base::beg, which); }
57

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected