21 #ifndef FIFE_VFS_ZIP_ZIPNODE_H
22 #define FIFE_VFS_ZIP_ZIPNODE_H
35 #include "util/base/fife_stdint.h"
39 struct ZipContentType {
62 typedef std::vector<ZipNode*> ZipNodeContainer;
70 ZipNode(
const std::string& name, ZipNode* parent=0);
79 std::string getName()
const;
83 std::string getFullName()
const;
88 ZipContentType::Enum getContentType()
const;
93 ZipNode* getParent()
const;
100 std::vector<ZipNode*> getChildren(ZipContentType::Enum contentType=ZipContentType::All)
const;
107 ZipNode* getChild(
const std::string& name,
108 ZipContentType::Enum contentType=ZipContentType::All)
const;
115 ZipNode* addChild(
const std::string& child);
120 void removeChild(ZipNode* child);
125 void removeChild(
const std::string& name);
137 bool isBranch()
const;
143 void setZipEntryData(
const ZipEntryData& entryData);
149 const ZipEntryData& getZipEntryData()
const;
153 ZipContentType::Enum m_contentType;
154 ZipEntryData m_entryData;
157 ZipNodeContainer m_fileChildren;
158 ZipNodeContainer m_directoryChildren;
168 std::ostream&
operator<<(std::ostream& os,
const FIFE::ZipNode& node);
std::ostream & operator<<(std::ostream &os, const Location &l)
credit to phoku for his NodeDisplay example which the visitor code is adapted from ( he coded the qua...