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 (void *ptr, size_t size)
 write size bytes from ptr to the file
void write (std::string const &s)
 ~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_
bool writing_
 true iff file is opened for writing

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

rosbag::ChunkedFile::ChunkedFile (  ) 

Definition at line 50 of file chunked_file.cpp.

rosbag::ChunkedFile::~ChunkedFile (  ) 

Definition at line 60 of file chunked_file.cpp.


Member Function Documentation

void rosbag::ChunkedFile::clearUnused (  )  [private]

Definition at line 186 of file chunked_file.cpp.

void rosbag::ChunkedFile::close (  ) 

close the file

Definition at line 103 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 182 of file chunked_file.cpp.

uint32_t rosbag::ChunkedFile::getCompressedBytesIn (  )  const

return the number of bytes written to current compressed stream

Definition at line 161 of file chunked_file.cpp.

string rosbag::ChunkedFile::getFileName (  )  const

return path of currently open file

Definition at line 101 of file chunked_file.cpp.

string rosbag::ChunkedFile::getline (  ) 
Todo:
add error handling

Definition at line 173 of file chunked_file.cpp.

uint64_t rosbag::ChunkedFile::getOffset (  )  const

return current offset from the beginning of the file

Definition at line 160 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 96 of file chunked_file.cpp.

bool rosbag::ChunkedFile::isOpen (  )  const

return true if file is open for reading or writing

Definition at line 100 of file chunked_file.cpp.

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

open file for reading

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

open file for reading & writing

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

open file for writing

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

read size bytes from the file into ptr

Definition at line 165 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 147 of file chunked_file.cpp.

void rosbag::ChunkedFile::setReadMode ( CompressionType  type  ) 

Definition at line 135 of file chunked_file.cpp.

void rosbag::ChunkedFile::setWriteMode ( CompressionType  type  ) 

Definition at line 123 of file chunked_file.cpp.

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

Definition at line 167 of file chunked_file.cpp.

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

write size bytes from ptr to the file

Definition at line 164 of file chunked_file.cpp.

void rosbag::ChunkedFile::write ( std::string const &  s  ) 

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 92 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 94 of file chunked_file.h.

uint64_t rosbag::ChunkedFile::offset_ [private]

current position in the file

Definition at line 91 of file chunked_file.h.

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

Definition at line 98 of file chunked_file.h.

Definition at line 96 of file chunked_file.h.

extra data read by compressed stream

Definition at line 93 of file chunked_file.h.

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

Definition at line 99 of file chunked_file.h.

true iff file is opened for writing

Definition at line 90 of file chunked_file.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


rosbag
Author(s): Jeremy Leibs (leibs@willowgarage.com), James Bowman (jamesb@willowgarage.com), Ken Conley (kwc@willowgarage.com), and Tim Field (tfield@willowgarage.com)
autogenerated on Fri Jan 11 10:11:44 2013