Skip to content

Commit 516ff8a

Browse files
committed
refactor: use ipc client provided in common lib
1 parent 033329e commit 516ff8a

11 files changed

Lines changed: 29 additions & 295 deletions

File tree

infra/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
add_subdirectory(tsf)
2-
add_subdirectory(ipc)

infra/ipc/CMakeLists.txt

Lines changed: 0 additions & 14 deletions
This file was deleted.

infra/ipc/include/modian/ipc/input_protocol_pipe_client.h

Lines changed: 0 additions & 27 deletions
This file was deleted.

infra/ipc/src/input_protocol_pipe_client.cpp

Lines changed: 0 additions & 116 deletions
This file was deleted.

infra/tsf/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@ target_include_directories(modian_brush_tsf PUBLIC
2727
)
2828

2929
target_link_libraries(modian_brush_tsf PRIVATE
30+
modian::common::core::ipc
3031
modian::common::core::logger
3132
modian::common::service::protocol
32-
modian::brush::ipc
33+
modian::common::infra::ipc
3334
)
3435

3536
add_library(modian::brush::tsf ALIAS modian_brush_tsf)

infra/tsf/include/modian/tsf/tsf_key_event_service.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include <memory>
66

77
#include "modian/common/core/protocol/v1/input/instruction.h"
8-
#include "modian/ipc/input_protocol_pipe_client.h"
8+
#include "modian/common/core/ipc/isync_ipc_client.h"
99

1010
namespace modian::brush::infra::tsf {
1111
constexpr auto parse_content = [](const auto& p){ return p.payload; };
@@ -42,7 +42,7 @@ namespace modian::brush::infra::tsf {
4242
std::wstring input_pinyin_;
4343
TfClientId client_id_ = TF_CLIENTID_NULL;
4444

45-
std::shared_ptr<ipc::input_protocol_pipe_client> input_protocol_pipe_client_;
45+
std::unique_ptr<common::core::ipc::isync_ipc_client<std::string, std::string>> input_protocol_ipc_client_;
4646

4747
public:
4848
ITfComposition* current_composition_{nullptr};

infra/tsf/src/tsf_key_event_service.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@
99
#include "modian/common/core/protocol/v1/input/key_event.h"
1010
#include "modian/common/service/protocol/input_protocol_service.h"
1111

12+
#include "modian/common/infra/ipc/ipc_client_factory.h"
13+
1214
namespace modian::brush::infra::tsf {
15+
const std::string INPUT_PROTOCOL_PIPE_NAME = R"(\\.\pipe\modian_input_protocol_pipe)";
16+
1317
tsf_key_event_service::tsf_key_event_service(IUnknown* owner)
1418
: owner_{owner},
15-
input_protocol_pipe_client_{std::make_shared<ipc::input_protocol_pipe_client>()} {}
19+
input_protocol_ipc_client_{modian::common::infra::ipc::ipc_client_factory::create_sync_ipc_client(INPUT_PROTOCOL_PIPE_NAME)} {}
1620

1721
bool tsf_key_event_service::_is_key_supported(const WPARAM vk_code) {
1822
return (vk_code >= 'A' && vk_code <= 'Z') || (vk_code == VK_BACK) || (vk_code == VK_SPACE) || (vk_code == VK_LEFT) || (vk_code == VK_RIGHT);
@@ -42,7 +46,7 @@ namespace modian::brush::infra::tsf {
4246

4347
const auto key_event = common::core::protocol::input::v1::key_event::from_os_key(w_param);
4448
const std::string req_data = common::service::input_protocol_service::build_key_event_request(key_event);
45-
const std::string response = input_protocol_pipe_client_->send_and_wait(req_data);
49+
const std::string response = input_protocol_ipc_client_->sync_send(req_data);
4650
const auto [content, is_commit] = common::service::input_protocol_service::parse_instruction_response(response)
4751
.unpack(parse_content, parse_commit_flag);
4852

tests/integration_tests/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ add_executable(modian_brush_integration_tests
1515
)
1616

1717
target_link_libraries(modian_brush_integration_tests PRIVATE
18-
modian::brush::ipc
18+
modian::common::core::ipc
19+
modian::common::infra::ipc
1920
modian::brush::tsf
2021
modian::brush
2122
gtest_main

tests/integration_tests/modian_brush_integration_test.cpp

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
#include <filesystem>
44
#include <string>
55
#include <thread>
6-
#include "modian/ipc/input_protocol_pipe_client.h"
6+
7+
#include "modian/common/infra/ipc/ipc_client_factory.h"
78

89
namespace fs = std::filesystem;
910

@@ -58,25 +59,26 @@ class InkstoneIntegrationTest : public ::testing::Test {
5859
};
5960

6061
TEST_F(InkstoneIntegrationTest, DISABLED_ConnectAndInput) {
61-
modian::brush::infra::ipc::input_protocol_pipe_client client;
62+
const std::string INPUT_PROTOCOL_PIPE_NAME = R"(\\.\pipe\modian_input_protocol_pipe)";
63+
auto client = modian::common::infra::ipc::ipc_client_factory::create_sync_ipc_client(INPUT_PROTOCOL_PIPE_NAME);
6264

63-
std::string response = client.send_and_wait("n");
64-
response = client.send_and_wait("i");
65+
std::string response = client->sync_send("n");
66+
response = client->sync_send("i");
6567
EXPECT_EQ(response, "C:你");
6668

67-
client.send_and_wait("h");
68-
client.send_and_wait("a");
69-
response = client.send_and_wait("o");
69+
client->sync_send("h");
70+
client->sync_send("a");
71+
response = client->sync_send("o");
7072
EXPECT_EQ(response, "C:好");
7173

7274

73-
client.send_and_wait("m");
74-
response = client.send_and_wait("o");
75+
client->sync_send("m");
76+
response = client->sync_send("o");
7577
EXPECT_EQ(response, "C:墨");
7678

77-
client.send_and_wait("d");
78-
client.send_and_wait("i");
79-
client.send_and_wait("a");
80-
response = client.send_and_wait("n");
79+
client->sync_send("d");
80+
client->sync_send("i");
81+
client->sync_send("a");
82+
response = client->sync_send("n");
8183
EXPECT_EQ(response, "C:点");
82-
}
84+
}

tests/unit_tests/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
add_executable(modian_brush_unit_tests
22
infra/tsf/dll_main_test.cpp
3-
infra/ipc/input_protocol_pipe_client_test.cpp
43
)
54

65
target_include_directories(modian_brush_unit_tests PRIVATE ${CMAKE_SOURCE_DIR}/tests/unit_tests/include)
76

87
target_link_libraries(modian_brush_unit_tests PRIVATE
98
modian::common::core::protocol
9+
modian::common::core::ipc
1010
modian::common::core::logger
11-
modian::brush::ipc
1211
modian::brush::tsf
1312
modian::brush
1413
gtest_main

0 commit comments

Comments
 (0)