Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
Public Member Functions | Protected Member Functions | List of all members
ska::cheetah::sigproc::SigProcFileStream Class Reference

Read in a SigProc format input file and generate a series of data chunks. More...

#include <cheetah/sigproc/SigProcFileStream.h>

Inheritance diagram for ska::cheetah::sigproc::SigProcFileStream:
Inheritance graph
Collaboration diagram for ska::cheetah::sigproc::SigProcFileStream:
Collaboration graph

Public Member Functions

 SigProcFileStream (Config const &config)
 
bool process ()
 

Protected Member Functions

std::size_t number_of_data_samples () const
 return the number of samples (time * channels) in the currently opened file More...
 

Detailed Description

Read in a SigProc format input file and generate a series of data chunks.

Definition at line 45 of file SigProcFileStream.h.

Member Function Documentation

◆ number_of_data_samples()

std::size_t ska::cheetah::sigproc::SigProcFileStream::number_of_data_samples ( ) const
protected

return the number of samples (time * channels) in the currently opened file

actual data samples = this * number of channels.

Definition at line 266 of file SigProcFileStream.cpp.

267 {
268  if( _nsamples == 0) {
269  _nsamples = (boost::filesystem::file_size(*(_file_it -1)) - _header.size() ) * (8/_header.number_of_bits());
270  }
271  return _nsamples;
272 }

◆ process()

bool ska::cheetah::sigproc::SigProcFileStream::process ( )
Returns
true if all data has been consumed

Definition at line 274 of file SigProcFileStream.cpp.

275 {
276  if(!_file_stream.is_open() || _file_stream.eof() || _file_stream.peek() == decltype(_file_stream)::traits_type::eof()) {
277  if(!next_file()) return true; // mark end of data
278  }
279 
280  typedef data::TimeFrequency<Cpu, uint8_t> TimeFrequencyType;
281  //typedef std::decay<decltype(std::declval<TimeFrequencyType>().data())>::type TimeFrequencyDataType;
282 
283  auto chunk = get_chunk<TimeFrequencyType>(data::DimensionSize<data::Time>(_config.chunk_samples()), data::DimensionSize<data::Frequency>(0));
284  assert(chunk);
285 
286  transfer_header_info(*chunk);
287  chunk->start_time(_start_time);
288  auto it = chunk->begin();
289  return fill_chunk(*chunk, 0, it);
290 }
unsigned chunk_samples() const
return the number of time samples in a chunk
Definition: Config.cpp:74
Here is the call graph for this function:

The documentation for this class was generated from the following files: