libdballe 9.6
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
dballe::db::BaseSummaryMemory< Station > Class Template Reference

High level objects for working with DB-All.e DB summaries. More...

#include <summary_memory.h>

Inheritance diagram for dballe::db::BaseSummaryMemory< Station >:
dballe::db::BaseSummary< Station >

Public Member Functions

 BaseSummaryMemory (const std::string &pathname)
 
const summary::StationEntries< Station > & _entries () const
 
bool stations (std::function< bool(const Station &)>) const override
 
bool reports (std::function< bool(const std::string &)>) const override
 
bool levels (std::function< bool(const Level &)>) const override
 
bool tranges (std::function< bool(const Trange &)>) const override
 
bool varcodes (std::function< bool(const wreport::Varcode &)>) const override
 
Datetime datetime_min () const override
 Recompute reports, levels, tranges, and varcodes.
 
Datetime datetime_max () const override
 
unsigned data_count () const override
 
std::shared_ptr< dballe::CursorSummaryquery_summary (const Query &query) const override
 Query the contents of the summary.
 
bool iter (std::function< bool(const Station &, const summary::VarDesc &, const DatetimeRange &, size_t)>) const override
 Iterate the contents of this summary. There is no guarantee on sorting order.
 
bool iter_filtered (const dballe::Query &query, std::function< bool(const Station &, const summary::VarDesc &, const DatetimeRange &, size_t)>) const override
 Iterate the contents of this summary. There is no guarantee on sorting order.
 
void clear () override
 Completely empty the summary.
 
void add (const Station &station, const summary::VarDesc &vd, const dballe::DatetimeRange &dtrange, size_t count) override
 Add an entry to the summary.
 
void add_summary (const BaseSummary< dballe::Station > &summary) override
 Merge the copy of another summary into this one.
 
void add_summary (const BaseSummary< dballe::DBStation > &summary) override
 Merge the copy of another summary into this one.
 
void add_filtered (const BaseSummary< Station > &summary, const dballe::Query &query) override
 Merge the copy of another summary into this one.
 
void commit () override
 Write changes to disk.
 
void to_json (core::JSONWriter &writer) const override
 Serialize to JSON.
 
void load_json (core::json::Stream &in) override
 Load contents from JSON, merging with the current contents.
 
DBALLE_TEST_ONLY void dump (FILE *out) const override
 
- Public Member Functions inherited from dballe::db::BaseSummary< Station >
 BaseSummary (const BaseSummary &)=delete
 
 BaseSummary (BaseSummary &&)=delete
 
BaseSummaryoperator= (const BaseSummary &)=delete
 
BaseSummaryoperator= (BaseSummary &&)=delete
 
virtual bool stations (std::function< bool(const Station &)>) const =0
 
virtual bool reports (std::function< bool(const std::string &)>) const =0
 
virtual bool levels (std::function< bool(const Level &)>) const =0
 
virtual bool tranges (std::function< bool(const Trange &)>) const =0
 
virtual bool varcodes (std::function< bool(const wreport::Varcode &)>) const =0
 
virtual Datetime datetime_min () const =0
 Recompute reports, levels, tranges, and varcodes.
 
virtual Datetime datetime_max () const =0
 
virtual unsigned data_count () const =0
 
virtual std::shared_ptr< dballe::CursorSummaryquery_summary (const Query &query) const
 Query the contents of the summary.
 
virtual void clear ()=0
 Completely empty the summary.
 
virtual void add (const Station &station, const summary::VarDesc &vd, const dballe::DatetimeRange &dtrange, size_t count)=0
 Add an entry to the summary.
 
virtual void add_cursor (const dballe::CursorSummary &cur)
 Add an entry to the summary taken from the current status of cur.
 
virtual void add_message (const dballe::Message &message, bool station_data=true, bool data=true)
 Add the contents of a Message.
 
virtual void add_messages (const std::vector< std::shared_ptr< dballe::Message > > &messages, bool station_data=true, bool data=true)
 Add the contents of a Messages.
 
virtual void add_summary (const BaseSummary< dballe::Station > &summary)
 Merge the copy of another summary into this one.
 
virtual void add_summary (const BaseSummary< dballe::DBStation > &summary)
 Merge the copy of another summary into this one.
 
virtual void add_filtered (const BaseSummary< Station > &summary, const dballe::Query &query)
 Merge the copy of another summary into this one.
 
virtual void commit ()=0
 Write changes to disk.
 
virtual bool iter (std::function< bool(const Station &, const summary::VarDesc &, const DatetimeRange &, size_t)>) const =0
 Iterate the contents of this summary. There is no guarantee on sorting order.
 
virtual bool iter_filtered (const dballe::Query &query, std::function< bool(const Station &, const summary::VarDesc &, const DatetimeRange &, size_t)>) const =0
 Iterate the contents of this summary. There is no guarantee on sorting order.
 
virtual void to_json (core::JSONWriter &writer) const =0
 Serialize to JSON.
 
virtual void load_json (core::json::Stream &in)
 Load contents from JSON, merging with the current contents.
 
virtual DBALLE_TEST_ONLY void dump (FILE *out) const =0
 

Protected Member Functions

void recompute_summaries () const
 

Protected Attributes

summary::StationEntries< Stationentries
 
std::string pathname
 
core::SortedSmallUniqueValueSet< std::string > m_reports
 
core::SortedSmallUniqueValueSet< dballe::Levelm_levels
 
core::SortedSmallUniqueValueSet< dballe::Trangem_tranges
 
core::SortedSmallUniqueValueSet< wreport::Varcodem_varcodes
 
dballe::DatetimeRange dtrange
 
size_t count = 0
 
bool dirty = false
 

Additional Inherited Members

- Public Types inherited from dballe::db::BaseSummary< Station >
typedef Station station_type
 

Detailed Description

template<typename Station>
class dballe::db::BaseSummaryMemory< Station >

High level objects for working with DB-All.e DB summaries.

Member Function Documentation

◆ add()

template<typename Station >
void dballe::db::BaseSummaryMemory< Station >::add ( const Station station,
const summary::VarDesc vd,
const dballe::DatetimeRange dtrange,
size_t  count 
)
overridevirtual

Add an entry to the summary.

Implements dballe::db::BaseSummary< Station >.

◆ add_filtered()

template<typename Station >
void dballe::db::BaseSummaryMemory< Station >::add_filtered ( const BaseSummary< Station > &  summary,
const dballe::Query query 
)
overridevirtual

Merge the copy of another summary into this one.

Reimplemented from dballe::db::BaseSummary< Station >.

◆ add_summary() [1/2]

template<typename Station >
void dballe::db::BaseSummaryMemory< Station >::add_summary ( const BaseSummary< dballe::DBStation > &  summary)
overridevirtual

Merge the copy of another summary into this one.

Reimplemented from dballe::db::BaseSummary< Station >.

◆ add_summary() [2/2]

template<typename Station >
void dballe::db::BaseSummaryMemory< Station >::add_summary ( const BaseSummary< dballe::Station > &  summary)
overridevirtual

Merge the copy of another summary into this one.

Reimplemented from dballe::db::BaseSummary< Station >.

◆ clear()

template<typename Station >
void dballe::db::BaseSummaryMemory< Station >::clear ( )
overridevirtual

Completely empty the summary.

Implements dballe::db::BaseSummary< Station >.

◆ commit()

template<typename Station >
void dballe::db::BaseSummaryMemory< Station >::commit ( )
overridevirtual

Write changes to disk.

Implements dballe::db::BaseSummary< Station >.

◆ data_count()

template<typename Station >
unsigned dballe::db::BaseSummaryMemory< Station >::data_count ( ) const
inlineoverridevirtual

◆ datetime_max()

template<typename Station >
Datetime dballe::db::BaseSummaryMemory< Station >::datetime_max ( ) const
inlineoverridevirtual

◆ datetime_min()

template<typename Station >
Datetime dballe::db::BaseSummaryMemory< Station >::datetime_min ( ) const
inlineoverridevirtual

Recompute reports, levels, tranges, and varcodes.

Call this after performing changes to the summary, to make those sets valid before reading them.

Implements dballe::db::BaseSummary< Station >.

References dballe::DatetimeRange::min.

◆ dump()

template<typename Station >
DBALLE_TEST_ONLY void dballe::db::BaseSummaryMemory< Station >::dump ( FILE *  out) const
overridevirtual

◆ iter()

template<typename Station >
bool dballe::db::BaseSummaryMemory< Station >::iter ( std::function< bool(const Station &, const summary::VarDesc &, const DatetimeRange &, size_t)>  ) const
overridevirtual

Iterate the contents of this summary. There is no guarantee on sorting order.

Implements dballe::db::BaseSummary< Station >.

◆ iter_filtered()

template<typename Station >
bool dballe::db::BaseSummaryMemory< Station >::iter_filtered ( const dballe::Query query,
std::function< bool(const Station &, const summary::VarDesc &, const DatetimeRange &, size_t)>   
) const
overridevirtual

Iterate the contents of this summary. There is no guarantee on sorting order.

Implements dballe::db::BaseSummary< Station >.

◆ levels()

template<typename Station >
bool dballe::db::BaseSummaryMemory< Station >::levels ( std::function< bool(const Level &)>  ) const
overridevirtual

◆ load_json()

template<typename Station >
void dballe::db::BaseSummaryMemory< Station >::load_json ( core::json::Stream in)
overridevirtual

Load contents from JSON, merging with the current contents.

Reimplemented from dballe::db::BaseSummary< Station >.

◆ query_summary()

template<typename Station >
std::shared_ptr< dballe::CursorSummary > dballe::db::BaseSummaryMemory< Station >::query_summary ( const Query query) const
overridevirtual

Query the contents of the summary.

Parameters
queryThe record with the query data (see technical specifications, par. 1.6.4 "parameter output/input")
Returns
The cursor to use to iterate over the results. The results are the same as DB::query_summary.

Reimplemented from dballe::db::BaseSummary< Station >.

◆ reports()

template<typename Station >
bool dballe::db::BaseSummaryMemory< Station >::reports ( std::function< bool(const std::string &)>  ) const
overridevirtual

◆ stations()

template<typename Station >
bool dballe::db::BaseSummaryMemory< Station >::stations ( std::function< bool(const Station &)>  ) const
overridevirtual

◆ to_json()

template<typename Station >
void dballe::db::BaseSummaryMemory< Station >::to_json ( core::JSONWriter writer) const
overridevirtual

Serialize to JSON.

Implements dballe::db::BaseSummary< Station >.

◆ tranges()

template<typename Station >
bool dballe::db::BaseSummaryMemory< Station >::tranges ( std::function< bool(const Trange &)>  ) const
overridevirtual

◆ varcodes()

template<typename Station >
bool dballe::db::BaseSummaryMemory< Station >::varcodes ( std::function< bool(const wreport::Varcode &)>  ) const
overridevirtual

The documentation for this class was generated from the following file: