summaryrefslogtreecommitdiff
path: root/libodb/odb/schema-catalog-impl.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libodb/odb/schema-catalog-impl.hxx')
-rw-r--r--libodb/odb/schema-catalog-impl.hxx54
1 files changed, 54 insertions, 0 deletions
diff --git a/libodb/odb/schema-catalog-impl.hxx b/libodb/odb/schema-catalog-impl.hxx
new file mode 100644
index 0000000..dd729db
--- /dev/null
+++ b/libodb/odb/schema-catalog-impl.hxx
@@ -0,0 +1,54 @@
+// file : odb/schema-catalog-impl.hxx
+// license : GNU GPL v2; see accompanying LICENSE file
+
+#ifndef ODB_SCHEMA_CATALOG_IMPL_HXX
+#define ODB_SCHEMA_CATALOG_IMPL_HXX
+
+#include <odb/pre.hxx>
+
+#include <cstddef>
+
+#include <odb/forward.hxx> // schema_version
+
+#include <odb/details/export.hxx>
+
+namespace odb
+{
+ struct schema_catalog_impl;
+
+ // Translation unit initializer.
+ //
+ struct LIBODB_EXPORT schema_catalog_init
+ {
+ static schema_catalog_impl* catalog;
+ static std::size_t count;
+
+ schema_catalog_init ();
+ ~schema_catalog_init ();
+ };
+
+ static const schema_catalog_init schema_catalog_init_;
+
+ // Catalog entry registration.
+ //
+ struct LIBODB_EXPORT schema_catalog_create_entry
+ {
+ schema_catalog_create_entry (
+ database_id,
+ const char* name,
+ bool (*create_function) (database&, unsigned short pass, bool drop));
+ };
+
+ struct LIBODB_EXPORT schema_catalog_migrate_entry
+ {
+ schema_catalog_migrate_entry (
+ database_id,
+ const char* name,
+ schema_version,
+ bool (*migrate_function) (database&, unsigned short pass, bool pre));
+ };
+}
+
+#include <odb/post.hxx>
+
+#endif // ODB_SCHEMA_CATALOG_IMPL_HXX