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