FOSSredder 0.5.0
Loading...
Searching...
No Matches
SqliteActorRepository.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 SqliteActorRepository(const std::string& dbPath);
25
31 explicit SqliteActorRepository(std::shared_ptr<SqliteDb> db);
32
37
42 void addActor(const std::shared_ptr<core::domain::Actor>& actor) override;
43
48 std::vector<std::shared_ptr<core::domain::Actor>> getActors() const override;
49
55 std::optional<std::shared_ptr<core::domain::Actor>>
56 getActorById(const std::string& id) const override;
57
62 void removeActor(const std::string& id) override;
63
68 void updateActor(const std::shared_ptr<core::domain::Actor>& actor) override;
69
74 void upsertActor(const std::shared_ptr<core::domain::Actor>& actor) override;
75
79 void clearActors() override;
80
85 sqlite3* sqliteHandle() const noexcept override;
86
87private:
88 struct Impl;
89 std::unique_ptr<Impl> pimpl_;
90};
Repository port for core::domain::Actor persistence operations.
SQLite connection handle provider used by persistence adapters.
void updateActor(const std::shared_ptr< core::domain::Actor > &actor) override
Update an existing actor.
void addActor(const std::shared_ptr< core::domain::Actor > &actor) override
Insert a new actor.
void upsertActor(const std::shared_ptr< core::domain::Actor > &actor) override
Insert or update an actor.
std::optional< std::shared_ptr< core::domain::Actor > > getActorById(const std::string &id) const override
Retrieve an actor by identifier.
~SqliteActorRepository() override
Destroy the repository.
void removeActor(const std::string &id) override
Remove an actor by identifier.
SqliteActorRepository(const std::string &dbPath)
Create an actor repository for the database at the given path.
void clearActors() override
Remove all actors.
std::vector< std::shared_ptr< core::domain::Actor > > getActors() const override
Retrieve all actors.
sqlite3 * sqliteHandle() const noexcept override
Return the SQLite handle.