MCPcopy Create free account
hub / github.com/apache/trafficserver / _add_buffer_header

Method _add_buffer_header

src/proxy/logging/LogBuffer.cc:386–453  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

384}
385
386size_t
387LogBuffer::_add_buffer_header(const LogConfig *cfg)
388{
389 size_t header_len;
390
391 //
392 // initialize the header
393 //
394 LogFormat *fmt = m_owner->m_format;
395 m_header = reinterpret_cast<LogBufferHeader *>(m_buffer);
396 m_header->cookie = LOG_SEGMENT_COOKIE;
397 m_header->version = LOG_SEGMENT_VERSION;
398 m_header->format_type = fmt->type();
399 m_header->entry_count = 0;
400 m_header->low_timestamp = LogUtils::timestamp();
401 m_header->high_timestamp = 0;
402 m_header->log_object_signature = m_owner->get_signature();
403 m_header->log_object_flags = m_owner->get_flags();
404#if defined(LOG_BUFFER_TRACKING)
405 m_header->id = lrand48();
406#endif // defined(LOG_BUFFER_TRACKING)
407
408 //
409 // The remaining header fields actually point into the data section of
410 // the buffer. Write the data into the buffer and update the total
411 // size of the buffer header.
412 //
413
414 header_len = sizeof(LogBufferHeader); // at least ...
415
416 m_header->fmt_name_offset = 0;
417 m_header->fmt_fieldlist_offset = 0;
418 m_header->fmt_printf_offset = 0;
419 m_header->src_hostname_offset = 0;
420 m_header->log_filename_offset = 0;
421
422 if (fmt->name()) {
423 m_header->fmt_name_offset = header_len;
424 header_len += add_header_str(fmt->name(), &m_buffer[header_len], m_size - header_len);
425 }
426 if (fmt->fieldlist()) {
427 m_header->fmt_fieldlist_offset = header_len;
428 header_len += add_header_str(fmt->fieldlist(), &m_buffer[header_len], m_size - header_len);
429 }
430 if (fmt->printf_str()) {
431 m_header->fmt_printf_offset = header_len;
432 header_len += add_header_str(fmt->printf_str(), &m_buffer[header_len], m_size - header_len);
433 }
434 if (cfg->hostname) {
435 m_header->src_hostname_offset = header_len;
436 header_len += add_header_str(cfg->hostname, &m_buffer[header_len], m_size - header_len);
437 }
438 if (m_owner->get_base_filename()) {
439 m_header->log_filename_offset = header_len;
440 header_len += add_header_str(m_owner->get_base_filename(), &m_buffer[header_len], m_size - header_len);
441 }
442 // update the rest of the header fields; make sure the header_len is
443 // correctly aligned, so that the first record will start on a legal

Callers

nothing calls this directly

Calls 8

get_signatureMethod · 0.80
fieldlistMethod · 0.80
printf_strMethod · 0.80
get_base_filenameMethod · 0.80
timestampFunction · 0.50
typeMethod · 0.45
get_flagsMethod · 0.45
nameMethod · 0.45

Tested by

no test coverage detected