From 2b43077d967c28fe99e1ff2b99f19e1433c710d9 Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期四, 17 八月 2017 12:28:36 +0800
Subject: [PATCH] aaaaa

---
 VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp |  141 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 113 insertions(+), 28 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
index 963b60c..3c77217 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
@@ -2,41 +2,126 @@
 // Created by pansen on 2017/8/4.
 //
 #include "AppConfig.h"
-#include "RemoteFunc.h"
 #include "RemoteFuncServer.h"
+#include "RemoteFunc.h"
 #include "RtspNativeCodecJNIServer.h"
-RemoteServer<RtspFaceViewImpl> remoteServer("127.0.0.1",8112);
-RtspFaceDetectClient rtspFaceDetectClient;
-void startRemoteServer(){
-    AppConfig config;
-    config.loadConfig("data/config.cfg");
+
+#include <string>
+#include <iostream>
+using namespace std;
+
+//#todo 淇敼鏈嶅姟绾跨▼鏋勯�犲弬鏁颁紶鍏ユ柟寮�
+RemoteServer<RtspFaceViewImpl> remoteServer("192.168.1.94", 8112);
+//RemoteServer<RtspFaceViewImpl> remoteServer("192.168.1.97", 8112);
+static RtspFaceDetectClient* rtspFaceDetectClient = nullptr;
+
+void startRemoteServer()
+{
+;
+	AppConfig config;
+	config.loadConfig("data/config.cfg");
     remoteServer.start();
-}
-RtspFaceDetectClient& getRtspFaceDetectClient(){
-   return rtspFaceDetectClient;
-}
-//#todo
-RtspFaceDetectClient::RtspFaceDetectClient():rpcClient("127.0.0.1",8111),
-                                             RtspFaceDetect::Client(rpcClient.getMain<RtspFaceDetect>())
-{}
-::kj::WaitScope& RtspFaceDetectClient::getWaitScope() {
-    return rpcClient.getWaitScope();
+//    //#todo 璋冪敤浣嶇疆绉诲姩
+//    try
+//    {
+//        RtspFaceDetectClient rtspFaceDetectClient = RtspFaceDetectClient();
+//        RtspFaceDetect::Client& rClient = rtspFaceDetectClient.getClient();
+//
+//        auto& waitScope = rtspFaceDetectClient.getWaitScope();
+//        auto  request = rClient.fireFaceCountListenerRequest();
+//        auto sendAct = request.send();
+//        sendAct.wait(waitScope);
+//    }
+//    catch (const kj::Exception& e)
+//    {
+//        cout << e.getDescription().cStr() << endl;
+//        return;
+//    }
+    //#end
 }
 
-::kj::Promise<void> RtspFaceViewImpl::getFaceList(GetFaceListContext context) {
-    auto results = context.getResults();
-    remoteGetFaceList(context.getParams(), results);
-    context.setResults(results);
+RtspFaceDetectClient * getRtspFaceDetectClient()
+{
+    if(rtspFaceDetectClient == nullptr)
+        rtspFaceDetectClient = new RtspFaceDetectClient;
+    return rtspFaceDetectClient;
 }
 
-::kj::Promise<void> RtspFaceViewImpl::getFaceImages(GetFaceImagesContext context){
-    auto results = context.getResults();
-    remoteGetFaceListImage(context.getParams(), results);
-    context.setResults(results);
+//#todo 鏋勯�犲嚱鏁颁慨鏀�
+RtspFaceDetectClient::RtspFaceDetectClient() :
+        rpcClient(nullptr)
+{
 }
 
-::kj::Promise<void> RtspFaceViewImpl::setFaceLabel(SetFaceLabelContext context) {
-    auto results = context.getResults();
-    remoteSetFaceLabel(context.getParams(), results);
-    context.setResults(results);
+RtspFaceDetect::Client* RtspFaceDetectClient::getClient()
+{
+    LOG_INFO << "new client @ " << (int*)client << LOG_ENDL;
+
+    if (client == nullptr) {
+        LOG_INFO << "new client 2" << LOG_ENDL;
+        try
+        {
+            client = new RtspFaceDetect::Client(getEzRpcClient()->getMain<RtspFaceDetect>());
+        }
+        catch (const kj::Exception& e)
+        {
+            LOG_ERROR << "new client error" << LOG_ENDL;
+            delete client;
+            client = nullptr;
+            throw e;
+        }
+    }
+    return client;
+}
+
+::kj::WaitScope &RtspFaceDetectClient::getWaitScope()
+{
+    return getEzRpcClient()->getWaitScope();
+}
+
+capnp::EzRpcClient * RtspFaceDetectClient::getEzRpcClient()
+{
+    if (rpcClient == nullptr) {
+        try
+        {
+            //#todo ip test
+            //rpcClient = new capnp::EzRpcClient("192.168.1.89", 8111);
+            //client
+           rpcClient = new capnp::EzRpcClient("192.168.1.97", 8111);
+        }
+        catch (const kj::Exception& e)
+        {
+            delete rpcClient;
+            rpcClient = nullptr;
+            throw e;
+        }
+    }
+    return rpcClient;
+}
+
+::kj::Promise<void> RtspFaceViewImpl::getFaceList(GetFaceListContext context)
+{
+	auto results = context.getResults();
+	remoteGetFaceList(context.getParams(), results);
+	context.setResults(results);
+    LOG_ERROR <<"getFaceList : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
+    return kj::READY_NOW;
+}
+
+::kj::Promise<void> RtspFaceViewImpl::getFaceImages(GetFaceImagesContext context)
+{
+	auto results = context.getResults();
+	remoteGetFaceListImage(context.getParams(), results);
+	context.setResults(results);
+    LOG_ERROR <<"getFaceImages : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
+    return kj::READY_NOW;
+}
+
+::kj::Promise<void> RtspFaceViewImpl::setFaceLabel(SetFaceLabelContext context)
+{
+	auto results = context.getResults();
+	remoteSetFaceLabel(context.getParams(), results);
+	context.setResults(results);
+    LOG_ERROR <<"setFaceLabel : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
+    return kj::READY_NOW;
 }

--
Gitblit v1.8.0