From e26a5550539fa0cad91313bf9670df605199a324 Mon Sep 17 00:00:00 2001
From: pans <pans@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期二, 15 八月 2017 13:55:25 +0800
Subject: [PATCH] capnproto fix bug

---
 VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp |  104 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 82 insertions(+), 22 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
index ad412e8..5d7a9a0 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RemoteFuncServer.cpp
@@ -2,46 +2,100 @@
 // 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);
+#include <string>
+#include <iostream>
+using namespace std;
+
+//#todo 淇敼鏈嶅姟绾跨▼鏋勯�犲弬鏁颁紶鍏ユ柟寮�
+RemoteServer<RtspFaceViewImpl> remoteServer("192.168.1.94", 8112);
 static RtspFaceDetectClient* rtspFaceDetectClient = nullptr;
 
 void startRemoteServer()
 {
+;
 	AppConfig config;
 	config.loadConfig("data/config.cfg");
-	remoteServer.start();
+    remoteServer.start();
+//    //#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
 }
 
-RtspFaceDetectClient* getRtspFaceDetectClient()
+RtspFaceDetectClient * getRtspFaceDetectClient()
 {
-	if (rtspFaceDetectClient != nullptr)
-	{
-		try
-		{
-			rtspFaceDetectClient = new RtspFaceDetectClient;
-		}
-		catch(...)
-		{
-			delete rtspFaceDetectClient;
-			rtspFaceDetectClient = nullptr;
-			LOG_ERROR << "aaaaaaaa"<<LOG_ENDL;//#todo
-		}
-	}
-	return rtspFaceDetectClient;
+    if(rtspFaceDetectClient == nullptr)
+        rtspFaceDetectClient = new RtspFaceDetectClient;
+    return rtspFaceDetectClient;
 }
 
-//#todo
+//#todo 鏋勯�犲嚱鏁颁慨鏀�
 RtspFaceDetectClient::RtspFaceDetectClient() :
-		rpcClient("127.0.0.1", 8111), RtspFaceDetect::Client(rpcClient.getMain<RtspFaceDetect>())
-{}
+        rpcClient(nullptr)
+{
+}
+
+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 rpcClient.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)
@@ -49,6 +103,8 @@
 	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)
@@ -56,6 +112,8 @@
 	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)
@@ -63,4 +121,6 @@
 	auto results = context.getResults();
 	remoteSetFaceLabel(context.getParams(), results);
 	context.setResults(results);
+    LOG_ERROR <<"setFaceLabel : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
+    return kj::READY_NOW;
 }

--
Gitblit v1.8.0