Skip to content

Commit b48cba6

Browse files
committed
refactor: move icandidate observer back to inkstone core
1 parent 9ee959c commit b48cba6

8 files changed

Lines changed: 24 additions & 14 deletions

File tree

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#pragma once
2+
3+
#include <vector>
4+
#include <string>
5+
6+
namespace scriptorium::inkstone::core {
7+
class icandidate_observer {
8+
public:
9+
virtual void on_candidate_update(const std::vector<std::string>& candidates, size_t highlight_index) = 0;
10+
virtual ~icandidate_observer() = default;
11+
};
12+
}

inkstone/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
add_library(scriptorium_inkstone_server server.cpp)
22

33
target_link_libraries(scriptorium_inkstone_server PUBLIC
4-
scriptorium::felt::core::observer
54
scriptorium::felt::core::logger
65
scriptorium::felt::service::protocol
76
scriptorium::felt::infra::utils

inkstone/server.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@
33
#include <memory>
44
#include <string>
55

6-
#include "scriptorium/felt/core/observer/icandidate_observer.h"
76
#include "scriptorium/felt/core/logger/logger_service.h"
87
#include "scriptorium/felt/infra/ipc/ipc_server_factory.h"
98

109
#include "scriptorium/felt/service/protocol/input_protocol_service.h"
1110
#include "scriptorium/felt/service/protocol/ui_protocol_service.h"
1211

12+
#include "scriptorium/core/observer/icandidate_observer.h"
13+
1314
namespace scriptorium::inkstone {
1415
const std::string INPUT_PROTOCOL_PIPE_NAME = R"(\\.\pipe\scriptorium_input_protocol_pipe)";
1516
const std::string UI_PROTOCOL_PIPE_NAME = R"(\\.\pipe\scriptorium_ui_protocol_pipe)";
1617

17-
class ui_bridge : public felt::core::icandidate_observer {
18+
class ui_bridge : public core::icandidate_observer {
1819
public:
1920
explicit ui_bridge(std::unique_ptr<felt::core::ipc::iasync_ipc_server<std::string, std::string>> pipe)
2021
: async_server_(std::move(pipe)) {}

manager/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ add_library(scriptorium_inkstone_manager STATIC
77
target_link_libraries(
88
scriptorium_inkstone_manager
99
PRIVATE
10-
scriptorium::felt::core::observer
1110
scriptorium::felt::core::protocol
1211
scriptorium::felt::core::logger
1312
scriptorium::inkstone::core

manager/include/scriptorium/manager/candidate_manager.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include <string>
66
#include <shared_mutex>
77

8-
#include "scriptorium/felt/core/observer/icandidate_observer.h"
8+
#include "scriptorium/core/observer/icandidate_observer.h"
99

1010
namespace scriptorium::inkstone::manager {
1111
class candidate_manager {
@@ -18,13 +18,13 @@ namespace scriptorium::inkstone::manager {
1818

1919
[[nodiscard]] const std::vector<std::string>& get_candidates() const;
2020

21-
void add_observer(std::shared_ptr<felt::core::icandidate_observer> observer);
22-
void remove_observer(const std::shared_ptr<felt::core::icandidate_observer>& observer);
21+
void add_observer(std::shared_ptr<core::icandidate_observer> observer);
22+
void remove_observer(const std::shared_ptr<core::icandidate_observer>& observer);
2323
private:
2424
std::vector<std::string> candidates_;
2525
size_t highlight_index_{0};
2626

27-
std::vector<std::shared_ptr<felt::core::icandidate_observer>> observers_;
27+
std::vector<std::shared_ptr<core::icandidate_observer>> observers_;
2828

2929
mutable std::shared_mutex mutex_;
3030

manager/src/candidate_manager.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ namespace scriptorium::inkstone::manager {
4949
return candidates_;
5050
}
5151

52-
void candidate_manager::add_observer(std::shared_ptr<felt::core::icandidate_observer> observer) {
52+
void candidate_manager::add_observer(std::shared_ptr<core::icandidate_observer> observer) {
5353
std::unique_lock lock(mutex_);
5454

5555
if (std::ranges::find(observers_, observer) == observers_.end()) {
@@ -58,7 +58,7 @@ namespace scriptorium::inkstone::manager {
5858
}
5959
}
6060

61-
void candidate_manager::remove_observer(const std::shared_ptr<felt::core::icandidate_observer>& observer) {
61+
void candidate_manager::remove_observer(const std::shared_ptr<core::icandidate_observer>& observer) {
6262
std::unique_lock lock(mutex_);
6363

6464
const auto old_size = observers_.size();
@@ -70,7 +70,7 @@ namespace scriptorium::inkstone::manager {
7070
}
7171

7272
void candidate_manager::notify_observers() const {
73-
std::vector<std::shared_ptr<felt::core::icandidate_observer>> observers_copy;
73+
std::vector<std::shared_ptr<core::icandidate_observer>> observers_copy;
7474
{
7575
std::shared_lock lock(mutex_);
7676
observers_copy = observers_;

tests/unit_tests/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ add_executable(scriptorium_inkstone_unit_tests
66
)
77

88
target_link_libraries(scriptorium_inkstone_unit_tests PRIVATE
9-
scriptorium::felt::core::observer
109
scriptorium::felt::infra::utils
1110
scriptorium::inkstone::core
1211
scriptorium::inkstone::manager

tests/unit_tests/manager/candidate_manager_test.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#include "scriptorium/manager/candidate_manager.h"
55

6-
class mock_observer : public scriptorium::felt::core::icandidate_observer {
6+
class mock_observer : public scriptorium::inkstone::core::icandidate_observer {
77
public:
88
MOCK_METHOD(void, on_candidate_update, (const std::vector<std::string>&, size_t), (override));
99
};
@@ -20,7 +20,7 @@ TEST(candidate_manager_test, ShouldNotifyObserverOnUpdate) {
2020
manager->update_candidates({"ni", "hao"});
2121
}
2222

23-
class suicidal_observer : public scriptorium::felt::core::icandidate_observer, public std::enable_shared_from_this<suicidal_observer> {
23+
class suicidal_observer : public scriptorium::inkstone::core::icandidate_observer, public std::enable_shared_from_this<suicidal_observer> {
2424
public:
2525
std::weak_ptr<scriptorium::inkstone::manager::candidate_manager> manager_weak_;
2626
int call_count_ = 0;

0 commit comments

Comments
 (0)