diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2017-05-01 13:50:13 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2017-05-01 15:02:14 +0300 |
commit | 2319d01e262b705716e19474865f555f3ca81a7d (patch) | |
tree | 15ffb5b3f998a2cc0def729d2f1f76f578d8d139 /bpkg/database | |
parent | 5fb0df6f63e02c141e8a0e5ad4543dea525df3fc (diff) |
Add hxx extension for headers and lib prefix for library dirs
Diffstat (limited to 'bpkg/database')
-rw-r--r-- | bpkg/database | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/bpkg/database b/bpkg/database deleted file mode 100644 index aa32d5c..0000000 --- a/bpkg/database +++ /dev/null @@ -1,82 +0,0 @@ -// file : bpkg/database -*- C++ -*- -// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#ifndef BPKG_DATABASE -#define BPKG_DATABASE - -#include <type_traits> // remove_reference - -#include <odb/query.hxx> -#include <odb/result.hxx> -#include <odb/session.hxx> - -#include <odb/sqlite/database.hxx> - -#include <bpkg/types> -#include <bpkg/utility> - -#include <bpkg/diagnostics> - -namespace bpkg -{ - using odb::query; - using odb::result; - using odb::session; - - using odb::sqlite::database; - using odb::sqlite::transaction; - - database - open (const dir_path& configuration, tracer&, bool create = false); - - struct tracer_guard - { - tracer_guard (database& db, tracer& t) - : db_ (db), t_ (db.tracer ()) {db.tracer (t);} - ~tracer_guard () {db_.tracer (*t_);} - - private: - database& db_; - odb::tracer* t_; - }; - - // Range-based for-loop iteration over query result that returns - // object pointers. For example: - // - // for (shared_ptr<object> o: pointer_result (db.query<object> (...))) - // - template <typename R> - class pointer_result_range - { - R r_; - - public: - pointer_result_range (R&& r): r_ (forward<R> (r)) {} - - using base_iterator = typename std::remove_reference<R>::type::iterator; - - struct iterator: base_iterator - { - iterator () = default; - - explicit - iterator (base_iterator i): base_iterator (move (i)) {} - - typename base_iterator::pointer_type - operator* () {return this->load ();} - }; - - iterator begin () {return iterator (r_.begin ());} - iterator end () {return iterator (r_.end ());} - }; - - template <typename R> - inline pointer_result_range<R> - pointer_result (R&& r) - { - return pointer_result_range<R> (forward<R> (r)); - } -} - -#endif // BPKG_DATABASE |