Classes | |
struct | CompareEntryName |
a comparaison funcion of DirTree used to sort the entry by name More... | |
Public Member Functions | |
DirTree () | |
constructor | |
void | clear () |
clear all entries, leaving only a root entries | |
void | setRootType (bool pc=true) |
set the root to a mac/pc root | |
bool | hasRootTypePc () const |
returns true if it is a pc file | |
unsigned | count () const |
returns the number of entries | |
DirEntry const * | entry (unsigned ind) const |
returns the entry with a given index | |
DirEntry * | entry (unsigned ind) |
returns the entry with a given index | |
DirEntry * | entry (const std::string &name) |
returns the entry with a given name | |
unsigned | index (const std::string &name, bool create=false) |
given a fullname (e.g "/ObjectPool/_1020961869"), find the entry | |
unsigned | find_child (unsigned ind, const std::string &name) const |
tries to find a child of ind with a given name | |
std::vector< std::string > | getSubStreamList (unsigned ind=0, bool retrieveAll=false) |
returns the list of ind substream | |
void | load (unsigned char *buffer, unsigned len) |
tries to read the different entries | |
void | setInRedBlackTreeForm () |
check/update so that the sibling are store with a red black tree | |
unsigned | saveSize () const |
return space required to save a dir entry | |
void | save (unsigned char *buffer) const |
save the list of direntry in buffer | |
Protected Member Functions | |
std::vector< unsigned > | get_siblings (unsigned ind) const |
returns a list of siblings corresponding to a node | |
void | get_siblings (unsigned ind, std::set< unsigned > &seens) const |
constructs the list of siblings ( by filling the seens set ) | |
void | getSubStreamList (unsigned ind, bool all, const std::string &prefix, std::vector< std::string > &res, std::set< unsigned > &seen, bool isRoot=false) const |
returns a substream list | |
void | setInRedBlackTreeForm (unsigned id, std::set< unsigned > &seen) |
check that the subtrees of index is a red black tree, if not rebuild it | |
unsigned | setInRBTForm (std::vector< unsigned > const &childList, unsigned firstInd, unsigned lastInd, unsigned height) |
rebuild all the childs m_left, m_right index as a red black tree, returns the root index. | |
Private Member Functions | |
DirTree (const DirTree &) | |
DirTree & | operator= (const DirTree &) |
Private Attributes | |
std::vector< DirEntry > | m_entries |
|
inline |
constructor
void libwps_OLE::DirTree::clear | ( | ) |
clear all entries, leaving only a root entries
Referenced by DirTree().
|
inline |
returns the number of entries
Referenced by entry(), entry(), get_siblings(), save(), and saveSize().
|
inline |
returns the entry with a given name
returns the entry with a given index
Referenced by libwps_OLE::OStorage::createEntry(), entry(), libwps_OLE::IStorage::entry(), libwps_OLE::IStorage::entry(), find_child(), get_siblings(), libwps_OLE::DirTree::CompareEntryName::operator()(), and libwps_OLE::OStorage::setInformation().
|
inline |
tries to find a child of ind with a given name
|
inlineprotected |
returns a list of siblings corresponding to a node
Referenced by find_child(), get_siblings(), and get_siblings().
|
inlineprotected |
constructs the list of siblings ( by filling the seens set )
|
protected |
returns a substream list
|
inline |
returns the list of ind substream
Referenced by libwps_OLE::OStorage::getSubStreamList(), getSubStreamList(), and libwps_OLE::IStorage::getSubStreamList().
|
inline |
returns true if it is a pc file
Referenced by libwps_OLE::IStorage::hasRootTypePc().
unsigned libwps_OLE::DirTree::index | ( | const std::string & | name, |
bool | create = false ) |
given a fullname (e.g "/ObjectPool/_1020961869"), find the entry
Referenced by libwps_OLE::OStorage::createEntry(), entry(), and libwps_OLE::IStorage::index().
tries to read the different entries
save the list of direntry in buffer
Referenced by save().
|
inline |
return space required to save a dir entry
|
protected |
rebuild all the childs m_left, m_right index as a red black tree, returns the root index.
|
inline |
check/update so that the sibling are store with a red black tree
Referenced by setInRedBlackTreeForm().
|
protected |
check that the subtrees of index is a red black tree, if not rebuild it
set the root to a mac/pc root
Referenced by libwps_OLE::OStorage::setRootType().
|
private |
Referenced by count(), entry(), entry(), hasRootTypePc(), and save().