| | |
| | | #include "ev_server.h"
|
| | | #include "ev_proto.h"
|
| | | #include "face_daemon_proto.h"
|
| | | #include "sample_face_search.h"
|
| | | #include "STFaceCache.h"
|
| | | #include <PbFaceList.pb.h>
|
| | |
|
| | |
| | | bool send_SensetimeFaceDetectResultJson(EVClientStub& client, const fdr_vec_t& result)
|
| | | {
|
| | | std::stringstream ss;
|
| | | ss << "{" << std::endl;
|
| | | ss << "\"ret\":" << WRAPPER_TEXT(0) << "," << std::endl;
|
| | | ss << "\"count\":" << WRAPPER_TEXT(result.size()) << "," << std::endl;
|
| | | ss << "{" << LOG_ENDL;
|
| | | ss << "\"ret\":" << WRAPPER_TEXT(0) << "," << LOG_ENDL;
|
| | | ss << "\"count\":" << WRAPPER_TEXT(result.size()) << "," << LOG_ENDL;
|
| | | ss << "\"result\":[";
|
| | | for(fdr_vec_t::const_iterator iter = result.begin(); iter != result.end(); ++iter)
|
| | | {
|
| | |
| | | if (iter != std::prev(result.end()))
|
| | | ss << ",";
|
| | | }
|
| | | ss << "]" << std::endl;
|
| | | ss << "]" << LOG_ENDL;
|
| | | ss << "}";
|
| | |
|
| | | std::string output(ss.str());//#todo avoid copy
|
| | |
| | | {
|
| | | //#test send //00038300FE4B0000+pb
|
| | | //EVPHeader* evpHeader = (EVPHeader*)client.recvBuff;
|
| | | //LOG_DEBUG << "cmd=" << evpHeader->cmd << ", size=" << evpHeader->size << ", \t" << (char*)(evpHeader + sizeof(EVPHeader)) << std::endl;
|
| | | //LOG_DEBUG << "cmd=" << evpHeader->cmd << ", size=" << evpHeader->size << ", \t" << (char*)(evpHeader + sizeof(EVPHeader)) << LOG_ENDL;
|
| | | //return true;
|
| | |
|
| | | EVPHeader* evpHeader = (EVPHeader*)client.recvBuff;
|
| | |
| | | EVPHeader* evpHeader = (EVPHeader*)client.recvBuff;
|
| | | if (evpHeader->size != client.recvBuffSize)
|
| | | {
|
| | | LOG_WARN << "Truncated buffer " << (evpHeader->size - client.recvBuffSize) << " bytes" << std::endl;
|
| | | LOG_WARN << "Truncated buffer " << (evpHeader->size - client.recvBuffSize) << " bytes" << LOG_ENDL;
|
| | | return false;
|
| | | }
|
| | |
|
| | |
| | | return ev_proc_SensetimeFaceDetectPB(client);
|
| | | break;
|
| | | default:
|
| | | LOG_WARN << "Unknown command" << std::endl;
|
| | | LOG_WARN << "Unknown command" << LOG_ENDL;
|
| | | ev_send_status_packet(client, EVPStatus::EVPS_COMMAND_ERROR);
|
| | | return false;
|
| | | break;
|
| | |
| | | EVPHeader* evpHeader = (EVPHeader*)client.recvBuff;
|
| | | if (evpHeader->size != client.recvBuffSize)
|
| | | {
|
| | | LOG_WARN << "Truncated buffer " << (evpHeader->size - client.recvBuffSize) << " bytes" << std::endl;
|
| | | LOG_WARN << "Truncated buffer " << (evpHeader->size - client.recvBuffSize) << " bytes" << LOG_ENDL;
|
| | | return false;
|
| | | }
|
| | |
|
| | |
| | | return ev_dispatcher_proto_pb(client);
|
| | | break;
|
| | | default:
|
| | | LOG_WARN << "Unknown proto" << std::endl;
|
| | | LOG_WARN << "Unknown proto" << LOG_ENDL;
|
| | | ev_send_status_packet(client, EVPStatus::EVPS_PROTO_ERROR);
|
| | | return false;
|
| | | break;
|
| | |
| | |
|
| | | signal(SIGINT, _sigint);
|
| | |
|
| | | if (!g_STFaceCache.init())
|
| | | {
|
| | | LOG_WARN << "g_STFaceCache.init return false" << LOG_ENDL;
|
| | | return EXIT_FAILURE;
|
| | | }
|
| | | |
| | | if (!g_STFaceCache.load_dbs())
|
| | | {
|
| | | LOG_WARN << "g_STFaceCache.load_dbs return false" << LOG_ENDL;
|
| | | return EXIT_FAILURE;
|
| | | }
|
| | | |
| | | evclient_proc = ev_dispatcher_proto;
|
| | | return server_main(argc, argv);
|
| | | int ec = server_main(argc, argv);
|
| | | |
| | | g_STFaceCache.close_dbs();
|
| | | g_STFaceCache.finit();
|
| | | |
| | | return ec;
|
| | | }
|