FOSSredder 0.5.0
Loading...
Searching...
No Matches
SqliteAnalysisRepository.h
Go to the documentation of this file.
1
5
6#pragma once
7
10
11#include <memory>
12#include <string>
13
14class SqliteDb;
15
19public:
24 explicit SqliteAnalysisRepository(const std::string& dbPath);
25
31 explicit SqliteAnalysisRepository(std::shared_ptr<SqliteDb> db);
32
37
42 void
43 addAnalysis(const std::shared_ptr<core::domain::Analysis>& analysis) override;
44
49 std::vector<std::shared_ptr<core::domain::Analysis>>
50 getAnalyses() const override;
51
57 std::optional<std::shared_ptr<core::domain::Analysis>>
58 getAnalysisById(const std::string& id) const override;
59
64 void removeAnalysis(const std::string& id) override;
65
70 void updateAnalysis(
71 const std::shared_ptr<core::domain::Analysis>& analysis) override;
72
77 void upsertAnalysis(
78 const std::shared_ptr<core::domain::Analysis>& analysis) override;
79
83 void clearAnalyses() override;
84
89 sqlite3* sqliteHandle() const noexcept override;
90
91private:
92 struct Impl;
93 std::unique_ptr<Impl> pimpl_;
94};
Repository port for core::domain::Analysis persistence operations.
SQLite connection handle provider used by persistence adapters.
void addAnalysis(const std::shared_ptr< core::domain::Analysis > &analysis) override
Insert a new analysis.
SqliteAnalysisRepository(const std::string &dbPath)
Create an analysis repository for the database at the given path.
std::vector< std::shared_ptr< core::domain::Analysis > > getAnalyses() const override
Retrieve all analyses.
std::optional< std::shared_ptr< core::domain::Analysis > > getAnalysisById(const std::string &id) const override
Retrieve an analysis by identifier.
void upsertAnalysis(const std::shared_ptr< core::domain::Analysis > &analysis) override
Insert or update an analysis.
void clearAnalyses() override
Remove all analyses.
~SqliteAnalysisRepository() override
Destroy the repository.
void removeAnalysis(const std::string &id) override
Remove an analysis by identifier.
sqlite3 * sqliteHandle() const noexcept override
Return the SQLite handle.
void updateAnalysis(const std::shared_ptr< core::domain::Analysis > &analysis) override
Update an existing analysis.