libdballe  7.21
dbapi.h
1 #ifndef FDBA_DBAPI_H
2 #define FDBA_DBAPI_H
3 
4 #include "commonapi.h"
5 #include <dballe/file.h>
6 
7 namespace dballe {
8 struct DB;
9 struct Transaction;
10 
11 namespace db {
12 struct CursorStation;
13 struct CursorValue;
14 }
15 
16 namespace fortran {
17 
18 struct InputFile;
19 struct OutputFile;
20 
22 {
23 protected:
24  DB& db;
25  db::CursorStation* ana_cur;
26  db::CursorValue* query_cur;
27  InputFile* input_file;
28  OutputFile* output_file;
29  dballe::Transaction* transaction = nullptr;
30  int last_inserted_station_id;
31 
33  struct VarID
34  {
35  wreport::Varcode code;
36  // True if it is a station value
37  bool station;
38  size_t id;
39  VarID(wreport::Varcode code, bool station, size_t id) : code(code), station(station), id(id) {}
40  };
41 
43  std::vector<VarID> last_inserted_varids;
44 
45  void shutdown(bool commit);
46 
47 public:
48  DbAPI(DB& db, const char* anaflag, const char* dataflag, const char* attrflag);
49  virtual ~DbAPI();
50 
51  int enqi(const char* param) override;
52  void scopa(const char* repinfofile=0) override;
53  void remove_all() override;
54  int quantesono() override;
55  void elencamele() override;
56  int voglioquesto() override;
57  const char* dammelo() override;
58  void prendilo() override;
59  void dimenticami() override;
60  int voglioancora() override;
61  void critica() override;
62  void scusa() override;
63  void fatto() override;
64  void messages_open_input(const char* filename, const char* mode, File::Encoding format, bool simplified=true) override;
65  void messages_open_output(const char* filename, const char* mode, File::Encoding format) override;
66  bool messages_read_next() override;
67  void messages_write_next(const char* template_name=0) override;
68 };
69 
70 }
71 }
72 
73 #endif
Common interface for cursors iterating over station or data values.
Definition: db.h:102
Encoding
Supported encodings.
Definition: file.h:20
Store information about the database ID of a variable.
Definition: dbapi.h:33
A RAII transaction interface.
Definition: transaction.h:15
Common implementation of the set* and enq* machinery using input and output records.
Definition: commonapi.h:14
Definition: dbapi.h:21
Copyright (C) 2008–2010 ARPA-SIM urpsim@smr.arpa.emr.it
Definition: cmdline.h:17
Cursor iterating over stations.
Definition: db.h:97
uint16_t Varcode
std::vector< VarID > last_inserted_varids
Store database variable IDs for all last inserted variables.
Definition: dbapi.h:43
Definition: db.h:156