#ifndef GITFS_DIRECTORY_H #define GITFS_DIRECTORY_H #include "git.h" #include #include #include #include namespace Ice { struct Current; } namespace GitFS { using namespace NetFS; class Repo; class Directory : public NetFS::Directory { public: Directory(Repo * const r, std::string &&); void close(const ::Ice::Current & current) override; NameList readdir(const ::Ice::Current & current) override; DirectoryContents listdir(const ::Ice::Current & current) override; private: Git::TreePtr getSubtree() const; Repo * const repo; const std::string path; mutable Git::TreePtr subTreeCache; mutable git_oid subTreeCacheRootId; }; } #endif