21#ifndef INCLUDE_OLA_IO_IOSTACK_H_
22#define INCLUDE_OLA_IO_IOSTACK_H_
24#include <ola/io/IOVecInterface.h>
25#include <ola/io/InputBuffer.h>
26#include <ola/io/OutputBuffer.h>
40 public InputBufferInterface,
41 public OutputBufferInterface {
44 explicit IOStack(
class MemoryBlockPool *block_pool);
48 unsigned int Size()
const;
52 return m_blocks.empty() ||
Size() == 0;
56 void Write(
const uint8_t *data,
unsigned int length);
59 unsigned int Read(uint8_t *data,
unsigned int length);
60 unsigned int Read(std::string *output,
unsigned int length);
63 const struct IOVec *
AsIOVec(
int *io_count)
const;
64 void Pop(
unsigned int n);
72 void Dump(std::ostream *output);
75 typedef std::deque<class MemoryBlock*> BlockVector;
77 class MemoryBlockPool* m_pool;
IOStack()
Definition IOStack.cpp:43
void MoveToIOQueue(class IOQueue *queue)
Definition IOStack.cpp:204
unsigned int Size() const
Definition IOStack.cpp:71
void Write(const uint8_t *data, unsigned int length)
Definition IOStack.cpp:86
IOStack()
Definition IOStack.cpp:43
~IOStack()
Definition IOStack.cpp:57
void Dump(std::ostream *output)
Definition IOStack.cpp:220
unsigned int Read(uint8_t *data, unsigned int length)
Definition IOStack.cpp:106
void Pop(unsigned int n)
Definition IOStack.cpp:182
const struct IOVec * AsIOVec(int *io_count) const
Definition IOStack.cpp:157
Classes for general I/O and event handling.
Definition Descriptor.cpp:49
The namespace containing all OLA symbols.
Definition Credentials.cpp:44