libmwawOLE::OStorage Class Reference

List of all members.

Public Member Functions

 OStorage (unsigned long minSize=0)
 constructor
 ~OStorage ()
 destructor
shared_ptr< WPXInputStream > getStream ()
 try to return a stream containing the ole file
std::vector< std::string > getSubStreamList (unsigned ind=0, bool all=false)
 function to retrieve the list of actual direntry
void setRevision (unsigned rev)
 set the OLE revision
void setRootType (bool pc)
 set the root to a mac/pc root */
bool addStream (std::string const &name, unsigned char const *buffer, unsigned long len)
 add a new stream knowing its data
bool addDirectory (std::string const &dir)
 add a new directory (usefull to create empty leaf dir )
void setInformation (std::string const &name, DirInfo const &info)
 set a node information

Protected Member Functions

unsigned insertData (unsigned char const *buffer, unsigned long len, bool useBigBlock, unsigned end=Eof)
 add stream data in a file, returns the first index
bool useBigBlockFor (unsigned long size) const
 return true if we need to use big block
size_t getDataAddress (unsigned block, bool isBig) const
 returns the address of a big/small block
unsigned newBBlock ()
 create a new big block, resize m_data; ... and return is identifier
unsigned newSBlock ()
 create a new small block, ... and returns is identifier
DirEntrycreateEntry (std::string const &name)
 return a new dir entry, if it does not exists
bool updateToSave ()
 finish to update the file ( note: it is better to call this function only one time )

Static Protected Member Functions

static unsigned long getMaximumSize (bool isBig)
 returns the maximum size of a big/small block

Protected Attributes

Header m_header
DirTree m_dirtree
AllocTable m_bbat
unsigned m_num_bbat
AllocTable m_sbat
unsigned m_num_sbat
std::vector< unsigned long > m_sb_blocks
std::vector< unsigned char > m_data

Private Member Functions

 OStorage (const OStorage &)
OStorageoperator= (const OStorage &)

Constructor & Destructor Documentation

libmwawOLE::OStorage::OStorage ( unsigned long  minSize = 0) [inline]

constructor

destructor

libmwawOLE::OStorage::OStorage ( const OStorage ) [private]

Member Function Documentation

bool libmwawOLE::OStorage::addDirectory ( std::string const &  dir)

add a new directory (usefull to create empty leaf dir )

Referenced by libmwawOLE::Storage::getSubStreamForDirectory().

bool libmwawOLE::OStorage::addStream ( std::string const &  name,
unsigned char const *  buffer,
unsigned long  len 
)

add a new stream knowing its data

Referenced by libmwawOLE::Storage::getSubStreamForDirectory().

DirEntry* libmwawOLE::OStorage::createEntry ( std::string const &  name) [inline, protected]

return a new dir entry, if it does not exists

Referenced by addDirectory(), and addStream().

size_t libmwawOLE::OStorage::getDataAddress ( unsigned  block,
bool  isBig 
) const [inline, protected]

returns the address of a big/small block

Referenced by insertData().

static unsigned long libmwawOLE::OStorage::getMaximumSize ( bool  isBig) [inline, static, protected]

returns the maximum size of a big/small block

Referenced by insertData().

shared_ptr<WPXInputStream> libmwawOLE::OStorage::getStream ( ) [inline]

try to return a stream containing the ole file

Referenced by libmwawOLE::Storage::getSubStreamForDirectory().

std::vector<std::string> libmwawOLE::OStorage::getSubStreamList ( unsigned  ind = 0,
bool  all = false 
) [inline]

function to retrieve the list of actual direntry

Referenced by libmwawOLE::Storage::getSubStreamForDirectory().

unsigned libmwawOLE::OStorage::insertData ( unsigned char const *  buffer,
unsigned long  len,
bool  useBigBlock,
unsigned  end = Eof 
) [protected]

add stream data in a file, returns the first index

Referenced by addStream(), and updateToSave().

unsigned libmwawOLE::OStorage::newBBlock ( ) [inline, protected]

create a new big block, resize m_data; ... and return is identifier

Referenced by insertData(), and newSBlock().

unsigned libmwawOLE::OStorage::newSBlock ( ) [inline, protected]

create a new small block, ... and returns is identifier

Referenced by insertData().

OStorage& libmwawOLE::OStorage::operator= ( const OStorage ) [private]
void libmwawOLE::OStorage::setInformation ( std::string const &  name,
DirInfo const &  info 
) [inline]

set a node information

Referenced by libmwawOLE::Storage::getSubStreamForDirectory().

void libmwawOLE::OStorage::setRevision ( unsigned  rev) [inline]

set the OLE revision

Referenced by libmwawOLE::Storage::getSubStreamForDirectory().

void libmwawOLE::OStorage::setRootType ( bool  pc) [inline]

set the root to a mac/pc root */

Referenced by libmwawOLE::Storage::getSubStreamForDirectory().

bool libmwawOLE::OStorage::updateToSave ( ) [protected]

finish to update the file ( note: it is better to call this function only one time )

Referenced by getStream().

bool libmwawOLE::OStorage::useBigBlockFor ( unsigned long  size) const [inline, protected]

return true if we need to use big block

Referenced by addStream().


Member Data Documentation

std::vector<unsigned char> libmwawOLE::OStorage::m_data [protected]
unsigned libmwawOLE::OStorage::m_num_bbat [protected]

Referenced by newBBlock(), and updateToSave().

unsigned libmwawOLE::OStorage::m_num_sbat [protected]

Referenced by newSBlock(), and updateToSave().

std::vector<unsigned long> libmwawOLE::OStorage::m_sb_blocks [protected]

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