mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-06-27 12:05:03 +00:00
36 lines
788 B
C
36 lines
788 B
C
![]() |
#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);
|
||
|
};
|