summaryrefslogtreecommitdiff
path: root/src/blob.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/blob.h')
-rw-r--r--src/blob.h21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/blob.h b/src/blob.h
index 0b2f6e7..3443e5d 100644
--- a/src/blob.h
+++ b/src/blob.h
@@ -4,8 +4,10 @@
#include "git.h"
#include <file.h>
#include <git2.h>
+#include <span>
#include <string>
#include <types.h>
+
namespace Ice {
struct Current;
}
@@ -13,27 +15,26 @@ namespace Ice {
namespace GitFS {
using namespace NetFS;
class Repo;
+
class Blob : public File {
public:
- Blob(const Repo * const r, std::string &&);
+ Blob(const Repo * repo, const std::string &);
- void close(const ::Ice::Current & current) override;
- Attr fgetattr(const ::Ice::Current & current) override;
- Buffer read(long long int offset, long long int size, const ::Ice::Current & current) override;
- void ftruncate(long long int size, const ::Ice::Current & current) override;
+ void close(const ::Ice::Current & ice) override;
+ Attr fgetattr(const ::Ice::Current & ice) override;
+ Buffer read(long long int offset, long long int size, const ::Ice::Current & ice) override;
+ void ftruncate(long long int size, const ::Ice::Current & ice) override;
void write(long long int offset, long long int size, std::pair<const Ice::Byte *, const Ice::Byte *> data,
- const ::Ice::Current & current) override;
+ const ::Ice::Current & ice) override;
long long int copyrange(
FilePrxPtr, long long int, long long int, long long int, int, const Ice::Current &) override;
private:
- Git::BlobPtr getBlob() const;
+ [[nodiscard]] Git::BlobPtr getBlob() const;
const Repo * const repo;
Git::TreeEntryPtr entry;
Git::BlobPtr blob;
- using BlobSize = decltype(git_blob_rawsize({}));
- const BlobSize blobSize;
- const char * const blobContent;
+ std::span<const ::Ice::Byte> blobContent;
};
}