libdballe 9.13
dbapi.h
1#ifndef DBALLE_FORTRAN_DBAPI_H
2#define DBALLE_FORTRAN_DBAPI_H
3
4#include "commonapi.h"
5#include <dballe/file.h>
6
7namespace dballe {
8struct DB;
9
10namespace db {
11struct CursorStation;
12struct Transaction;
13} // namespace db
14
15namespace fortran {
16
17struct InputFile;
18struct OutputFile;
19
20struct DbAPI : public CommonAPIImplementation
21{
22protected:
23 void shutdown(bool commit);
24
25public:
26 std::shared_ptr<db::Transaction> tr;
27 InputFile* input_file = nullptr;
28 OutputFile* output_file = nullptr;
29
30 DbAPI(std::shared_ptr<db::Transaction> tr, const char* anaflag,
31 const char* dataflag, const char* attrflag);
32 DbAPI(std::shared_ptr<db::Transaction> tr, unsigned perms);
33 virtual ~DbAPI();
34
35 void seti(const char* param, int value) override;
36 void reinit_db(const char* repinfofile = nullptr) override;
37 void remove_all() override;
38 int query_stations() override;
39 int query_data() override;
40 void insert_data() override;
41 void remove_data() override;
42 void commit() override;
43 void messages_open_input(const char* filename, const char* mode,
44 Encoding format, bool simplified = true) override;
45 void messages_open_output(const char* filename, const char* mode,
46 Encoding format) override;
47 bool messages_read_next() override;
48 void messages_write_next(const char* template_name = 0) override;
49
50 static std::unique_ptr<API> fortran_connect(const DBConnectOptions& options,
51 const char* anaflag,
52 const char* dataflag,
53 const char* attrflag);
54
55 friend class Operation;
56};
57
58} // namespace fortran
59} // namespace dballe
60
61#endif
Options controlling how to connect to a database.
Definition db.h:18
Definition db.h:308
Definition db/db.h:156
Definition db/db.h:60