Public Member Functions | Private Member Functions | Private Attributes | Friends
rosbag::ChunkedFile Class Reference

ChunkedFile reads and writes files which contain interleaved chunks of compressed and uncompressed data. More...

#include <chunked_file.h>

List of all members.

Public Member Functions

 ChunkedFile ()
void close ()
 close the file
void decompress (CompressionType compression, uint8_t *dest, unsigned int dest_len, uint8_t *source, unsigned int source_len)
uint32_t getCompressedBytesIn () const
 return the number of bytes written to current compressed stream
std::string getFileName () const
 return path of currently open file
std::string getline ()
uint64_t getOffset () const
 return current offset from the beginning of the file
bool good () const
 return true if hasn't reached end-of-file and no error
bool isOpen () const
 return true if file is open for reading or writing
void openRead (std::string const &filename)
 open file for reading
void openReadWrite (std::string const &filename)
 open file for reading & writing
void openWrite (std::string const &filename)
 open file for writing
void read (void *ptr, size_t size)
 read size bytes from the file into ptr
void seek (uint64_t offset, int origin=std::ios_base::beg)
 seek to given offset from origin
void setReadMode (CompressionType type)
void setWriteMode (CompressionType type)
bool truncate (uint64_t length)
void write (std::string const &s)
void write (void *ptr, size_t size)
 write size bytes from ptr to the file
 ~ChunkedFile ()

Private Member Functions

void clearUnused ()
void open (std::string const &filename, std::string const &mode)

Private Attributes

uint64_t compressed_in_
 number of bytes written to current compressed stream
FILE * file_
 file pointer
std::string filename_
 path to file
int nUnused_
 number of bytes of extra data read by compressed stream
uint64_t offset_
 current position in the file
boost::shared_ptr< Streamread_stream_
boost::shared_ptr< StreamFactorystream_factory_
char * unused_
 extra data read by compressed stream
boost::shared_ptr< Streamwrite_stream_

Friends

class Stream

Detailed Description

ChunkedFile reads and writes files which contain interleaved chunks of compressed and uncompressed data.

Definition at line 51 of file chunked_file.h.


Constructor & Destructor Documentation

Definition at line 64 of file chunked_file.cpp.

Definition at line 74 of file chunked_file.cpp.


Member Function Documentation

Definition at line 219 of file chunked_file.cpp.

close the file

Definition at line 133 of file chunked_file.cpp.

void rosbag::ChunkedFile::decompress ( CompressionType  compression,
uint8_t *  dest,
unsigned int  dest_len,
uint8_t *  source,
unsigned int  source_len 
)

Definition at line 215 of file chunked_file.cpp.

return the number of bytes written to current compressed stream

Definition at line 191 of file chunked_file.cpp.

return path of currently open file

Definition at line 131 of file chunked_file.cpp.

Todo:
add error handling

Definition at line 203 of file chunked_file.cpp.

uint64_t rosbag::ChunkedFile::getOffset ( ) const

return current offset from the beginning of the file

Definition at line 190 of file chunked_file.cpp.

bool rosbag::ChunkedFile::good ( ) const

return true if hasn't reached end-of-file and no error

Definition at line 126 of file chunked_file.cpp.

return true if file is open for reading or writing

Definition at line 130 of file chunked_file.cpp.

void rosbag::ChunkedFile::open ( std::string const &  filename,
std::string const &  mode 
) [private]

Definition at line 82 of file chunked_file.cpp.

void rosbag::ChunkedFile::openRead ( std::string const &  filename)

open file for reading

Definition at line 80 of file chunked_file.cpp.

void rosbag::ChunkedFile::openReadWrite ( std::string const &  filename)

open file for reading & writing

Definition at line 78 of file chunked_file.cpp.

void rosbag::ChunkedFile::openWrite ( std::string const &  filename)

open file for writing

Definition at line 79 of file chunked_file.cpp.

void rosbag::ChunkedFile::read ( void *  ptr,
size_t  size 
)

read size bytes from the file into ptr

Definition at line 195 of file chunked_file.cpp.

void rosbag::ChunkedFile::seek ( uint64_t  offset,
int  origin = std::ios_base::beg 
)

seek to given offset from origin

Definition at line 177 of file chunked_file.cpp.

Definition at line 165 of file chunked_file.cpp.

Definition at line 153 of file chunked_file.cpp.

bool rosbag::ChunkedFile::truncate ( uint64_t  length)

Definition at line 197 of file chunked_file.cpp.

void rosbag::ChunkedFile::write ( std::string const &  s)
void rosbag::ChunkedFile::write ( void *  ptr,
size_t  size 
)

write size bytes from ptr to the file

Definition at line 194 of file chunked_file.cpp.


Friends And Related Function Documentation

friend class Stream [friend]

Definition at line 53 of file chunked_file.h.


Member Data Documentation

number of bytes written to current compressed stream

Definition at line 91 of file chunked_file.h.

FILE* rosbag::ChunkedFile::file_ [private]

file pointer

Definition at line 89 of file chunked_file.h.

std::string rosbag::ChunkedFile::filename_ [private]

path to file

Definition at line 88 of file chunked_file.h.

number of bytes of extra data read by compressed stream

Definition at line 93 of file chunked_file.h.

uint64_t rosbag::ChunkedFile::offset_ [private]

current position in the file

Definition at line 90 of file chunked_file.h.

boost::shared_ptr<Stream> rosbag::ChunkedFile::read_stream_ [private]

Definition at line 97 of file chunked_file.h.

Definition at line 95 of file chunked_file.h.

extra data read by compressed stream

Definition at line 92 of file chunked_file.h.

boost::shared_ptr<Stream> rosbag::ChunkedFile::write_stream_ [private]

Definition at line 98 of file chunked_file.h.


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


rosbag_storage
Author(s):
autogenerated on Tue Mar 7 2017 03:44:35