From 83cfdf5ea0259f1fdf4ee3ea6046a7b694134161 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期三, 09 八月 2017 13:55:43 +0800 Subject: [PATCH] rtps server (not ok) --- VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h | 79 ++++++++++++++++++++++++++++++--------- 1 files changed, 61 insertions(+), 18 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h index 487cd8d..422237d 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFunc.h @@ -1,18 +1,61 @@ -// -// Created by pansen on 2017/8/4. -// - -#ifndef RTSPNATIVECODEC_REMOTEFUNC_H -#define RTSPNATIVECODEC_REMOTEFUNC_H - -#include <iostream> -#include "RemoteMethod.proto.h" -#include "CameraWrapperServer.h" - -class RemoteFunc{ -public: - -}; - -#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