astrotypes  0.0
IStream.cpp
Go to the documentation of this file.
1 namespace pss {
2 namespace astrotypes {
3 namespace sigproc {
4 
5 template<Header::DataType HeaderDataType>
6 typename AdaptedIStream<HeaderDataType>::AdapterType AdaptedIStream<HeaderDataType>::_adapter;
7 
8 template<Header::DataType HeaderDataType>
9 template<typename Stream, typename DataType>
10 void AdaptedIStream<HeaderDataType>::read(Stream& stream, DataType& data)
11 {
12  stream >> _adapter >> data;
13 }
14 
15 template<typename HeaderT>
16 inline HeaderT const& IStream<HeaderT>::header() const
17 {
18  return _header;
19 }
20 
21 template<typename HeaderT>
22 template<typename Stream>
23 void IStream<HeaderT>::new_header(Stream& stream)
24 {
25  stream >> _header;
26 }
27 
28 template<typename HeaderT>
29 template<typename Stream, typename DataType>
30 void IStream<HeaderT>::read(Stream& stream, DataType& data)
31 {
32  switch(_header.data_type())
33  {
34  case HeaderT::DataType::FilterBank:
36  break;
37  case HeaderT::DataType::TimeSeries:
39  break;
40  default:
41  throw std::runtime_error("unkonwn data type setting");
42  }
43 }
44 
45 } // namespace sigproc
46 } // namespace astrotypes
47 } // namespace pss
HeaderType const & header() const
the header object corresponding to the current stream
Definition: IStream.cpp:16
static void read(Stream &s, DataType &data)
Definition: IStream.cpp:10
void new_header(Stream &stream)
inheriting class should call this every time a new sigproc stream is opened
Definition: IStream.cpp:23
void read(Stream &s, DataType &)
Definition: IStream.cpp:30