24 #ifndef PSS_ASTROTYPES_SIGPROC_HEADERBASE_H
25 #define PSS_ASTROTYPES_SIGPROC_HEADERBASE_H
27 #include "../HeaderField.h"
33 namespace astrotypes {
68 template<
typename Derived>
75 template<
typename Stream>
90 template<
typename Stream>
104 void read(std::istream & stream);
111 void write(std::ostream & stream)
const;
133 std::size_t
size()
const;
147 void do_read(std::istream & stream);
148 void do_write(std::ostream & stream)
const;
155 std::runtime_error
parse_error(std::string
const& msg, T
const& msg2)
const;
179 mutable unsigned _size;
181 std::map<SigProcLabel, HeaderFieldBase*> _headers;
182 std::map<SigProcLabel, HeaderFieldBase*> _compare_headers;
183 std::map<SigProcLabel, HeaderFieldBase*> _read_only_headers;
186 template<
typename Derived>
187 std::ostream& operator<<(std::ostream& os, HeaderBase<Derived>
const&);
189 template<
typename Derived>
197 #endif // PSS_ASTROTYPES_SIGPROC_HEADERBASE_H
std::istream & operator>>(std::istream &stream, HeaderBase< Derived > &headers)