libdballe 9.6
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}
14
15namespace fortran {
16
17struct InputFile;
18struct OutputFile;
19
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, const char* dataflag, const char* attrflag);
31 DbAPI(std::shared_ptr<db::Transaction> tr, unsigned perms);
32 virtual ~DbAPI();
33
34 void seti(const char* param, int value) override;
35 void reinit_db(const char* repinfofile=nullptr) override;
36 void remove_all() override;
37 int query_stations() override;
38 int query_data() override;
39 void insert_data() override;
40 void remove_data() override;
41 void commit() override;
42 void messages_open_input(const char* filename, const char* mode, Encoding format, bool simplified=true) override;
43 void messages_open_output(const char* filename, const char* mode, Encoding format) override;
44 bool messages_read_next() override;
45 void messages_write_next(const char* template_name=0) override;
46
47 static std::unique_ptr<API> fortran_connect(const DBConnectOptions& options, const char* anaflag, const char* dataflag, const char* attrflag);
48
49 friend class Operation;
50};
51
52}
53}
54
55#endif
Options controlling how to connect to a database.
Definition: db.h:18
Common implementation of the set* and enq* machinery using input and output records.
Definition: commonapi.h:153
Operation-specific behaviour for the API.
Definition: commonapi.h:45
Definition: dbapi.h:21