FOSSredder 0.5.0
Loading...
Searching...
No Matches
SqliteStatementRepository.h
Go to the documentation of this file.
1
6
7#pragma once
8
11#include <memory>
12#include <string>
13
14class SqliteDb;
15
18public:
23 explicit SqliteStatementRepository(const std::string& dbPath);
24
31 const std::string& dbPath,
32 std::shared_ptr<core::ports::diagnostics::IErrorReporter> errorReporter);
33
39 explicit SqliteStatementRepository(std::shared_ptr<SqliteDb> db);
40
48 std::shared_ptr<SqliteDb> db,
49 std::shared_ptr<core::ports::diagnostics::IErrorReporter> errorReporter);
50
55
56 void addStatement(
57 const std::shared_ptr<core::domain::Statement>& statement) override;
58 std::vector<std::shared_ptr<core::domain::Statement>>
59 getStatements() const override;
60 std::optional<std::shared_ptr<core::domain::Statement>>
61 getStatementById(const std::string& id) const override;
62 void removeStatement(const std::string& id) override;
63 void updateStatement(
64 const std::shared_ptr<core::domain::Statement>& statement) override;
65
66 void upsertStatement(
67 const std::shared_ptr<core::domain::Statement>& statement) override;
68 void clearStatements() override;
69
70private:
71 struct Impl;
72 std::unique_ptr<Impl> pimpl_;
73};
Declares the structured diagnostics reporting port.
Repository port for core::domain::Statement persistence operations.
void updateStatement(const std::shared_ptr< core::domain::Statement > &statement) override
Update an existing statement.
std::vector< std::shared_ptr< core::domain::Statement > > getStatements() const override
Retrieve all statements.
~SqliteStatementRepository() override
Destroy the repository.
void addStatement(const std::shared_ptr< core::domain::Statement > &statement) override
Add a new statement.
void removeStatement(const std::string &id) override
Remove a statement by identifier.
SqliteStatementRepository(const std::string &dbPath)
Create a statement repository for the database at the given path.
void upsertStatement(const std::shared_ptr< core::domain::Statement > &statement) override
Insert or update a statement.
void clearStatements() override
Remove all statements.
std::optional< std::shared_ptr< core::domain::Statement > > getStatementById(const std::string &id) const override
Retrieve a statement by identifier.