libdballe  7.29
db/benchmark.h
1 #ifndef DBALLE_DB_BENCH_UTILS_H
2 #define DBALLE_DB_BENCH_UTILS_H
3 
5 #include <dballe/db/db.h>
6 
7 namespace dballe {
8 namespace benchmark {
9 
10 struct DBTask : Task
11 {
12  std::unique_ptr<DB> db;
13 
14  using Task::Task;
15 
16  void setup() override
17  {
18  db = DB::connect_test();
19  db->reset();
20  }
21 
22  void teardown() override
23  {
24  db->disappear();
25  db.reset(0);
26  }
27 };
28 
30 {
31  DB& db;
32 
33  ExistingDBTask(DB& db, const std::string& name)
34  : Task(name), db(db) {}
35 };
36 
38 {
39  std::unique_ptr<DB> db;
40 
41  using Benchmark::Benchmark;
42 
43  void setup() override
44  {
45  db = DB::connect_test();
46  db->reset();
47  }
48 
49  void teardown() override
50  {
51  db->disappear();
52  db.reset(0);
53  }
54 };
55 
56 }
57 }
58 #endif
Simple benchmark infrastructure.
Definition: db/benchmark.h:37
Definition: db/benchmark.h:29
void setup() override
Set up the environment for running run_once()
Definition: db/benchmark.h:16
Functions used to connect to DB-All.e and insert, query and delete data.
Base class for all benchmarks.
Definition: core/benchmark.h:144
One task to be measured.
Definition: core/benchmark.h:22
Definition: db.h:166
void teardown() override
Clean up after the task has been measured.
Definition: db/benchmark.h:22
Definition: db/benchmark.h:10
static std::unique_ptr< DB > connect_test()
Start a test session with DB-All.e.