#include <AbstractBuffer.h>
Data Structures | |
union | VolatileState |
Public Types | |
enum | AbstractBufferState { AB_STATE_UNUSED, AB_STATE_INITIALIZING, AB_STATE_READ_WRITE, AB_STATE_READ_ONLY, AB_STATE_FLUSH, AB_STATE_FLUSH_COMPLETE } |
Public Member Functions | |
AbstractBuffer (int xsize, int xalignment) | |
virtual | ~AbstractBuffer () |
char * | data () |
char & | operator[] (int idx) |
int | offset () |
virtual ABError | checkout_write (int *write_offset, int write_size, uint64_t retries=(uint64_t)-1) |
virtual ABError | checkout_read (int read_offset, int read_size) |
virtual ABError | checkin_write (int write_offset) |
virtual ABError | checkin_read (int read_offset) |
virtual void | initialize () |
virtual void | full () |
virtual void | flush () |
virtual void | flush_complete () |
virtual void | destroy () |
virtual void | clear () |
bool | switch_state (VolatileState &old_state, VolatileState &new_state) |
Data Fields | |
volatile VolatileState | vs |
char * | buffer |
char * | unaligned_buffer |
int | size |
int | alignment |
VolatileState | vs_history [AB_STATE_FLUSH_COMPLETE+1] |
Definition at line 41 of file AbstractBuffer.h.
AB_STATE_UNUSED | |
AB_STATE_INITIALIZING | |
AB_STATE_READ_WRITE | |
AB_STATE_READ_ONLY | |
AB_STATE_FLUSH | |
AB_STATE_FLUSH_COMPLETE |
Definition at line 44 of file AbstractBuffer.h.
AbstractBuffer::AbstractBuffer | ( | int | xsize, | |
int | xalignment | |||
) | [inline] |
Definition at line 84 of file AbstractBuffer.h.
References clear().
virtual AbstractBuffer::~AbstractBuffer | ( | ) | [inline, virtual] |
Definition at line 89 of file AbstractBuffer.h.
References clear().
ABError AbstractBuffer::checkin_read | ( | int | read_offset | ) | [virtual] |
Definition at line 157 of file AbstractBuffer.cc.
References AB_STATE_FLUSH_COMPLETE, AB_STATE_UNUSED, destroy(), ink_assert, AbstractBuffer::VolatileState::offset, AbstractBuffer::VolatileState::reader_count, AbstractBuffer::VolatileState::s, AbstractBuffer::VolatileState::state, switch_state(), and vs.
Referenced by AbstractBufferReader::~AbstractBufferReader().
ABError AbstractBuffer::checkin_write | ( | int | write_offset | ) | [virtual] |
Definition at line 118 of file AbstractBuffer.cc.
References AB_STATE_READ_ONLY, AB_STATE_READ_WRITE, flush(), ink_assert, AbstractBuffer::VolatileState::offset, AbstractBuffer::VolatileState::s, AbstractBuffer::VolatileState::state, switch_state(), vs, vs_history, and AbstractBuffer::VolatileState::writer_count.
Referenced by AbstractBufferWriter::~AbstractBufferWriter().
ABError AbstractBuffer::checkout_read | ( | int | read_offset, | |
int | read_size | |||
) | [virtual] |
Definition at line 89 of file AbstractBuffer.cc.
References AB_STATE_FLUSH, AB_STATE_READ_ONLY, AB_STATE_READ_WRITE, AbstractBuffer::VolatileState::offset, AbstractBuffer::VolatileState::reader_count, AbstractBuffer::VolatileState::s, AbstractBuffer::VolatileState::state, switch_state(), and vs.
ABError AbstractBuffer::checkout_write | ( | int * | write_offset, | |
int | write_size, | |||
uint64_t | retries = (uint64_t) - 1 | |||
) | [virtual] |
Definition at line 35 of file AbstractBuffer.cc.
References AB_STATE_READ_WRITE, AB_STATE_UNUSED, alignment, full(), initialize(), INK_ALIGN, ink_assert, AbstractBuffer::VolatileState::offset, AbstractBuffer::VolatileState::s, size, AbstractBuffer::VolatileState::state, switch_state(), vs, vs_history, and AbstractBuffer::VolatileState::writer_count.
void AbstractBuffer::clear | ( | void | ) | [virtual] |
Definition at line 289 of file AbstractBuffer.cc.
References buffer, AbstractBuffer::VolatileState::offset, AbstractBuffer::VolatileState::reader_count, AbstractBuffer::VolatileState::s, AbstractBuffer::VolatileState::state, unaligned_buffer, vs, vs_history, and AbstractBuffer::VolatileState::writer_count.
Referenced by AbstractBuffer(), and ~AbstractBuffer().
char* AbstractBuffer::data | ( | ) | [inline] |
Definition at line 93 of file AbstractBuffer.h.
References buffer.
void AbstractBuffer::destroy | ( | ) | [virtual] |
Definition at line 273 of file AbstractBuffer.cc.
References AB_STATE_FLUSH_COMPLETE, ink_assert, AbstractBuffer::VolatileState::offset, AbstractBuffer::VolatileState::reader_count, AbstractBuffer::VolatileState::s, AbstractBuffer::VolatileState::state, vs, vs_history, and AbstractBuffer::VolatileState::writer_count.
Referenced by checkin_read(), and flush_complete().
void AbstractBuffer::flush | ( | ) | [virtual] |
Definition at line 231 of file AbstractBuffer.cc.
References AB_STATE_FLUSH, ink_assert, AbstractBuffer::VolatileState::s, AbstractBuffer::VolatileState::state, vs, and AbstractBuffer::VolatileState::writer_count.
Referenced by checkin_write(), and full().
void AbstractBuffer::flush_complete | ( | ) | [virtual] |
Definition at line 241 of file AbstractBuffer.cc.
References AB_STATE_FLUSH, destroy(), ink_assert, AbstractBuffer::VolatileState::reader_count, AbstractBuffer::VolatileState::s, AbstractBuffer::VolatileState::state, switch_state(), vs, vs_history, and AbstractBuffer::VolatileState::writer_count.
void AbstractBuffer::full | ( | ) | [virtual] |
Definition at line 207 of file AbstractBuffer.cc.
References AB_STATE_READ_ONLY, flush(), AbstractBuffer::VolatileState::s, AbstractBuffer::VolatileState::state, switch_state(), vs, vs_history, and AbstractBuffer::VolatileState::writer_count.
Referenced by checkout_write().
void AbstractBuffer::initialize | ( | ) | [virtual] |
Definition at line 186 of file AbstractBuffer.cc.
References AB_STATE_INITIALIZING, align_pointer_forward(), buffer, ink_assert, AbstractBuffer::VolatileState::offset, AbstractBuffer::VolatileState::reader_count, AbstractBuffer::VolatileState::s, size, AbstractBuffer::VolatileState::state, unaligned_buffer, vs, vs_history, and AbstractBuffer::VolatileState::writer_count.
Referenced by checkout_write().
int AbstractBuffer::offset | ( | ) | [inline] |
Definition at line 103 of file AbstractBuffer.h.
References AbstractBuffer::VolatileState::offset, AbstractBuffer::VolatileState::s, and vs.
char& AbstractBuffer::operator[] | ( | int | idx | ) | [inline] |
Definition at line 97 of file AbstractBuffer.h.
References buffer, ink_assert, and size.
bool AbstractBuffer::switch_state | ( | VolatileState & | old_state, | |
VolatileState & | new_state | |||
) | [inline] |
Definition at line 175 of file AbstractBuffer.h.
References AbstractBuffer::VolatileState::ival, and vs.
Referenced by checkin_read(), checkin_write(), checkout_read(), checkout_write(), flush_complete(), and full().
Definition at line 127 of file AbstractBuffer.h.
Referenced by checkout_write().
char* AbstractBuffer::buffer |
Definition at line 124 of file AbstractBuffer.h.
Referenced by clear(), data(), initialize(), and operator[]().
Definition at line 126 of file AbstractBuffer.h.
Referenced by checkout_write(), initialize(), and operator[]().
Definition at line 125 of file AbstractBuffer.h.
Referenced by clear(), and initialize().
volatile VolatileState AbstractBuffer::vs |
Definition at line 123 of file AbstractBuffer.h.
Referenced by checkin_read(), checkin_write(), checkout_read(), checkout_write(), clear(), destroy(), flush(), flush_complete(), full(), initialize(), offset(), and switch_state().
VolatileState AbstractBuffer::vs_history[AB_STATE_FLUSH_COMPLETE+1] |
Definition at line 130 of file AbstractBuffer.h.
Referenced by checkin_write(), checkout_write(), clear(), destroy(), flush_complete(), full(), and initialize().