Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
rosbag_fancy::BagWriter Class Reference

#include <bag_writer.h>

Public Types

enum  Naming { Naming::Verbatim, Naming::AppendTimestamp }
 

Public Member Functions

std::string bagfileName () const
 
 BagWriter (MessageQueue &queue, const std::string &filename, Naming namingMode, std::uint64_t splitSizeInBytes, std::uint64_t deleteOldAtInBytes)
 
const std::vector< std::uint64_t > & byteCounts () const
 
rosbag::compression::CompressionType compression () const
 
std::uint64_t deleteOldAtInBytes () const
 
std::uint64_t directorySizeInBytes () const
 
std::uint64_t freeSpace () const
 
const std::vector< std::uint64_t > & messageCounts () const
 
bool running () const
 
void setCompression (rosbag::compression::CompressionType type)
 
std::uint64_t sizeInBytes () const
 
std::uint64_t splitSizeInBytes () const
 
void start ()
 
void stop ()
 
 ~BagWriter ()
 

Private Member Functions

void checkFreeSpace ()
 
void cleanupThread ()
 
void run ()
 

Private Attributes

rosbag::Bag m_bag
 
bool m_bagOpen {false}
 
std::vector< std::uint64_t > m_byteCounts
 
std::thread m_cleanup_thread
 
std::condition_variable m_cleanupCondition
 
std::mutex m_cleanupMutex
 
rosbag::compression::CompressionType m_compressionType = rosbag::compression::Uncompressed
 
std::uint64_t m_deleteOldAtInBytes = 0
 
std::atomic< std::uint64_t > m_directorySizeInBytes {0}
 
std::string m_expandedFilename
 
std::string m_filename
 
std::uint64_t m_freeSpace = 0
 
ros::SteadyTimer m_freeSpaceTimer
 
bool m_isReopeningBag {false}
 
std::vector< std::uint64_t > m_messageCounts
 
std::mutex m_mutex
 
Naming m_namingMode
 
MessageQueuem_queue
 
std::atomic< bool > m_running {false}
 
bool m_shouldShutdown {false}
 
std::atomic< std::uint64_t > m_sizeInBytes {0}
 
std::uint64_t m_splitSizeInBytes = 0
 
tf2_ros::Buffer m_tf_buf
 
boost::shared_ptr< std::map< std::string, std::string > > m_tf_header
 
std::thread m_thread
 

Detailed Description

Definition at line 23 of file bag_writer.h.

Member Enumeration Documentation

◆ Naming

Enumerator
Verbatim 
AppendTimestamp 

Definition at line 26 of file bag_writer.h.

Constructor & Destructor Documentation

◆ BagWriter()

rosbag_fancy::BagWriter::BagWriter ( rosbag_fancy::MessageQueue queue,
const std::string &  filename,
Naming  namingMode,
std::uint64_t  splitSizeInBytes,
std::uint64_t  deleteOldAtInBytes 
)
explicit

Definition at line 87 of file bag_writer.cpp.

◆ ~BagWriter()

rosbag_fancy::BagWriter::~BagWriter ( )

Definition at line 117 of file bag_writer.cpp.

Member Function Documentation

◆ bagfileName()

std::string rosbag_fancy::BagWriter::bagfileName ( ) const
inline

Definition at line 58 of file bag_writer.h.

◆ byteCounts()

const std::vector<std::uint64_t>& rosbag_fancy::BagWriter::byteCounts ( ) const
inline

Definition at line 64 of file bag_writer.h.

◆ checkFreeSpace()

void rosbag_fancy::BagWriter::checkFreeSpace ( )
private

Definition at line 268 of file bag_writer.cpp.

◆ cleanupThread()

void rosbag_fancy::BagWriter::cleanupThread ( )
private

Definition at line 278 of file bag_writer.cpp.

◆ compression()

rosbag::compression::CompressionType rosbag_fancy::BagWriter::compression ( ) const
inline

Definition at line 67 of file bag_writer.h.

◆ deleteOldAtInBytes()

std::uint64_t rosbag_fancy::BagWriter::deleteOldAtInBytes ( ) const
inline

Definition at line 52 of file bag_writer.h.

◆ directorySizeInBytes()

std::uint64_t rosbag_fancy::BagWriter::directorySizeInBytes ( ) const
inline

Definition at line 49 of file bag_writer.h.

◆ freeSpace()

std::uint64_t rosbag_fancy::BagWriter::freeSpace ( ) const
inline

Definition at line 55 of file bag_writer.h.

◆ messageCounts()

const std::vector<std::uint64_t>& rosbag_fancy::BagWriter::messageCounts ( ) const
inline

Definition at line 61 of file bag_writer.h.

◆ run()

void rosbag_fancy::BagWriter::run ( )
private

Definition at line 130 of file bag_writer.cpp.

◆ running()

bool rosbag_fancy::BagWriter::running ( ) const
inline

Definition at line 40 of file bag_writer.h.

◆ setCompression()

void rosbag_fancy::BagWriter::setCompression ( rosbag::compression::CompressionType  type)

Definition at line 336 of file bag_writer.cpp.

◆ sizeInBytes()

std::uint64_t rosbag_fancy::BagWriter::sizeInBytes ( ) const
inline

Definition at line 43 of file bag_writer.h.

◆ splitSizeInBytes()

std::uint64_t rosbag_fancy::BagWriter::splitSizeInBytes ( ) const
inline

Definition at line 46 of file bag_writer.h.

◆ start()

void rosbag_fancy::BagWriter::start ( )

Definition at line 175 of file bag_writer.cpp.

◆ stop()

void rosbag_fancy::BagWriter::stop ( )

Definition at line 249 of file bag_writer.cpp.

Member Data Documentation

◆ m_bag

rosbag::Bag rosbag_fancy::BagWriter::m_bag
private

Definition at line 89 of file bag_writer.h.

◆ m_bagOpen

bool rosbag_fancy::BagWriter::m_bagOpen {false}
private

Definition at line 90 of file bag_writer.h.

◆ m_byteCounts

std::vector<std::uint64_t> rosbag_fancy::BagWriter::m_byteCounts
private

Definition at line 112 of file bag_writer.h.

◆ m_cleanup_thread

std::thread rosbag_fancy::BagWriter::m_cleanup_thread
private

Definition at line 93 of file bag_writer.h.

◆ m_cleanupCondition

std::condition_variable rosbag_fancy::BagWriter::m_cleanupCondition
private

Definition at line 106 of file bag_writer.h.

◆ m_cleanupMutex

std::mutex rosbag_fancy::BagWriter::m_cleanupMutex
private

Definition at line 105 of file bag_writer.h.

◆ m_compressionType

rosbag::compression::CompressionType rosbag_fancy::BagWriter::m_compressionType = rosbag::compression::Uncompressed
private

Definition at line 114 of file bag_writer.h.

◆ m_deleteOldAtInBytes

std::uint64_t rosbag_fancy::BagWriter::m_deleteOldAtInBytes = 0
private

Definition at line 86 of file bag_writer.h.

◆ m_directorySizeInBytes

std::atomic<std::uint64_t> rosbag_fancy::BagWriter::m_directorySizeInBytes {0}
private

Definition at line 87 of file bag_writer.h.

◆ m_expandedFilename

std::string rosbag_fancy::BagWriter::m_expandedFilename
private

Definition at line 82 of file bag_writer.h.

◆ m_filename

std::string rosbag_fancy::BagWriter::m_filename
private

Definition at line 79 of file bag_writer.h.

◆ m_freeSpace

std::uint64_t rosbag_fancy::BagWriter::m_freeSpace = 0
private

Definition at line 98 of file bag_writer.h.

◆ m_freeSpaceTimer

ros::SteadyTimer rosbag_fancy::BagWriter::m_freeSpaceTimer
private

Definition at line 100 of file bag_writer.h.

◆ m_isReopeningBag

bool rosbag_fancy::BagWriter::m_isReopeningBag {false}
private

Definition at line 84 of file bag_writer.h.

◆ m_messageCounts

std::vector<std::uint64_t> rosbag_fancy::BagWriter::m_messageCounts
private

Definition at line 111 of file bag_writer.h.

◆ m_mutex

std::mutex rosbag_fancy::BagWriter::m_mutex
private

Definition at line 103 of file bag_writer.h.

◆ m_namingMode

Naming rosbag_fancy::BagWriter::m_namingMode
private

Definition at line 80 of file bag_writer.h.

◆ m_queue

MessageQueue& rosbag_fancy::BagWriter::m_queue
private

Definition at line 77 of file bag_writer.h.

◆ m_running

std::atomic<bool> rosbag_fancy::BagWriter::m_running {false}
private

Definition at line 102 of file bag_writer.h.

◆ m_shouldShutdown

bool rosbag_fancy::BagWriter::m_shouldShutdown {false}
private

Definition at line 95 of file bag_writer.h.

◆ m_sizeInBytes

std::atomic<std::uint64_t> rosbag_fancy::BagWriter::m_sizeInBytes {0}
private

Definition at line 97 of file bag_writer.h.

◆ m_splitSizeInBytes

std::uint64_t rosbag_fancy::BagWriter::m_splitSizeInBytes = 0
private

Definition at line 85 of file bag_writer.h.

◆ m_tf_buf

tf2_ros::Buffer rosbag_fancy::BagWriter::m_tf_buf
private

Definition at line 108 of file bag_writer.h.

◆ m_tf_header

boost::shared_ptr<std::map<std::string, std::string> > rosbag_fancy::BagWriter::m_tf_header
private

Definition at line 109 of file bag_writer.h.

◆ m_thread

std::thread rosbag_fancy::BagWriter::m_thread
private

Definition at line 92 of file bag_writer.h.


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


rosbag_fancy
Author(s):
autogenerated on Tue Feb 20 2024 03:20:59