MCPcopy Create free account
hub / github.com/diasurgical/devilution / read

Method read

SourceX/dvlnet/frame_queue.cpp:15–37  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13}
14
15buffer_t frame_queue::read(framesize_t s)
16{
17 if (current_size < s)
18 throw frame_queue_exception();
19 buffer_t ret;
20 while (s > 0 && s >= buffer_deque.front().size()) {
21 s -= buffer_deque.front().size();
22 current_size -= buffer_deque.front().size();
23 ret.insert(ret.end(),
24 buffer_deque.front().begin(),
25 buffer_deque.front().end());
26 buffer_deque.pop_front();
27 }
28 if (s > 0) {
29 ret.insert(ret.end(),
30 buffer_deque.front().begin(),
31 buffer_deque.front().begin() + s);
32 buffer_deque.front().erase(buffer_deque.front().begin(),
33 buffer_deque.front().begin() + s);
34 current_size -= s;
35 }
36 return ret;
37}
38
39void frame_queue::write(buffer_t buf)
40{

Callers 2

operator()Method · 0.45
ExectuableGetRevisionMethod · 0.45

Calls 8

frontMethod · 0.80
insertMethod · 0.80
pop_frontMethod · 0.80
eraseMethod · 0.80
sizeMethod · 0.45
endMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected