24 #ifndef PSS_ASTROTYPES_SIGPROC_SIGPROCFORMAT_H
25 #define PSS_ASTROTYPES_SIGPROC_SIGPROCFORMAT_H
31 namespace astrotypes {
38 template<
typename Dimension1,
typename Dimension2>
40 SigProcFormat() { static_assert(
true,
"dimesions must be Time or Frequency for SigProcFormat"); }
44 template<
typename Dimension1>
46 SigProcFormat() { static_assert(
true,
"dimesions cannot be the same for SigProcFormat"); }
54 class OSigProcFormat {
61 typename std::enable_if<has_exact_dimensions<T, units::Time, units::Frequency>::value, OSigProcFormat
const&>::type
65 typename std::enable_if<has_exact_dimensions<T, units::Time>::value, OSigProcFormat
const&>::type
69 typename std::enable_if<has_exact_dimensions<T, units::Frequency>::value, OSigProcFormat
const&>::type
73 typename std::enable_if<has_exact_dimensions<T, units::Frequency, units::Time>::value, OSigProcFormat
const&>::type
80 class ISigProcFormat {
87 typename std::enable_if<has_exact_dimensions<T, units::Time, units::Frequency>::value, ISigProcFormat
const&>::type
91 typename std::enable_if<has_exact_dimensions<T, units::Time>::value, ISigProcFormat
const&>::type
95 typename std::enable_if<has_exact_dimensions<T, units::Frequency, units::Time>::value, ISigProcFormat
const&>::type
104 inline OSigProcFormat
operator<<(std::ostream&)
const;
105 inline ISigProcFormat
operator>>(std::istream&)
const;
112 class OSigProcFormat {
119 template<
typename T,
typename Alloc>
120 OSigProcFormat
const& operator<<(astrotypes::TimeFrequency<T, Alloc>
const&);
122 template<
typename T,
typename Alloc>
123 OSigProcFormat
const& operator<<(astrotypes::FrequencyTime<T, Alloc>
const&);
126 typename std::enable_if<has_exact_dimensions<T, units::Time>::value, OSigProcFormat
const&>::type
130 typename std::enable_if<has_exact_dimensions<T, units::Frequency>::value, OSigProcFormat
const&>::type
137 class ISigProcFormat {
144 typename std::enable_if<has_exact_dimensions<T, units::Frequency, units::Time>::value, ISigProcFormat
const&>::type
148 typename std::enable_if<has_exact_dimensions<T, units::Frequency>::value, ISigProcFormat
const&>::type
152 typename std::enable_if<has_exact_dimensions<T, units::Time, units::Frequency>::value, ISigProcFormat
const&>::type
161 inline OSigProcFormat
operator<<(std::ostream&)
const;
162 inline ISigProcFormat
operator>>(std::istream&)
const;
166 template<
typename Dimension1,
typename Dimension2>
167 typename SigProcFormat<Dimension1, Dimension2>::OSigProcFormat operator<<(std::ostream& os, SigProcFormat<Dimension1, Dimension2>
const&);
169 template<
typename Dimension1,
typename Dimension2>
170 typename SigProcFormat<Dimension1, Dimension2>::ISigProcFormat
operator>>(std::istream& os, SigProcFormat<Dimension1, Dimension2>
const&);
177 #endif // PSS_ASTROTYPES_SIGPROC_SIGPROCFORMAT_H
boost::units::time_dimension Time
std::istream & operator>>(std::istream &stream, HeaderBase< Derived > &headers)
Header::InfoSentry< Stream > operator<<(Stream &os, Header::Info const &adapter)
boost::units::frequency_dimension Frequency