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_
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

Definition at line 50 of file chunked_file.cpp.

Definition at line 60 of file chunked_file.cpp.


Member Function Documentation

Definition at line 189 of file chunked_file.cpp.

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 185 of file chunked_file.cpp.

return the number of bytes written to current compressed stream

Definition at line 161 of file chunked_file.cpp.

return path of currently open file

Definition at line 101 of file chunked_file.cpp.

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.

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]

Definition at line 68 of file chunked_file.cpp.

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

open file for reading

Definition at line 66 of file chunked_file.cpp.

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

open file for reading & writing

Definition at line 64 of file chunked_file.cpp.

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

open file for writing

Definition at line 65 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 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.

Definition at line 135 of file chunked_file.cpp.

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 ( std::string const &  s)
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.


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:


rosbag
Author(s): Tim Field (tfield@willowgarage.com), Jeremy Leibs (leibs@willowgarage.com), and James Bowman (jamesb@willowgarage.com)
autogenerated on Sat Dec 28 2013 17:43:05