| | |
| | | //
|
| | | // Created by pansen on 2017/8/4.
|
| | | //
|
| | |
|
| | | #include "RemoteFunc.h"
|
| | | #include <logger.h>
|
| | |
|
| | |
|
| | | bool RemoteServer::start() {
|
| | | LOG_INFO << "server_thd::start" << LOG_ENDL;
|
| | |
|
| | | if(running == true){
|
| | | LOG_INFO << "The server_thd is already running" << LOG_ENDL;
|
| | | return false;
|
| | | }
|
| | | running = true;
|
| | | pthread_mutex_init(&mutexSerevr, NULL); // 初始化互斥对象,动态加锁,用于server
|
| | |
|
| | | int retServer = pthread_create(&server_thd, NULL, RemoteServer::rServer_thd, this);
|
| | |
|
| | | if(retServer != 0)
|
| | | {
|
| | | LOGP(ERROR, "server_thd_create: %s/n", strerror(retServer));
|
| | | running = false;
|
| | | return false;
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | void RemoteServer::stop() {
|
| | | // LOG_INFO << "server_thd::stop" << LOG_ENDL;
|
| | | // if (!running)
|
| | | // return;
|
| | | // running = false;
|
| | | // pthread_mutex_destroy(&mutexSerevr);
|
| | | //#todo
|
| | | }
|
| | |
|
| | | template <class T>
|
| | | void *RemoteServer::rServer_thd(void *arg) {
|
| | | LOG_INFO << "RemoteServer::rServer_thd start" << LOG_ENDL;
|
| | | RemoteServer& rs = *(RemoteServer*)arg;
|
| | | capnp::EzRpcServer trpcServer(kj::heap<T>(),rs.host, rs.port);
|
| | | auto& serverLoop = trpcServer.getWaitScope();
|
| | | kj::NEVER_DONE.wait(serverLoop);
|
| | | LOG_INFO << "RemoteServer::rServer_thd stop" << LOG_ENDL;
|
| | | }
|
| | |
|
| | |
|
| | | // |
| | | // Created by pansen on 2017/8/4. |
| | | // |
| | | #include "RemoteFunc.h" |