Rename to .cc, fix Makefile bugs, add example_clock
This commit is contained in:
26
stream_buffer.cc
Normal file
26
stream_buffer.cc
Normal file
@@ -0,0 +1,26 @@
|
||||
#include "stream_buffer.h"
|
||||
|
||||
StreamBuffer::StreamBuffer(int sock, size_t size)
|
||||
: Buffer(size),
|
||||
sock_(sock) {}
|
||||
|
||||
bool StreamBuffer::BufferAtLeast(size_t len) {
|
||||
CHECK_LE(start_ + len, size_);
|
||||
|
||||
while (ReadMaxLen() < len) {
|
||||
auto read_len = read(sock_, WritePtr(), WriteMaxLen());
|
||||
PCHECK(read_len >= 0);
|
||||
if (read_len == 0) {
|
||||
return false;
|
||||
}
|
||||
Wrote(read_len);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
const char *StreamBuffer::Read(size_t len) {
|
||||
if (!BufferAtLeast(len)) {
|
||||
return nullptr;
|
||||
}
|
||||
return Buffer::Read(len);
|
||||
}
|
||||
Reference in New Issue
Block a user