From 4d22d8d9332535a9c2f65e0e501a3eefbbd0ae30 Mon Sep 17 00:00:00 2001 From: chenke <chenke@454eff88-639b-444f-9e54-f578c98de674> Date: 星期三, 09 八月 2017 12:45:29 +0800 Subject: [PATCH] JsonCpp和CapnpProtocol功能初步实现 --- VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h | 96 ++++++++++++++++++++++++++++++----------------- 1 files changed, 61 insertions(+), 35 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h index 83c55c0..422237d 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h @@ -1,35 +1,61 @@ -// -// Created by pansen on 2017/8/4. -// - -#ifndef RTSPNATIVECODEC_REMOTEFUNC_H -#define RTSPNATIVECODEC_REMOTEFUNC_H - -#include <iostream> -#include <capnp/ez-rpc.h> -#include "RemoteMethod.proto.h" - -//::capnp::Capability::Server -template <class T> class RemoteServer{ -public: -// RemoteServer(std::string host, int port, capnp::EzRpcServer rpcServer) : rpcServer(rpcServer) { -// this->rpcServer(kj::heap<T>(),host, port); -// //.rpcServer(kj::heap<T>(),host, port); -// }; - RemoteServer(std::string host,int port):host(host),port(port){}; - ~RemoteServer(){}; - - bool start(); - void stop(); - bool running; -private: - std::string host; - int port; - - static void *rServer_thd(void *arg); - - pthread_t server_thd; - pthread_mutex_t mutexSerevr; -}; -#endif //RTSPNATIVECODEC_REMOTEFUNC_H - +// +// Created by pansen on 2017/8/4. +// + +#ifndef RTSPNATIVECODEC_REMOTEFUNC_H +#define RTSPNATIVECODEC_REMOTEFUNC_H + +#include <iostream> +#include <capnp/ez-rpc.h> +#include <logger.h> + +template <class T> class RemoteServer{ +public: + RemoteServer(std::string host,int port):host(host),port(port){}; + ~RemoteServer(){}; + + bool 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_thid, NULL, RemoteServer::rServer_thd, this); + + if(retServer != 0) + { + LOGP(ERROR, "server_thd_create: %s/n", strerror(retServer)); + running = false; + return false; + } + return true; + } + void stop(){ +// LOG_INFO << "server_thd::stop" << LOG_ENDL; +// if (!running) +// return; +// running = false; +// pthread_mutex_destroy(&mutexSerevr); + //#todo + } + + bool running; +private: + std::string host; + int port; + + static void *rServer_thd(void *arg) { + RemoteServer& rs = *(RemoteServer*)arg; + capnp::EzRpcServer trpcServer(kj::heap<T>(),rs.host, rs.port); + auto& serverLoop = trpcServer.getWaitScope(); + kj::NEVER_DONE.wait(serverLoop); + } + pthread_t server_thid; + pthread_mutex_t mutexSerevr; +}; +#endif //RTSPNATIVECODEC_REMOTEFUNC_H + -- Gitblit v1.8.0