llama-io.h 788 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <cstddef>
  3. #include <cstdint>
  4. #include <string>
  5. struct ggml_tensor;
  6. class llama_io_write_i {
  7. public:
  8. llama_io_write_i() = default;
  9. virtual ~llama_io_write_i() = default;
  10. virtual void write(const void * src, size_t size) = 0;
  11. virtual void write_tensor(const ggml_tensor * tensor, size_t offset, size_t size) = 0;
  12. // bytes written so far
  13. virtual size_t n_bytes() = 0;
  14. void write_string(const std::string & str);
  15. };
  16. class llama_io_read_i {
  17. public:
  18. llama_io_read_i() = default;
  19. virtual ~llama_io_read_i() = default;
  20. virtual const uint8_t * read(size_t size) = 0;
  21. virtual void read_to(void * dst, size_t size) = 0;
  22. // bytes read so far
  23. virtual size_t n_bytes() = 0;
  24. void read_string(std::string & str);
  25. };