#ifndef GITFS_DIRECTORY_H #define GITFS_DIRECTORY_H #include #include "git.h" namespace GitFS { using namespace NetFS; class Repo; class Directory : public DirectoryV2 { 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