1#ifndef HAVE_TOM_TSDB_SPARSE_SERIES_HPP
2#define HAVE_TOM_TSDB_SPARSE_SERIES_HPP
4#include <tom-tsdb/time_series.hpp>
5#include <tom-util/sparse_series.hpp>
23 set_ignore_missing_values(
bool b ) = 0;
27 get_ignore_missing_values( )
const = 0;
31 set_ignore_same_values(
bool b ) = 0;
35 get_ignore_same_values()
const = 0;
39 set_fill_forward(
bool b ) = 0;
43 get_fill_forward( )
const = 0;
47 namespace collections {
49 template <
typename T,
typename NATIVE_TYPE>
53 typedef typename T::value_type value_type;
60 const tom::calendars::date_time &modified );
62 template <
typename IteratorT>
65 const tom::calendars::date_time &modified,
66 IteratorT begin, IteratorT end );
69 virtual const values::data_type &
get_data_type()
const {
return NATIVE_TYPE::Instance(); }
83 virtual const tom::observation &get_observation(
const tom::calendars::date_int_type d )
const;
85 virtual void set_observation(
const tom::calendars::date_int_type d,
const tom::observation & val );
87 virtual void set_observation( tom::calendars::date_int_type d,
const tom::Date & );
89 virtual const tom::observation & operator[ ](
const tom::calendars::date_int_type d )
const;
90 virtual tom::observation & operator[ ](
const tom::calendars::date_int_type d );
93 virtual tom::calendars::date_int_type get_first_date_int()
const;
94 virtual tom::calendars::date_int_type get_last_date_int()
const;
96 virtual std::ostream &print( std::ostream & )
const;
100 const tom::calendars::date_time &
104 const tom::calendars::date_time &
113 set_ignore_missing_values(
bool b )
114 { m_data.set_ignore_missing_values( b ); }
118 get_ignore_missing_values( )
const
119 {
return m_data.get_ignore_missing_values( ); }
123 set_ignore_same_values(
bool b )
124 { m_data.set_ignore_same_values( b ); }
128 get_ignore_same_values()
const
129 {
return m_data.get_ignore_same_values( ); }
133 set_fill_forward(
bool b )
134 { m_data.set_fill_forward( b ); }
138 get_fill_forward( )
const
139 {
return m_data.get_fill_forward( ); }
142 tom::calendars::date_int_type
144 {
return m_data.get_first_date_int(); }
147 tom::calendars::date_int_type
149 {
return m_data.get_last_date_int(); }
156 get_raw_data()
const {
return NULL; }
161 set_create_date_time(
const tom::calendars::date_time &d)
163 m_create_date_time = d;
167 set_modify_date_time(
const tom::calendars::date_time &d)
169 m_modify_date_time = d;
172 aggregation_type m_agg_type;
175 tom::calendars::date_time m_create_date_time;
176 tom::calendars::date_time m_modify_date_time;
181 template <
typename T,
typename NATIVE_TYPE>
183 const observation &name, aggregation_type agg_t ) :
184 m_agg_type(agg_t), m_ds(ds), m_name( String( name ).value() ), m_data(cal)
188 template <
typename T,
typename NATIVE_TYPE>
190 const observation &name, aggregation_type agg_t,
191 const tom::calendars::date_time &created,
192 const tom::calendars::date_time &modified ) :
193 m_agg_type(agg_t), m_ds(ds), m_name( String( name ).value() ),
194 m_create_date_time( created ), m_modify_date_time( modified ), m_data(cal)
198 template <
typename T,
typename NATIVE_TYPE>
199 template <
typename IteratorT>
201 aggregation_type agg_t,
202 const tom::calendars::date_time &created,
203 const tom::calendars::date_time &modified,
204 IteratorT begin, IteratorT end ) :
205 m_agg_type(agg_t), m_ds(ds), m_name( String(name).value() ), m_create_date_time( created ),
206 m_modify_date_time( modified ), m_data(cal,begin,end)
210 template <
typename T,
typename NATIVE_TYPE>
216 template <
typename T,
typename NATIVE_TYPE>
223 template <
typename T,
typename NATIVE_TYPE>
226 {
return m_data.get_observation( d ); }
228 template <
typename T,
typename NATIVE_TYPE>
231 {
return m_data.get_observation( d ); }
233 template <
typename T,
typename NATIVE_TYPE>
235 sparse_series<T,NATIVE_TYPE>::set_observation(
const tom::calendars::date_int_type d,
const tom::observation & val )
237 m_data.set_observation( d, val );
240 template <
typename T,
typename NATIVE_TYPE>
242 sparse_series<T,NATIVE_TYPE>::set_observation(
const tom::calendars::date_int_type d,
const tom::Date & val )
244 m_data.set_observation( d, val );
247 template <
typename T,
typename NATIVE_TYPE>
251 m_data.set_observation( d, val );
254 template <
typename T,
typename NATIVE_TYPE>
258 m_data.set_observation( d, val );
261 template <
typename T,
typename NATIVE_TYPE>
263 sparse_series<T,NATIVE_TYPE>::operator[ ](
const tom::calendars::date_int_type d )
const
264 {
return m_data[ d ]; }
266 template <
typename T,
typename NATIVE_TYPE>
268 sparse_series<T,NATIVE_TYPE>::operator[ ](
const tom::calendars::date_int_type d )
269 {
return m_data[ d ]; }
271 template <
typename T,
typename NATIVE_TYPE>
274 {
return m_data[ d ]; }
276 template <
typename T,
typename NATIVE_TYPE>
279 {
return m_data[ d ]; }
282 template <
typename T,
typename NATIVE_TYPE>
284 sparse_series<T,NATIVE_TYPE>::print( std::ostream &os )
const
285 {
return m_data.print( os ); }
287 template <
typename T,
typename NATIVE_TYPE>
289 sparse_series<T,NATIVE_TYPE>::get_calendar( )
const
290 {
return m_data.get_calendar(); }
293 template <
typename T,
typename NATIVE_TYPE>
294 tom::calendars::date_int_type
295 sparse_series<T,NATIVE_TYPE>::get_first_date_int()
const
297 return m_data.get_first_date_int();
301 template <
typename T,
typename NATIVE_TYPE>
302 tom::calendars::date_int_type
303 sparse_series<T,NATIVE_TYPE>::get_last_date_int()
const
305 return m_data.get_last_date_int();
308 template <
typename T,
typename NATIVE_TYPE>
310 sparse_series<T,NATIVE_TYPE>::begin()
const
312 return m_data.begin();
316 template <
typename T,
typename NATIVE_TYPE>
318 sparse_series<T,NATIVE_TYPE>::end()
const
Definition calendar.hpp:120
Definition calendar.hpp:47
Definition sparse_series.hpp:287
Definition time_series.hpp:157
Definition observation.hpp:13
Definition time_series.hpp:22
Definition sparse_series.hpp:51
virtual const tom::calendars::date_time & get_create_date_time() const
Definition sparse_series.hpp:101
virtual datastore & get_datastore() const
Definition sparse_series.hpp:68
virtual void set_aggregation_type(aggregation_type)
Definition sparse_series.hpp:218
virtual const tom::calendars::date_time & get_modify_date_time() const
Definition sparse_series.hpp:105
virtual aggregation_type get_aggregation_type() const
Definition sparse_series.hpp:212
virtual bool is_sparse_series() const
Definition sparse_series.hpp:109
virtual const tom::string & get_name() const
Definition sparse_series.hpp:73
virtual tom::calendars::date_int_type get_first_dirty_date_int() const
Definition sparse_series.hpp:143
virtual const values::data_type & get_data_type() const
Definition sparse_series.hpp:69
virtual tom::calendars::date_int_type get_last_dirty_date_int() const
Definition sparse_series.hpp:148
Definition datastore.hpp:445
Definition sparse_series.hpp:17
Definition time_series.hpp:313
Definition value_types.hpp:96