File interface for data stored in the generated model compression (Sisco) format.
More...
#include <SiscoReader.h>
File interface for data stored in the generated model compression (Sisco) format.
Definition at line 24 of file SiscoReader.h.
◆ SiscoReader() [1/2]
| casacore::sisco::SiscoReader::SiscoReader |
( |
const std::string & | filename | ) |
|
◆ SiscoReader() [2/2]
| casacore::sisco::SiscoReader::SiscoReader |
( |
SiscoReader && | | ) |
|
|
default |
◆ ~SiscoReader()
| casacore::sisco::SiscoReader::~SiscoReader |
( |
| ) |
|
◆ Close()
| void casacore::sisco::SiscoReader::Close |
( |
| ) |
|
|
private |
◆ DecompressChunk()
| void casacore::sisco::SiscoReader::DecompressChunk |
( |
| ) |
|
|
private |
◆ GetNextChunk()
| void casacore::sisco::SiscoReader::GetNextChunk |
( |
Chunk & | chunk | ) |
|
|
private |
◆ GetNextResult()
| void casacore::sisco::SiscoReader::GetNextResult |
( |
std::span< std::complex< float > > | data | ) |
|
◆ GetRequestBufferSize()
| size_t casacore::sisco::SiscoReader::GetRequestBufferSize |
( |
| ) |
const |
|
inline |
◆ Open()
| void casacore::sisco::SiscoReader::Open |
( |
std::span< std::byte > | header_data | ) |
|
◆ operator=()
◆ PredictLevel()
| int casacore::sisco::SiscoReader::PredictLevel |
( |
| ) |
const |
|
inline |
◆ ReadChunk()
| size_t casacore::sisco::SiscoReader::ReadChunk |
( |
std::vector< std::byte > & | buffer | ) |
|
|
private |
Read current chunk and returns the decompressed size.
◆ ReadLoop()
| void casacore::sisco::SiscoReader::ReadLoop |
( |
| ) |
|
|
private |
◆ Request()
| void casacore::sisco::SiscoReader::Request |
( |
size_t | baseline_index, |
|
|
size_t | n_values ) |
This is an interface that allow parallelism over the decompression.
To use it, one thread should issue the requests (as fast as possible), while the main thread should obtain the values using GetNextResult(). The Request() method is blocking when the internal buffer of results is full or when all worker threads are busy.
This method is necessary because the compressed files don't store the nr of values per row or baseline_index.
◆ ResultLoop()
| void casacore::sisco::SiscoReader::ResultLoop |
( |
| ) |
|
|
private |
◆ baseline_data_
| std::map<size_t, BaselineData> casacore::sisco::SiscoReader::baseline_data_ |
|
private |
◆ busy_baselines_
| std::set<size_t> casacore::sisco::SiscoReader::busy_baselines_ |
|
private |
◆ chunk_item_position_
| size_t casacore::sisco::SiscoReader::chunk_item_position_ |
|
private |
◆ chunk_sequence
| size_t casacore::sisco::SiscoReader::chunk_sequence |
|
private |
◆ chunks_
| std::list<Chunk> casacore::sisco::SiscoReader::chunks_ |
|
private |
◆ current_chunk_
| Chunk* casacore::sisco::SiscoReader::current_chunk_ |
|
private |
◆ decompress_lane_
◆ decompressed_queue
| std::set<Chunk> casacore::sisco::SiscoReader::decompressed_queue |
|
private |
◆ file_
| std::ifstream casacore::sisco::SiscoReader::file_ |
|
private |
◆ filename_
| std::string casacore::sisco::SiscoReader::filename_ |
|
private |
◆ kRequestBufferSize
| size_t casacore::sisco::SiscoReader::kRequestBufferSize |
|
staticconstexprprivate |
◆ mutex_
| std::mutex casacore::sisco::SiscoReader::mutex_ |
|
private |
◆ open_
| bool casacore::sisco::SiscoReader::open_ |
|
private |
◆ predict_level_
| int casacore::sisco::SiscoReader::predict_level_ |
|
private |
◆ read_lane_
◆ read_thread_
| std::thread casacore::sisco::SiscoReader::read_thread_ |
|
private |
◆ request_queue_
◆ result_counter_
| size_t casacore::sisco::SiscoReader::result_counter_ |
|
private |
◆ result_lane_
◆ result_queue
| std::set<Result> casacore::sisco::SiscoReader::result_queue |
|
private |
◆ result_sequence_
| size_t casacore::sisco::SiscoReader::result_sequence_ |
|
private |
◆ result_workers_
| std::vector<std::thread> casacore::sisco::SiscoReader::result_workers_ |
|
private |
◆ results_in_chunk_counter_
| size_t casacore::sisco::SiscoReader::results_in_chunk_counter_ |
|
private |
The documentation for this class was generated from the following file: