24 #ifndef PSS_ASTROTYPES_SIGPROC_HEADERFIELD_H
25 #define PSS_ASTROTYPES_SIGPROC_HEADERFIELD_H
33 namespace astrotypes {
60 virtual unsigned read(std::istream &) {
return 0; };
64 virtual unsigned write(std::ostream &)
const {
return 0; };
70 virtual std::string
const&
header_info(std::string
const& h)
const {
return h; };
73 virtual void reset() = 0;
76 virtual bool is_set()
const = 0;
100 operator T
const&()
const {
return *
_var; }
101 operator T&() {
return *
_var; }
106 unsigned read(std::istream &)
override;
107 unsigned write(std::ostream &)
const override;
108 void write_info(std::ostream &)
const override;
109 void reset()
override;
110 bool is_set()
const override;
121 template<
typename T,
typename ToleranceType>
135 ToleranceType _tolerance;
155 bool is_set()
const override {
return false; }
156 void reset()
override {};
163 ItemField(std::vector<T>& vec) : _vec(vec) {}
164 bool is_set()
const override {
return false; }
165 unsigned read(std::istream &)
override;
166 void reset()
override {};
170 std::vector<T>& _vec;
177 operator std::vector<T>
const&()
const {
return _var; }
178 operator std::vector<T>&() {
return _var; }
182 unsigned read(std::istream &)
override;
183 unsigned write(std::ostream &)
const override;
184 std::string
const&
header_info(std::string
const& h)
const override;
185 void write_info(std::ostream &)
const override;
186 bool is_set()
const override;
187 void reset()
override;
198 ItemField _item_label_handler;
199 NullField _end_label_handler;
208 #endif // PSS_ASTROTYPES_SIGPROC_HEADERFIELD_H
A simplified, faster, but less secure and less versatile version of boost::optional.