36class IONGSMSFileSource :
public gr::sync_block
39 using sptr = gnss_shared_ptr<IONGSMSFileSource>;
42 const fs::path& metadata_filepath,
43 const GnssMetadata::File& file,
44 const GnssMetadata::Block& block,
45 const std::vector<std::string>& stream_ids);
49 gr_vector_const_void_star& input_items,
50 gr_vector_void_star& output_items)
override;
52 std::size_t output_stream_count()
const;
53 std::size_t output_stream_item_size(std::size_t stream_index)
const;
54 std::size_t output_stream_total_sample_count(std::size_t stream_index)
const;
57 static gr::io_signature::sptr make_output_signature(
const GnssMetadata::Block& block,
const std::vector<std::string>& stream_ids);
59 std::ifstream file_stream_;
60 std::vector<char> io_buffer_;
61 std::size_t io_buffer_offset_;
62 std::vector<int> items_produced_;
63 std::size_t output_stream_count_;
64 std::vector<std::size_t> output_stream_item_sizes_;
65 std::vector<std::size_t> output_stream_item_rates_;
66 std::vector<std::size_t> output_stream_total_sample_counts_;
67 std::size_t maximum_item_rate_;
68 std::vector<std::shared_ptr<IONGSMSChunkData>> chunk_data_;
69 std::size_t chunk_cycle_length_;