Skip to content

Commit

Permalink
Splitup database header
Browse files Browse the repository at this point in the history
  • Loading branch information
dirkvdb committed Nov 8, 2024
1 parent aed706a commit 6df2317
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 35 deletions.
6 changes: 5 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,11 @@ endif()

if(INFRA_DATABASE)
find_package(Sqlpp11 CONFIG REQUIRED)
list(APPEND INFRA_PUBLIC_HEADERS include/infra/database.h)
list(APPEND INFRA_PUBLIC_HEADERS
include/infra/database.h
include/infra/databasetransaction.h
include/infra/databaseaccessmode.h
)
target_sources(infra PRIVATE database.cpp)
target_link_libraries(infra PUBLIC sqlpp11::sqlpp11)

Expand Down
36 changes: 2 additions & 34 deletions include/infra/database.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

#include "infra/cast.h"
#include "infra/chrono.h"
#include "infra/databaseaccessmode.h"
#include "infra/databasetransaction.h"
#include "infra/exception.h"
#include "infra/filesystem.h"
#include "infra/string.h"
Expand All @@ -26,40 +28,6 @@ enum class ConnectionDebug
No,
};

enum class AccessMode
{
ReadOnly,
ReadWrite,
Create,
};

template <typename DbConnectionType>
class Transaction
{
public:
Transaction(Transaction&&) = default;
Transaction(const Transaction&) = delete;
Transaction& operator=(const Transaction&) = delete;

Transaction(DbConnectionType& db)
: _transaction(start_transaction(db))
{
}

void commit()
{
_transaction.commit();
}

void rollback()
{
_transaction.rollback();
}

private:
sqlpp::transaction_t<DbConnectionType> _transaction;
};

template <typename ResultField>
bool bool_value(ResultField&& value)
{
Expand Down
12 changes: 12 additions & 0 deletions include/infra/databaseaccessmode.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#pragma once

namespace inf::db {

enum class AccessMode
{
ReadOnly,
ReadWrite,
Create,
};

}
34 changes: 34 additions & 0 deletions include/infra/databasetransaction.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#pragma once

#include <sqlpp11/transaction.h>

namespace inf::db {

template <typename DbConnectionType>
class Transaction
{
public:
Transaction(Transaction&&) = default;
Transaction(const Transaction&) = delete;
Transaction& operator=(const Transaction&) = delete;

Transaction(DbConnectionType& db)
: _transaction(start_transaction(db))
{
}

void commit()
{
_transaction.commit();
}

void rollback()
{
_transaction.rollback();
}

private:
sqlpp::transaction_t<DbConnectionType> _transaction;
};

}

0 comments on commit 6df2317

Please sign in to comment.