ClockWork DB CoreAPI 1.0.48
Abstract Time Series and Storage/Management Library
Loading...
Searching...
No Matches
connection.hpp
1#ifndef HAVE_TOM_TSDB_CONNECTION_HPP
2#define HAVE_TOM_TSDB_CONNECTION_HPP
3
4#include <tom-util/scalar.hpp>
5#include <tom-tsdb/smart_pointers.hpp>
6#include <tom-tsdb/runtime_metrics.hpp>
7
8#include <vector>
9
10namespace tom {
11
12 class observation;
13
14 namespace tsdb {
15
16 class TOM_UTIL_API session;
17 class TOM_UTIL_API datastore;
18 class TOM_UTIL_API access_mode;
19
24 class TOM_UTIL_API datastore_meta_data
25 {
26 public:
28 datastore_meta_data( const tom::String &path ) : m_path(path) { }
29 virtual ~datastore_meta_data() { }
33 const tom::String &
34 path() const { return m_path; }
35
36 protected:
37 tom::String m_path;
38 };
39 typedef std::vector< datastore_meta_data > datastore_meta_data_vec;
40
45 class TOM_UTIL_API connection
46 {
47 public:
48 virtual ~connection() { }
49
54 virtual
55 const datastore_meta_data_vec &
57
63 //datastore &
64 tom::tsdb::datastore_sptr
65 get_datastore( const char *name, const access_mode &mode );
66
72 virtual
73 //datastore &
74 tom::tsdb::datastore_sptr
75 get_datastore( const observation &name, const access_mode &mode ) = 0;
76
80 void
81 delete_datastore( const char *name );
82
86 virtual
87 void
88 delete_datastore( const observation &name ) = 0;
89
93 virtual
96
97 const lock_metrics &
98 get_lock_metrics() {
99 populate_lock_metrics(m_lock_metrics);
100 return m_lock_metrics;
101 }
102
103
104 protected:
105 virtual
106 void
107 populate_lock_metrics( lock_metrics & lock_mets ) = 0;
108
109 connection() { }
110
111 private:
112 tom::tsdb::lock_metrics m_lock_metrics;
113 };
114
115 } // end tsdb namespace
116
117} // end tom namespace
118
119#endif
Definition string.hpp:15
Definition observation.hpp:13
Definition datastore.hpp:347
Definition connection.hpp:46
virtual void delete_datastore(const observation &name)=0
virtual tom::tsdb::session & get_session()=0
virtual tom::tsdb::datastore_sptr get_datastore(const observation &name, const access_mode &mode)=0
virtual const datastore_meta_data_vec & get_datastores_meta_data() const =0
Definition connection.hpp:25
const tom::String & path() const
Definition connection.hpp:34
Definition runtime_metrics.pb.h:79
Definition session.hpp:93