Skip to content

Commit 3e6b3f1

Browse files
authored
Merge pull request #22 from hamidr/libevpp
Use Libevpp from a separate project
2 parents 8dd752d + 96ea9f8 commit 3e6b3f1

35 files changed

+131
-700
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "libs/libevpp"]
2+
path = libs/libevpp
3+
url = https://github.com/hamidr/libevpp

CMakeLists.txt

Lines changed: 12 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,21 @@ endif()
1717

1818
set(CMAKE_CXX_STANDARD 14)
1919
set(CMAKE_CXX_STANDARD_REQUIRED ON)
20-
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)
21-
set(PROJECT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src)
22-
set(PROJECT_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/includes)
20+
21+
set(PROJECT_SOURCE_DIR src)
22+
set(PROJECT_INCLUDE_DIR includes)
2323

2424
include_directories(${PROJECT_INCLUDE_DIR})
25-
include_directories("/usr/include/")
26-
include_directories("/usr/local/include")
25+
include_directories(/usr/include/)
26+
include_directories(/usr/local/include)
2727

28-
link_directories("/usr/lib")
29-
link_directories("/usr/local/lib")
28+
link_directories(/usr/lib)
29+
link_directories(/usr/local/lib)
3030

31+
add_subdirectory(libs/libevpp/)
3132

32-
add_library(event_loop
33-
${PROJECT_SOURCE_DIR}/event_loop/socket_watcher.cpp
34-
${PROJECT_SOURCE_DIR}/event_loop/event_loop_ev.cpp)
33+
include_directories(libs/libevpp/includes)
3534

36-
add_library(network
37-
${PROJECT_SOURCE_DIR}/network/async_socket.cpp
38-
${PROJECT_SOURCE_DIR}/network/unix_socket.cpp
39-
${PROJECT_SOURCE_DIR}/network/tcp_socket.cpp)
4035

4136
add_library(parser
4237
${PROJECT_SOURCE_DIR}/parser/base_resp_parser.cpp
@@ -59,19 +54,7 @@ if(CMAKE_COMPILER_IS_GNUCXX)
5954
set(CMAKE_EXE_LINKER_FLAGS "-s") ## Strip binary
6055
endif()
6156

62-
target_link_libraries(event_loop ev)
63-
target_link_libraries(async_redis event_loop parser network)
64-
65-
install(TARGETS event_loop
66-
LIBRARY DESTINATION /usr/local/lib/
67-
ARCHIVE DESTINATION /usr/local/lib/)
68-
69-
install(TARGETS parser
70-
LIBRARY DESTINATION /usr/local/lib/
71-
ARCHIVE DESTINATION /usr/local/lib/
72-
)
73-
74-
install(DIRECTORY ${PROJECT_INCLUDE_DIR}/ DESTINATION /usr/local/include)
57+
target_link_libraries(async_redis network parser)
7558

76-
add_executable (a1.out ${CMAKE_SOURCE_DIR}/test/main.cpp)
77-
target_link_libraries(a1.out async_redis)
59+
add_executable (a2.out test/main.cpp)
60+
target_link_libraries(a2.out async_redis)

examples/tcp_server.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
#include <unordered_map>
99

1010
namespace async_redis {
11-
namespace tcp_server {
11+
namespace examples {
1212

1313
class tcp_server
1414
{
1515
public:
16-
using tcp_socket = async_redis::network::tcp_socket;
17-
using async_socket = async_redis::network::async_socket;
16+
using tcp_socket = libevpp::network::tcp_socket;
17+
using async_socket = libevpp::network::async_socket;
1818

1919
tcp_server(event_loop::event_loop_ev &event_loop)
2020
: loop_(event_loop), listener_(event_loop) {

includes/connection.hpp renamed to includes/async_redis/connection.hpp

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

8-
#include <parser/base_resp_parser.h>
9-
#include <network/async_socket.hpp>
8+
#include <async_redis/parser/base_resp_parser.h>
9+
#include <libevpp/event_loop/event_loop_ev.h>
10+
#include <libevpp/network/async_socket.hpp>
11+
12+
using namespace libevpp;
1013

1114
namespace async_redis
1215
{
1316
class connection
1417
{
15-
using async_socket = network::async_socket;
18+
using async_socket = libevpp::network::async_socket;
1619

1720
public:
1821
using parser_t = parser::base_resp_parser::parser;
19-
using reply_cb_t = std::function<void (parser_t)>;
22+
using reply_cb_t = std::function<void (parser_t&)>;
2023

2124
connection(event_loop::event_loop_ev& event_loop);
2225

includes/monitor.hpp renamed to includes/async_redis/monitor.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
#pragma once
22

3-
#include <network/async_socket.hpp>
4-
#include <parser/base_resp_parser.h>
3+
#include <libevpp/network/async_socket.hpp>
4+
#include <async_redis/parser/base_resp_parser.h>
55

66
#include <unordered_map>
77
#include <list>
88
#include <string>
99

1010
using std::string;
11+
using namespace libevpp;
1112

1213
namespace async_redis
1314
{
@@ -24,7 +25,7 @@ namespace async_redis
2425
};
2526

2627
using parser_t = parser::base_resp_parser::parser;
27-
using watcher_cb_t = std::function<void (const string&, parser_t, EventState)>;
28+
using watcher_cb_t = std::function<void (const string&, parser_t&, EventState)>;
2829

2930
monitor(event_loop::event_loop_ev &event_loop);
3031

includes/parser/base_resp_parser.h renamed to includes/async_redis/parser/base_resp_parser.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ namespace async_redis {
3030
virtual int parse_append(const char*, ssize_t, bool&) = 0;
3131
virtual std::string to_string() const = 0;
3232
virtual void map(const caller_t &fn);
33+
bool is_array() const;
34+
bool is_number() const;
35+
bool is_string() const;
36+
bool is_enum() const;
37+
bool is_error() const;
3338

3439
void print();
3540
};

0 commit comments

Comments
 (0)