#include <LogBuffer.h>
Public Types | |
enum | LB_ResultCode { LB_OK = 0, LB_FULL_NO_WRITERS, LB_FULL_ACTIVE_WRITERS, LB_RETRY, LB_ALL_WRITERS_DONE, LB_BUSY, LB_BUFFER_TOO_SMALL } |
Public Member Functions | |
SLINK (LogBuffer, write_link) | |
LogBuffer (LogObject *owner, size_t size, size_t buf_align=LB_DEFAULT_ALIGN, size_t write_align=INK_MIN_ALIGN) | |
LogBuffer (LogObject *owner, LogBufferHeader *header) | |
~LogBuffer () | |
char & | operator[] (int idx) |
int | switch_state (LB_State &old_state, LB_State &new_state) |
LB_ResultCode | checkout_write (size_t *write_offset, size_t write_size) |
LB_ResultCode | checkin_write (size_t write_offset) |
void | force_full () |
LogBufferHeader * | header () |
long | expiration_time () |
void | update_header_data () |
uint32_t | get_id () |
LogObject * | get_owner () const |
LINK (LogBuffer, link) | |
Static Public Member Functions | |
static size_t | max_entry_bytes () |
static int | to_ascii (LogEntryHeader *entry, LogFormatType type, char *buf, int max_len, const char *symbol_str, char *printf_str, unsigned buffer_version, const char *alt_format=NULL) |
static int | resolve_custom_entry (LogFieldList *fieldlist, char *printf_str, char *read_from, char *write_to, int write_to_len, long timestamp, long timestamp_us, unsigned buffer_version, LogFieldList *alt_fieldlist=NULL, char *alt_printf_str=NULL) |
static void | destroy (LogBuffer *lb) |
Data Fields | |
volatile LB_State | m_state |
volatile int | m_references |
Static Public Attributes | |
static vint32 | M_ID = 0 |
Friends | |
class | LogBufferIterator |
Definition at line 131 of file LogBuffer.h.
LB_OK | |
LB_FULL_NO_WRITERS | |
LB_FULL_ACTIVE_WRITERS | |
LB_RETRY | |
LB_ALL_WRITERS_DONE | |
LB_BUSY | |
LB_BUFFER_TOO_SMALL |
Definition at line 135 of file LogBuffer.h.
LogBuffer::LogBuffer | ( | LogObject * | owner, | |
size_t | size, | |||
size_t | buf_align = LB_DEFAULT_ALIGN , |
|||
size_t | write_align = INK_MIN_ALIGN | |||
) |
Definition at line 127 of file LogBuffer.cc.
References align_pointer_forward(), Log::config, Debug, LogObject::get_base_filename(), LogBuffer(), M_ID, m_state, LogConfig::max_secs_per_buffer, LB_State::offset, LB_State::s, this_ethread(), and LogUtils::timestamp().
Referenced by LogBuffer().
LogBuffer::LogBuffer | ( | LogObject * | owner, | |
LogBufferHeader * | header | |||
) |
Definition at line 155 of file LogBuffer.cc.
References Debug, LogObject::get_base_filename(), LogBuffer(), M_ID, and this_ethread().
LogBuffer::~LogBuffer | ( | ) |
Definition at line 176 of file LogBuffer.cc.
References Debug, and this_ethread().
LogBuffer::LB_ResultCode LogBuffer::checkin_write | ( | size_t | write_offset | ) |
Definition at line 300 of file LogBuffer.cc.
References LB_State::full, ink_assert, LB_ALL_WRITERS_DONE, m_state, LB_State::num_writers, LB_State::offset, LB_State::s, and switch_state().
Referenced by LogObject::log().
LogBuffer::LB_ResultCode LogBuffer::checkout_write | ( | size_t * | write_offset, | |
size_t | write_size | |||
) |
Definition at line 195 of file LogBuffer.cc.
References LogEntryHeader::entry_len, LB_State::full, INK_ALIGN, ink_assert, ink_gethrtimeofday(), LB_FULL_ACTIVE_WRITERS, LB_OK, m_state, LB_State::num_entries, LB_State::num_writers, LB_State::offset, LB_State::s, switch_state(), LogEntryHeader::timestamp, and LogEntryHeader::timestamp_usec.
static void LogBuffer::destroy | ( | LogBuffer * | lb | ) | [inline, static] |
Definition at line 192 of file LogBuffer.h.
References ink_release_assert, and m_references.
Referenced by LogHost::orphan_write_and_try_delete(), LogHostList::preproc_and_try_delete(), LogHost::preproc_and_try_delete(), LogFile::preproc_and_try_delete(), and LogFlushData::~LogFlushData().
long LogBuffer::expiration_time | ( | ) | [inline] |
Definition at line 168 of file LogBuffer.h.
Referenced by LogObject::check_buffer_expiration().
void LogBuffer::force_full | ( | ) |
uint32_t LogBuffer::get_id | ( | ) | [inline] |
Definition at line 173 of file LogBuffer.h.
LogObject* LogBuffer::get_owner | ( | ) | const [inline] |
Definition at line 174 of file LogBuffer.h.
LogBufferHeader* LogBuffer::header | ( | ) | [inline] |
Definition at line 167 of file LogBuffer.h.
Referenced by Log::flush_thread_main(), LogHost::orphan_write_and_try_delete(), LogHost::preproc_and_try_delete(), LogFile::preproc_and_try_delete(), and LogCollationClientSM::send().
LogBuffer::LINK | ( | LogBuffer | , | |
link | ||||
) |
size_t LogBuffer::max_entry_bytes | ( | ) | [static] |
Definition at line 436 of file LogBuffer.cc.
References Log::config.
char& LogBuffer::operator[] | ( | int | idx | ) | [inline] |
Definition at line 150 of file LogBuffer.h.
References ink_assert.
int LogBuffer::resolve_custom_entry | ( | LogFieldList * | fieldlist, | |
char * | printf_str, | |||
char * | read_from, | |||
char * | write_to, | |||
int | write_to_len, | |||
long | timestamp, | |||
long | timestamp_us, | |||
unsigned | buffer_version, | |||
LogFieldList * | alt_fieldlist = NULL , |
|||
char * | alt_printf_str = NULL | |||
) | [static] |
Definition at line 445 of file LogBuffer.cc.
References LogField::aggregate(), ats_free(), ats_malloc(), LogFieldList::count(), LogFieldList::first(), LOG_FIELD_MARKER, memcpy, LogFieldList::next(), Note, squid_timestamp_to_buf(), LogField::symbol(), LogUtils::timestamp_to_date_str(), LogUtils::timestamp_to_netscape_str(), LogUtils::timestamp_to_time_str(), to, LogField::unmarshal(), LogAccess::unmarshal_int_to_str(), and LogAccess::unmarshal_int_to_str_hex().
Referenced by resolve_logfield_string(), and to_ascii().
LogBuffer::SLINK | ( | LogBuffer | , | |
write_link | ||||
) |
Definition at line 157 of file LogBuffer.h.
References LB_State::ival, and m_state.
Referenced by checkin_write(), and checkout_write().
int LogBuffer::to_ascii | ( | LogEntryHeader * | entry, | |
LogFormatType | type, | |||
char * | buf, | |||
int | max_len, | |||
const char * | symbol_str, | |||
char * | printf_str, | |||
unsigned | buffer_version, | |||
const char * | alt_format = NULL | |||
) | [static] |
Definition at line 628 of file LogBuffer.cc.
References ats_free(), ats_strdup, Debug, FieldListCacheElement::fieldlist, fieldlist_cache_entries, FIELDLIST_CACHE_SIZE, ink_assert, ink_strlcpy(), LOG_FORMAT_CUSTOM, LOG_FORMAT_TEXT, Note, LogFormat::parse_format_string(), LogFormat::parse_symbol_string(), resolve_custom_entry(), FieldListCacheElement::symbol_str, LogEntryHeader::timestamp, and LogEntryHeader::timestamp_usec.
Referenced by LogFile::write_ascii_logbuffer(), and LogFile::write_ascii_logbuffer3().
void LogBuffer::update_header_data | ( | ) |
Definition at line 417 of file LogBuffer.cc.
References LogBufferHeader::byte_count, LogBufferHeader::entry_count, LogBufferHeader::high_timestamp, m_state, LB_State::num_entries, LB_State::offset, LB_State::s, and LogUtils::timestamp().
friend class LogBufferIterator [friend] |
Definition at line 231 of file LogBuffer.h.
vint32 LogBuffer::M_ID = 0 [static] |
Definition at line 176 of file LogBuffer.h.
Referenced by LogBuffer().
volatile int LogBuffer::m_references |
Definition at line 219 of file LogBuffer.h.
Referenced by destroy(), LogHostList::preproc_and_try_delete(), and LogFile::preproc_and_try_delete().
volatile LB_State LogBuffer::m_state |
Definition at line 218 of file LogBuffer.h.
Referenced by checkin_write(), checkout_write(), LogBuffer(), switch_state(), and update_header_data().