2 #include "ypc/common/limits.h"
3 #include "ypc/core/blockfile.h"
5 #include "ypc/core/memref.h"
6 #include "ypc/core/ntobject_file.h"
8 #include <condition_variable>
20 256 * ::ypc::utc::max_item_size>;
25 virtual void write_item(
const bytes &data);
27 virtual void reset_read() = 0;
29 virtual bool next_item(
memref &s) = 0;
45 virtual void reset_read();
46 virtual bool next_item(
memref &s);
56 virtual void reset_read();
58 virtual bool next_item(
memref &s);
67 std::unique_ptr<std::thread> m_io_thread;
68 std::queue<memref> m_cached;
71 std::condition_variable m_cond_full;
72 std::condition_variable m_cond_empty;
73 uint32_t m_max_queue_size;
74 std::atomic_bool m_to_close;
78 define_nt(sfm_path, std::string);
82 define_nt(sfm_index, uint16_t);
83 define_nt(sfm_num, uint16_t);
84 using sfm_item_t = ::ff::net::ntpackage<1, sfm_path, sfm_index, sfm_hash>;
85 define_nt(sfm_items, std::vector<sfm_item_t>);
87 using sfm_t = ::ff::net::ntpackage<2, sfm_items, sfm_num, sfm_hash>;