libdballe  9.11
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 
7 namespace dballe {
8 struct DB;
9 
10 namespace db {
11 struct CursorStation;
12 struct Transaction;
13 }
14 
15 namespace fortran {
16 
17 struct InputFile;
18 struct OutputFile;
19 
21 {
22 protected:
23  void shutdown(bool commit);
24 
25 public:
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
Common implementation of the set* and enq* machinery using input and output records.
Definition: commonapi.h:152
Operation-specific behaviour for the API.
Definition: commonapi.h:44
Definition: cmdline.h:18
Definition: dbapi.h:20
Options controlling how to connect to a database.
Definition: db.h:17