PX4 Firmware
PX4 Autopilot Software http://px4.io
px4::logger::LogWriterFile::LogFileBuffer Class Reference
Collaboration diagram for px4::logger::LogWriterFile::LogFileBuffer:

Public Member Functions

 LogFileBuffer (size_t log_buffer_size, perf_counter_t perf_write, perf_counter_t perf_fsync)
 
 ~LogFileBuffer ()
 
bool start_log (const char *filename)
 
void close_file ()
 
size_t get_read_ptr (void **ptr, bool *is_part)
 
void write_no_check (void *ptr, size_t size)
 Write to the buffer but assuming there is enough space. More...
 
size_t available () const
 
int fd () const
 
ssize_t write_to_file (const void *buffer, size_t size, bool call_fsync) const
 
void fsync () const
 
void mark_read (size_t n)
 
size_t total_written () const
 
size_t buffer_size () const
 
size_t count () const
 

Public Attributes

bool _should_run = false
 

Private Attributes

const size_t _buffer_size
 
int _fd = -1
 
uint8_t * _buffer = nullptr
 
size_t _head = 0
 next position to write to More...
 
size_t _count = 0
 number of bytes in _buffer to be written More...
 
size_t _total_written = 0
 
perf_counter_t _perf_write
 
perf_counter_t _perf_fsync
 

Detailed Description

Definition at line 152 of file log_writer_file.h.

Constructor & Destructor Documentation

◆ LogFileBuffer()

px4::logger::LogWriterFile::LogFileBuffer::LogFileBuffer ( size_t  log_buffer_size,
perf_counter_t  perf_write,
perf_counter_t  perf_fsync 
)

Definition at line 388 of file log_writer_file.cpp.

◆ ~LogFileBuffer()

px4::logger::LogWriterFile::LogFileBuffer::~LogFileBuffer ( )

Definition at line 394 of file log_writer_file.cpp.

References _buffer, _fd, _perf_fsync, _perf_write, and perf_free().

Here is the call graph for this function:

Member Function Documentation

◆ available()

size_t px4::logger::LogWriterFile::LogFileBuffer::available ( ) const
inline

Definition at line 170 of file log_writer_file.h.

References _count.

◆ buffer_size()

size_t px4::logger::LogWriterFile::LogFileBuffer::buffer_size ( ) const
inline

Definition at line 181 of file log_writer_file.h.

◆ close_file()

void px4::logger::LogWriterFile::LogFileBuffer::close_file ( )

Definition at line 496 of file log_writer_file.cpp.

References _count, _fd, _head, and _total_written.

Referenced by px4::logger::LogWriterFile::run().

Here is the caller graph for this function:

◆ count()

size_t px4::logger::LogWriterFile::LogFileBuffer::count ( void  ) const
inline

Definition at line 182 of file log_writer_file.h.

References _count.

◆ fd()

int px4::logger::LogWriterFile::LogFileBuffer::fd ( ) const
inline

Definition at line 172 of file log_writer_file.h.

References _fd.

◆ fsync()

void px4::logger::LogWriterFile::LogFileBuffer::fsync ( ) const
inline

Definition at line 476 of file log_writer_file.cpp.

References _fd, _perf_fsync, perf_begin(), and perf_end().

Referenced by px4::logger::LogWriterFile::run(), and write_to_file().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_read_ptr()

size_t px4::logger::LogWriterFile::LogFileBuffer::get_read_ptr ( void **  ptr,
bool *  is_part 
)

Definition at line 428 of file log_writer_file.cpp.

References _buffer, _buffer_size, _count, and _head.

Referenced by px4::logger::LogWriterFile::run().

Here is the caller graph for this function:

◆ mark_read()

void px4::logger::LogWriterFile::LogFileBuffer::mark_read ( size_t  n)
inline

Definition at line 178 of file log_writer_file.h.

References _count.

Referenced by px4::logger::LogWriterFile::run().

Here is the caller graph for this function:

◆ start_log()

bool px4::logger::LogWriterFile::LogFileBuffer::start_log ( const char *  filename)

Definition at line 446 of file log_writer_file.cpp.

References _buffer, _buffer_size, _count, _fd, _head, _should_run, and _total_written.

◆ total_written()

size_t px4::logger::LogWriterFile::LogFileBuffer::total_written ( ) const
inline

Definition at line 180 of file log_writer_file.h.

◆ write_no_check()

void px4::logger::LogWriterFile::LogFileBuffer::write_no_check ( void *  ptr,
size_t  size 
)
inline

Write to the buffer but assuming there is enough space.

Definition at line 406 of file log_writer_file.cpp.

References _buffer, _buffer_size, _count, and _head.

◆ write_to_file()

ssize_t px4::logger::LogWriterFile::LogFileBuffer::write_to_file ( const void *  buffer,
size_t  size,
bool  call_fsync 
) const
inline

Definition at line 483 of file log_writer_file.cpp.

References _fd, _perf_write, fsync(), perf_begin(), perf_end(), and px4::logger::LogWriterFile::write().

Referenced by px4::logger::LogWriterFile::run().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _buffer

uint8_t* px4::logger::LogWriterFile::LogFileBuffer::_buffer = nullptr
private

Definition at line 189 of file log_writer_file.h.

Referenced by get_read_ptr(), start_log(), write_no_check(), and ~LogFileBuffer().

◆ _buffer_size

const size_t px4::logger::LogWriterFile::LogFileBuffer::_buffer_size
private

Definition at line 187 of file log_writer_file.h.

Referenced by get_read_ptr(), start_log(), and write_no_check().

◆ _count

size_t px4::logger::LogWriterFile::LogFileBuffer::_count = 0
private

number of bytes in _buffer to be written

Definition at line 191 of file log_writer_file.h.

Referenced by close_file(), get_read_ptr(), start_log(), and write_no_check().

◆ _fd

int px4::logger::LogWriterFile::LogFileBuffer::_fd = -1
private

Definition at line 188 of file log_writer_file.h.

Referenced by close_file(), fsync(), start_log(), write_to_file(), and ~LogFileBuffer().

◆ _head

size_t px4::logger::LogWriterFile::LogFileBuffer::_head = 0
private

next position to write to

Definition at line 190 of file log_writer_file.h.

Referenced by close_file(), get_read_ptr(), start_log(), and write_no_check().

◆ _perf_fsync

perf_counter_t px4::logger::LogWriterFile::LogFileBuffer::_perf_fsync
private

Definition at line 194 of file log_writer_file.h.

Referenced by fsync(), and ~LogFileBuffer().

◆ _perf_write

perf_counter_t px4::logger::LogWriterFile::LogFileBuffer::_perf_write
private

Definition at line 193 of file log_writer_file.h.

Referenced by write_to_file(), and ~LogFileBuffer().

◆ _should_run

bool px4::logger::LogWriterFile::LogFileBuffer::_should_run = false

◆ _total_written

size_t px4::logger::LogWriterFile::LogFileBuffer::_total_written = 0
private

Definition at line 192 of file log_writer_file.h.

Referenced by close_file(), and start_log().


The documentation for this class was generated from the following files: