diff options
Diffstat (limited to 'src/blob.h')
-rw-r--r-- | src/blob.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/blob.h b/src/blob.h new file mode 100644 index 0000000..0a2a77d --- /dev/null +++ b/src/blob.h @@ -0,0 +1,27 @@ +#ifndef GITFS_BLOB_H +#define GITFS_BLOB_H + +#include <file.h> +#include "git.h" + +namespace GitFS { + using namespace NetFS; + class Blob : public File { + public: + Blob(const GitFS::Git::RepositoryPtr & r, const Git::TreeEntryPtr &); + + void close(const ::Ice::Current& current) override; + Attr fgetattr(ReqEnv env, const ::Ice::Current& current) override; + Buffer read(long long int offset, long long int size, const ::Ice::Current& current) override; + void ftruncate(ReqEnv env, long long int size, const ::Ice::Current& current) override; + void write(long long int offset, long long int size, Buffer data, const ::Ice::Current& current) override; + + private: + Git::BlobPtr blob; + const decltype(git_blob_rawsize({})) blobSize; + const char * const blobContent; + }; +} + +#endif + |