summaryrefslogtreecommitdiff
path: root/llama.cpp/src/llama-io.h
diff options
context:
space:
mode:
Diffstat (limited to 'llama.cpp/src/llama-io.h')
-rw-r--r--llama.cpp/src/llama-io.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/llama.cpp/src/llama-io.h b/llama.cpp/src/llama-io.h
new file mode 100644
index 0000000..ce9216b
--- /dev/null
+++ b/llama.cpp/src/llama-io.h
@@ -0,0 +1,35 @@
+#pragma once
+
+#include <cstddef>
+#include <cstdint>
+#include <string>
+
+struct ggml_tensor;
+
+class llama_io_write_i {
+public:
+ llama_io_write_i() = default;
+ virtual ~llama_io_write_i() = default;
+
+ virtual void write(const void * src, size_t size) = 0;
+ virtual void write_tensor(const ggml_tensor * tensor, size_t offset, size_t size) = 0;
+
+ // bytes written so far
+ virtual size_t n_bytes() = 0;
+
+ void write_string(const std::string & str);
+};
+
+class llama_io_read_i {
+public:
+ llama_io_read_i() = default;
+ virtual ~llama_io_read_i() = default;
+
+ virtual const uint8_t * read(size_t size) = 0;
+ virtual void read_to(void * dst, size_t size) = 0;
+
+ // bytes read so far
+ virtual size_t n_bytes() = 0;
+
+ void read_string(std::string & str);
+};