mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2025-04-30 15:59:40 +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);
|
|
};
|