Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9ca0703

Browse files
committed
Fix CMakeLists.txt for compilation on windows
missing libraries for target hello_world_async_server_with_work_queue isnow added.also fixes the formatting error with using tabs instead of spaces, according tothe style guide (fix in hello_world_async_server_with_work_queue.cpp)
1 parent21c518d commit9ca0703

File tree

2 files changed

+124
-123
lines changed

2 files changed

+124
-123
lines changed

‎libs/network/example/CMakeLists.txt‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ target_link_libraries(hello_world_async_server_with_work_queue
8585
${BOOST_CLIENT_LIBS}
8686
${CMAKE_THREAD_LIBS_INIT}
8787
cppnetlib-uri
88-
cppnetlib-client-connections)
88+
cppnetlib-client-connections
89+
cppnetlib-server-parsers)
8990

9091
if (OPENSSL_FOUND)
9192
target_link_libraries(http_client${OPENSSL_LIBRARIES})
@@ -106,7 +107,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
106107
target_link_libraries(twitter_search rt)
107108
target_link_libraries(hello_world_server rt)
108109
target_link_libraries(hello_world_client rt)
109-
target_link_libraries(hello_world_async_server_with_work_queuecppnetlib-server-parsersrt)
110+
target_link_libraries(hello_world_async_server_with_work_queue rt)
110111
endif()
111112

112113
if (UNIX)

‎libs/network/example/http/hello_world_async_server_with_work_queue.cpp‎

Lines changed: 121 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#include<signal.h>
1919

2020
#defineLog(line) \
21-
do { std::cout << line << std::endl; }while(false)
21+
do { std::cout << line << std::endl; }while(false)
2222

2323
structhandler;
2424
typedef boost::network::http::async_server<handler> server;
@@ -28,66 +28,66 @@ typedef boost::network::http::async_server<handler> server;
2828
*/
2929
structrequest_data
3030
{
31-
const server::request req;
32-
server::connection_ptr conn;
31+
const server::request req;
32+
server::connection_ptr conn;
3333

34-
typedef boost::shared_ptr< request_data > pointer;
34+
typedef boost::shared_ptr< request_data > pointer;
3535

36-
request_data(server::requestconst& req,const server::connection_ptr& conn) :
37-
req(req), conn(conn)
38-
{
39-
}
36+
request_data(server::requestconst& req,const server::connection_ptr& conn) :
37+
req(req), conn(conn)
38+
{
39+
}
4040
};
4141

4242
/**
4343
* A basic work queue
4444
*/
4545
structwork_queue
4646
{
47-
typedef std::list<request_data::pointer> list;
47+
typedef std::list<request_data::pointer> list;
4848

49-
list requests;
50-
boost::mutex mutex;
49+
list requests;
50+
boost::mutex mutex;
5151

52-
inlinevoidput(const request_data::pointer& p_rd)
53-
{
54-
boost::unique_lock< boost::mutex >lock(mutex);
55-
requests.push_back(p_rd);
56-
(void)lock;
57-
}
52+
inlinevoidput(const request_data::pointer& p_rd)
53+
{
54+
boost::unique_lock< boost::mutex >lock(mutex);
55+
requests.push_back(p_rd);
56+
(void)lock;
57+
}
5858

59-
inline request_data::pointerget()
60-
{
61-
boost::unique_lock< boost::mutex >lock(mutex);
59+
inline request_data::pointerget()
60+
{
61+
boost::unique_lock< boost::mutex >lock(mutex);
6262

63-
request_data::pointer p_ret;
64-
if (!requests.empty()) {
65-
p_ret = requests.front();
66-
requests.pop_front();
67-
}
63+
request_data::pointer p_ret;
64+
if (!requests.empty()) {
65+
p_ret = requests.front();
66+
requests.pop_front();
67+
}
6868

69-
(void)lock;
69+
(void)lock;
7070

71-
return p_ret;
72-
}
71+
return p_ret;
72+
}
7373
};
7474

7575
structhandler
7676
{
77-
work_queue& queue;
78-
79-
handler(work_queue& queue) : queue(queue) { }
80-
81-
/**
82-
* Feed the work queue
83-
*
84-
* @param req
85-
* @param conn
86-
*/
87-
voidoperator()(server::requestconst& req,const server::connection_ptr& conn)
88-
{
89-
queue.put(boost::make_shared<request_data>(req, conn));
90-
}
77+
work_queue& queue;
78+
79+
handler(work_queue& queue) : queue(queue) { }
80+
81+
/**
82+
* Feed the work queue
83+
*
84+
* @param req
85+
* @param conn
86+
*/
87+
voidoperator()(server::requestconst& req,const server::connection_ptr& conn)
88+
{
89+
queue.put(boost::make_shared<request_data>(req, conn));
90+
}
9191
};
9292

9393
/**
@@ -98,11 +98,11 @@ struct handler
9898
* @param p_server_instance
9999
*/
100100
voidshut_me_down(
101-
const boost::system::error_code& error
102-
,int signal, boost::shared_ptr< server > p_server_instance)
101+
const boost::system::error_code& error
102+
,int signal, boost::shared_ptr< server > p_server_instance)
103103
{
104-
if (!error)
105-
p_server_instance->stop();
104+
if (!error)
105+
p_server_instance->stop();
106106
}
107107

108108
/**
@@ -112,89 +112,89 @@ void shut_me_down(
112112
*/
113113
voidprocess_request(work_queue& queue)
114114
{
115-
while(!boost::this_thread::interruption_requested()) {
116-
request_data::pointerp_req(queue.get());
117-
if (p_req) {
115+
while(!boost::this_thread::interruption_requested()) {
116+
request_data::pointerp_req(queue.get());
117+
if (p_req) {
118118

119-
// some heavy work!
120-
boost::this_thread::sleep(boost::posix_time::seconds(10));
119+
// some heavy work!
120+
boost::this_thread::sleep(boost::posix_time::seconds(10));
121121

122-
p_req->conn->set_status(server::connection::ok);
123-
p_req->conn->write("Hello, world!");
124-
}
122+
p_req->conn->set_status(server::connection::ok);
123+
p_req->conn->write("Hello, world!");
124+
}
125125

126-
boost::this_thread::sleep(boost::posix_time::microseconds(1000));
127-
}
126+
boost::this_thread::sleep(boost::posix_time::microseconds(1000));
127+
}
128128
}
129129

130130
intmain(void) try
131131
{
132-
// the thread group
133-
boost::shared_ptr< boost::thread_group >p_threads(
134-
boost::make_shared< boost::thread_group>());
135-
136-
// setup asio::io_service
137-
boost::shared_ptr< boost::asio::io_service >p_io_service(
138-
boost::make_shared< boost::asio::io_service >());
139-
boost::shared_ptr< boost::asio::io_service::work >p_work(
140-
boost::make_shared< boost::asio::io_service::work >(
141-
boost::ref(*p_io_service)));
142-
143-
// io_service threads
144-
{
145-
int n_threads =5;
146-
while(0 < n_threads--) {
147-
p_threads->create_thread(
148-
boost::bind(&boost::asio::io_service::run, p_io_service));
149-
}
150-
}
151-
152-
// the shared work queue
153-
work_queue queue;
154-
155-
// worker threads that will process the request; off the queue
156-
{
157-
int n_threads =5;
158-
while(0 < n_threads--) {
159-
p_threads->create_thread(
160-
boost::bind(process_request,boost::ref(queue)));
161-
}
162-
}
163-
164-
// setup the async server
165-
handlerrequest_handler(queue);
166-
boost::shared_ptr< server >p_server_instance(
167-
boost::make_shared<server>(
168-
server::options(request_handler).
169-
address("0.0.0.0")
170-
.port("8800")
171-
.io_service(p_io_service)
172-
.reuse_address(true)
173-
.thread_pool(
174-
boost::make_shared<boost::network::utils::thread_pool>(
175-
2 , p_io_service, p_threads))));
176-
177-
// setup clean shutdown
178-
boost::asio::signal_setsignals(*p_io_service, SIGINT, SIGTERM);
179-
signals.async_wait(boost::bind(shut_me_down, _1, _2, p_server_instance));
180-
181-
// run the async server
182-
p_server_instance->run();
183-
184-
// we are stopped - shutting down
185-
186-
p_threads->interrupt_all();
187-
188-
p_work.reset();
189-
p_io_service->stop();
190-
191-
p_threads->join_all();
192-
193-
Log("Terminated normally");
194-
exit(EXIT_SUCCESS);
132+
// the thread group
133+
boost::shared_ptr< boost::thread_group >p_threads(
134+
boost::make_shared< boost::thread_group>());
135+
136+
// setup asio::io_service
137+
boost::shared_ptr< boost::asio::io_service >p_io_service(
138+
boost::make_shared< boost::asio::io_service >());
139+
boost::shared_ptr< boost::asio::io_service::work >p_work(
140+
boost::make_shared< boost::asio::io_service::work >(
141+
boost::ref(*p_io_service)));
142+
143+
// io_service threads
144+
{
145+
int n_threads =5;
146+
while(0 < n_threads--) {
147+
p_threads->create_thread(
148+
boost::bind(&boost::asio::io_service::run, p_io_service));
149+
}
150+
}
151+
152+
// the shared work queue
153+
work_queue queue;
154+
155+
// worker threads that will process the request; off the queue
156+
{
157+
int n_threads =5;
158+
while(0 < n_threads--) {
159+
p_threads->create_thread(
160+
boost::bind(process_request,boost::ref(queue)));
161+
}
162+
}
163+
164+
// setup the async server
165+
handlerrequest_handler(queue);
166+
boost::shared_ptr< server >p_server_instance(
167+
boost::make_shared<server>(
168+
server::options(request_handler).
169+
address("0.0.0.0")
170+
.port("8800")
171+
.io_service(p_io_service)
172+
.reuse_address(true)
173+
.thread_pool(
174+
boost::make_shared<boost::network::utils::thread_pool>(
175+
2 , p_io_service, p_threads))));
176+
177+
// setup clean shutdown
178+
boost::asio::signal_setsignals(*p_io_service, SIGINT, SIGTERM);
179+
signals.async_wait(boost::bind(shut_me_down, _1, _2, p_server_instance));
180+
181+
// run the async server
182+
p_server_instance->run();
183+
184+
// we are stopped - shutting down
185+
186+
p_threads->interrupt_all();
187+
188+
p_work.reset();
189+
p_io_service->stop();
190+
191+
p_threads->join_all();
192+
193+
Log("Terminated normally");
194+
exit(EXIT_SUCCESS);
195195
}
196196
catch(const std::exception& e)
197197
{
198-
Log("Abnormal termination - exception:"<<e.what());
199-
exit(EXIT_FAILURE);
198+
Log("Abnormal termination - exception:"<<e.what());
199+
exit(EXIT_FAILURE);
200200
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp