5 #ifndef CNOID_BASE_ARCHIVE_H 6 #define CNOID_BASE_ARCHIVE_H 8 #include <cnoid/ValueTree> 9 #include <boost/function.hpp> 10 #include <boost/filesystem.hpp> 19 class ArchiveSharedData;
28 void initSharedInfo(
bool useHomeRelativeDirectories =
false);
29 void initSharedInfo(
const std::string& projectFile,
bool useHomeRelativeDirectories =
false);
30 void inheritSharedInfoFrom(
Archive& archive);
32 void addPostProcess(
const boost::function<
void()>& func,
int priority = 0)
const;
34 Archive* findSubArchive(
const std::string& name);
35 const Archive* findSubArchive(
const std::string& name)
const;
36 bool forSubArchive(
const std::string& name, boost::function<
bool(
const Archive& archive)> func)
const;
37 Archive* openSubArchive(
const std::string& name);
42 int getViewId(
View* view)
const;
43 View* findView(
int id)
const;
48 return dynamic_cast<ItemType*
>(findItem(
id));
51 void writeItemId(
const std::string& key,
Item* item);
53 template<
class ItemType>
inline ItemType*
findItem(
const std::string& key)
const {
55 return id->isValid() ? findItem<ItemType>(id) : 0;
58 std::string expandPathVariables(
const std::string& path)
const;
64 std::string resolveRelocatablePath(
const std::string& relocatable)
const;
66 bool readRelocatablePath(
const std::string& key, std::string& out_value)
const;
68 std::string getRelocatablePath(
const std::string& path)
const;
69 void writeRelocatablePath(
const std::string& key,
const std::string& path);
71 Item* currentParentItem()
const;
73 boost::filesystem::path
getProjectDir()
const {
return projectDirPath; }
79 Item* findItem(
int id)
const;
80 void setCurrentParentItem(
Item* parentItem);
81 static Archive* invalidArchive();
82 void registerItemId(
Item* item,
int id);
83 void registerViewId(
View* view,
int id);
86 void callPostProcesses();
88 friend class ItemTreeArchiverImpl;
90 friend class ProjectManagerImpl;
92 boost::filesystem::path projectDirPath;
Definition: ValueTree.h:224
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
ItemType * findItem(const std::string &key) const
Definition: Archive.h:53
Definition: ValueTree.h:34
Definition: ViewManager.h:20
ref_ptr< Archive > ArchivePtr
Definition: Archive.h:95
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
ItemType * findItem(ValueNodePtr id) const
Definition: Archive.h:47
boost::filesystem::path getProjectDir() const
Definition: Archive.h:73