Skip to content

Commit 740d8de

Browse files
authored
Restructure Example Folder and Add LSP Example (#25)
1 parent bf46052 commit 740d8de

File tree

17 files changed

+212
-56
lines changed

17 files changed

+212
-56
lines changed

CMakeLists.txt

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -32,36 +32,8 @@ target_link_libraries(jsonrpc PUBLIC
3232
asio::asio
3333
)
3434

35-
# Add example executables
36-
add_executable(stdio_client examples/stdio_client.cpp)
37-
target_link_libraries(stdio_client PRIVATE jsonrpc)
38-
39-
add_executable(stdio_server examples/stdio_server.cpp)
40-
target_link_libraries(stdio_server PRIVATE jsonrpc)
41-
42-
add_executable(pipe_client examples/pipe_client.cpp)
43-
target_link_libraries(pipe_client PRIVATE jsonrpc)
44-
45-
add_executable(pipe_server examples/pipe_server.cpp)
46-
target_link_libraries(pipe_server PRIVATE jsonrpc)
47-
48-
add_executable(framed_pipe_client examples/framed_pipe_client.cpp)
49-
target_link_libraries(framed_pipe_client PRIVATE jsonrpc)
50-
51-
add_executable(framed_pipe_server examples/framed_pipe_server.cpp)
52-
target_link_libraries(framed_pipe_server PRIVATE jsonrpc)
53-
54-
add_executable(socket_client examples/socket_client.cpp)
55-
target_link_libraries(socket_client PRIVATE jsonrpc)
56-
57-
add_executable(socket_server examples/socket_server.cpp)
58-
target_link_libraries(socket_server PRIVATE jsonrpc)
59-
60-
add_executable(framed_socket_client examples/framed_socket_client.cpp)
61-
target_link_libraries(framed_socket_client PRIVATE jsonrpc)
62-
63-
add_executable(framed_socket_server examples/framed_socket_server.cpp)
64-
target_link_libraries(framed_socket_server PRIVATE jsonrpc)
35+
# Include examples CMake file
36+
add_subdirectory(examples)
6537

6638
# Ensure compile_commands.json is moved after build
6739
add_custom_command(

examples/BUILD.bazel

Lines changed: 41 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,101 @@
1-
# examples/BUILD
1+
# examples/BUILD.bazel
22

3-
# Standard I/O examples
3+
# Calculator example using Standard I/O transport
44
cc_binary(
55
name = "stdio_client",
6-
srcs = ["stdio_client.cpp"],
6+
srcs = ["calculator_example/stdio/client.cpp"],
77
deps = ["//src:jsonrpc_lib"],
88
)
99

1010
cc_binary(
1111
name = "stdio_server",
1212
srcs = [
13-
"calculator.hpp",
14-
"stdio_server.cpp",
13+
"calculator_example/calculator.hpp",
14+
"calculator_example/stdio/server.cpp",
1515
],
1616
deps = ["//src:jsonrpc_lib"],
1717
)
1818

19-
# Unix domain socket examples
19+
# Calculator example using Unix domain socket (pipe) transport
2020
cc_binary(
2121
name = "pipe_client",
22-
srcs = ["pipe_client.cpp"],
22+
srcs = ["calculator_example/pipe/client.cpp"],
2323
deps = ["//src:jsonrpc_lib"],
2424
)
2525

2626
cc_binary(
2727
name = "pipe_server",
2828
srcs = [
29-
"calculator.hpp",
30-
"pipe_server.cpp",
29+
"calculator_example/calculator.hpp",
30+
"calculator_example/pipe/server.cpp",
3131
],
3232
deps = ["//src:jsonrpc_lib"],
3333
)
3434

35-
# Framed Unix domain socket examples
35+
# Calculator example using Framed Unix domain socket transport
3636
cc_binary(
3737
name = "framed_pipe_client",
38-
srcs = ["framed_pipe_client.cpp"],
38+
srcs = ["calculator_example/framed_pipe/client.cpp"],
3939
deps = ["//src:jsonrpc_lib"],
4040
)
4141

4242
cc_binary(
4343
name = "framed_pipe_server",
4444
srcs = [
45-
"calculator.hpp",
46-
"framed_pipe_server.cpp",
45+
"calculator_example/calculator.hpp",
46+
"calculator_example/framed_pipe/server.cpp",
4747
],
4848
deps = ["//src:jsonrpc_lib"],
4949
)
5050

51-
# Socket examples
51+
# Calculator example using ASIO socket transport
5252
cc_binary(
5353
name = "socket_client",
54-
srcs = ["socket_client.cpp"],
54+
srcs = ["calculator_example/socket/client.cpp"],
5555
deps = ["//src:jsonrpc_lib"],
5656
)
5757

5858
cc_binary(
5959
name = "socket_server",
6060
srcs = [
61-
"calculator.hpp",
62-
"socket_server.cpp",
61+
"calculator_example/calculator.hpp",
62+
"calculator_example/socket/server.cpp",
6363
],
6464
deps = ["//src:jsonrpc_lib"],
6565
)
6666

67-
# Framed socket examples
67+
# Calculator example using Framed ASIO socket transport
6868
cc_binary(
6969
name = "framed_socket_client",
70-
srcs = ["framed_socket_client.cpp"],
70+
srcs = ["calculator_example/framed_socket/client.cpp"],
7171
deps = ["//src:jsonrpc_lib"],
7272
)
7373

7474
cc_binary(
7575
name = "framed_socket_server",
7676
srcs = [
77-
"calculator.hpp",
78-
"framed_socket_server.cpp",
77+
"calculator_example/calculator.hpp",
78+
"calculator_example/framed_socket/server.cpp",
79+
],
80+
deps = ["//src:jsonrpc_lib"],
81+
)
82+
83+
# LSP example using Unix domain socket (pipe) transport
84+
cc_binary(
85+
name = "pipe_lsp_server",
86+
srcs = [
87+
"lsp_example/pipe/lsp_server.cpp",
88+
"lsp_example/utils.hpp",
89+
],
90+
deps = ["//src:jsonrpc_lib"],
91+
)
92+
93+
# LSP example using ASIO socket transport
94+
cc_binary(
95+
name = "socket_lsp_server",
96+
srcs = [
97+
"lsp_example/socket/lsp_server.cpp",
98+
"lsp_example/utils.hpp",
7999
],
80100
deps = ["//src:jsonrpc_lib"],
81101
)

examples/CMakeLists.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# examples/CMakeLists.txt
2+
3+
# Calculator example using Standard I/O transport
4+
add_executable(stdio_client calculator_example/stdio/client.cpp)
5+
target_link_libraries(stdio_client PRIVATE jsonrpc)
6+
7+
add_executable(stdio_server calculator_example/stdio/server.cpp)
8+
target_link_libraries(stdio_server PRIVATE jsonrpc)
9+
10+
# Calculator example using Unix domain socket (pipe) transport
11+
add_executable(pipe_client calculator_example/pipe/client.cpp)
12+
target_link_libraries(pipe_client PRIVATE jsonrpc)
13+
14+
add_executable(pipe_server calculator_example/pipe/server.cpp)
15+
target_link_libraries(pipe_server PRIVATE jsonrpc)
16+
17+
# Calculator example using Framed Unix domain socket transport
18+
add_executable(framed_pipe_client calculator_example/framed_pipe/client.cpp)
19+
target_link_libraries(framed_pipe_client PRIVATE jsonrpc)
20+
21+
add_executable(framed_pipe_server calculator_example/framed_pipe/server.cpp)
22+
target_link_libraries(framed_pipe_server PRIVATE jsonrpc)
23+
24+
# Calculator example using ASIO socket transport
25+
add_executable(socket_client calculator_example/socket/client.cpp)
26+
target_link_libraries(socket_client PRIVATE jsonrpc)
27+
28+
add_executable(socket_server calculator_example/socket/server.cpp)
29+
target_link_libraries(socket_server PRIVATE jsonrpc)
30+
31+
# Calculator example using Framed ASIO socket transport
32+
add_executable(framed_socket_client calculator_example/framed_socket/client.cpp)
33+
target_link_libraries(framed_socket_client PRIVATE jsonrpc)
34+
35+
add_executable(framed_socket_server calculator_example/framed_socket/server.cpp)
36+
target_link_libraries(framed_socket_server PRIVATE jsonrpc)
37+
38+
# LSP example using Unix domain socket (pipe) transport
39+
add_executable(pipe_lsp_server lsp_example/pipe/lsp_server.cpp)
40+
target_link_libraries(pipe_lsp_server PRIVATE jsonrpc)
41+
42+
# LSP example using ASIO socket transport
43+
add_executable(socket_lsp_server lsp_example/socket/lsp_server.cpp)
44+
target_link_libraries(socket_lsp_server PRIVATE jsonrpc)
File renamed without changes.
File renamed without changes.

examples/framed_pipe_server.cpp renamed to examples/calculator_example/framed_pipe/server.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include <spdlog/sinks/basic_file_sink.h>
77
#include <spdlog/spdlog.h>
88

9-
#include "calculator.hpp"
9+
#include "../calculator.hpp"
1010

1111
using jsonrpc::server::Server;
1212
using jsonrpc::transport::FramedPipeTransport;
File renamed without changes.

examples/framed_socket_server.cpp renamed to examples/calculator_example/framed_socket/server.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include <spdlog/sinks/basic_file_sink.h>
77
#include <spdlog/spdlog.h>
88

9-
#include "calculator.hpp"
9+
#include "../calculator.hpp"
1010
#include "jsonrpc/transport/framed_socket_transport.hpp"
1111

1212
using jsonrpc::server::Server;
File renamed without changes.

examples/pipe_server.cpp renamed to examples/calculator_example/pipe/server.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include <spdlog/sinks/basic_file_sink.h>
77
#include <spdlog/spdlog.h>
88

9-
#include "calculator.hpp"
9+
#include "../calculator.hpp"
1010

1111
using jsonrpc::server::Server;
1212
using jsonrpc::transport::PipeTransport;

0 commit comments

Comments
 (0)