dboo::odb::free_all

free_all();
free_all()

Destroys all objects known to the dboo API. To use this safely, no objects should be destroyed by destructor.

Parameters

(none)

Return value

(none)

Example

#include <dboo/rfx.h>
#include <dboo/odb.h>

class A {
public:
  inline static dboo::cls<A> cls{"A"};
  static void dboo_class_init(dboo::cls<A>& c) {
    c.member(&A::var1, "var1");
  }
private:
  int var1;
};

class B {
public:
  B() = default;
  B(A* a) : a{a} {}
  virtual ~B() = default;
  inline static dboo::cls<B> cls{"B"};
  static void dboo_class_init(dboo::cls<B>& c) {
    c.member(&A::a, "a");
  }
private:
  A* a;
};

int main() {

    using dboo::in;
    using dboo::gt;
    using dboo::select;

    dboo::odb db;

    db.connect("localhost", 8823,
              "my_database",
              "usr132",
              "password");

    vector<B*> results_b;
    vector<A*> results_a;

    db.select<B>(results_b); // Selects all B
    db.select<A>(results_a, gt("var1", 10)); // Selects all A with var1 greater than 1

    db.select<B>(results_b, in("a", select<A>(gt("var1", 10)))); // Selects all B pointing to an A
                                                                 // with var1 greater than 10

    db.select<B>(results_b, in("a", select<A>(gt("var1", 10)))); // Selects all B pointing to an A
                                                                 // with var1 greater than 10

    vector<unique_ptr<B>> results_b;
    db.select<B>(results_b, in("a", select<A>(gt("var1", 10)))); // Selects all B pointing to an A
                                                                 // with var1 greater than 10

    db.free_all();

    return 0;
}
const dboo = require('dboo');
const config = require('config');

dboo.argv(process.argv);

dbConfig = config.get('dbConfig');

class UserId {
  userId = "";
  screenName = "";
  constructor(userid = "", screenName = "") {
    this.userId = userid;
    this.screenName = screenName;
  }
};

dboo.class(UserId,
  [{"userId": dboo.string},
    {"screenName": dboo.string},
  ]
);


class User {
  userId = null;
  address = "";
  constructor(userid = null, address = "") {
    this.userId = userid;
    this.screenName = screenName;
  }
};

dboo.class(User,
  [{"userId": UserId},  // referencing a UserId object
    {"address": dboo.string},
  ]
);

dboo.init(); // Class declarations must come before init!

const db = new dboo.odb();
db.connect(dbConfig.host, Number(dbConfig.port),
            dbConfig.dbName, dbConfig.webUserName,
            dbConfig.webUserPwd);

let results_b = [];
let results_a = [];

db.query(results_b, "select<B>()"); // Selects all B
db.query(results_a, "select<A>(gt(var1, 10))"); // Selects all A with var1 greater than 1

db.query(results_b, "select<B>(in(a, select<A>(gt(var1, 10))))"); // Selects all B pointing to an A
                                                             // with var1 greater than 10

db.free_all();