|
Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
|
#include <serialise.hh>
Public Member Functions | |
| BufferedSource (size_t bufSize=32 *1024) | |
| size_t | read (char *data, size_t len) override |
| bool | hasData () |
| Public Member Functions inherited from nix::Source | |
| void | operator() (char *data, size_t len) |
| virtual bool | good () |
| void | drainInto (Sink &sink) |
| std::string | drain () |
Public Attributes | |
| size_t | bufSize |
| size_t | bufPosIn |
| size_t | bufPosOut |
| std::unique_ptr< char[]> | buffer |
Protected Member Functions | |
| virtual size_t | readUnbuffered (char *data, size_t len)=0 |
A buffered abstract source. Warning: a BufferedSource should not be used from multiple threads concurrently.
|
overridevirtual |
Store up to ‘len’ in the buffer pointed to by ‘data’, and return the number of bytes stored. It blocks until at least one byte is available.
Should not return 0 (generally you want to throw EndOfFile), but nothing stops that.
| EndOfFile | if there is no more data. |
Implements nix::Source.
|
protectedpure virtual |
Underlying read call, to be overridden.
Implemented in nix::daemon::TunnelSource, and nix::FdSource.