// // Created by pans on 4/27/18. // #ifndef FACESEARCHSERVER_FACEFEATURESEARCHSERVERI_H #define FACESEARCHSERVER_FACEFEATURESEARCHSERVERI_H #include #include #include #include #include #include #include #include "FaceDBCompareServer.h" //struct TableInfo { // std::string tab_name; // std::string startTime; // std::string endTime; // std::string bwType; // std::string create_by; //}; static bool t_live_ret = true; static pthread_cond_t func_cond(PTHREAD_COND_INITIALIZER); static pthread_mutex_t func_cond_mutex(PTHREAD_MUTEX_INITIALIZER); void erlangCallBackFunc(std::string); class FaceFeatureSearchServerI : public FaceSearch::FaceFeatureSearchServer { public: FaceFeatureSearchServerI(); FaceFeatureSearchServerI(Ice::CommunicatorPtr &ich, std::string nodeName, std::string cookie); virtual ~FaceFeatureSearchServerI(); public: virtual ::FaceSearch::FaceResults faceSearchMax(const ::FaceSearch::Data &, const ::std::string &, const ::Ice::Current & = ::Ice::emptyCurrent); virtual ::FaceSearch::FaceResults faceSearchTopN(const ::FaceSearch::Data &, const ::std::string &, ::Ice::Int, ::Ice::Float, const ::Ice::Current & = ::Ice::emptyCurrent); private: bool initErlang(std::string nodeName, std::string cookie); //#todo delete cache //#todo loadData static bool loadFeatureData(FaceFeatureSearchServerI *faceFea); static void dataUpdate(FaceFeatureSearchServerI *faceFea); static void waitTables(FaceFeatureSearchServerI *faceFea, int loop = -1); // void erlangCallBackFunc(std::string); private: long m_inTime; std::map m_faceFCMAP; std::map m_tableType; RWLock m_rwLock; ErlangTool::ErlangDbTool m_erlangDbTool; SqliteFaceEncap m_sqliteFaceEncap; std::mutex m_mutex; bool m_retUpdatePthread; Base64 base64; // Ice::ObjectPrx base_FaceMemoryData; // IceRpcClient<::FaceSearch::FaceMemoryDataPrx> m_faceMemoryClient; // ::FaceSearch::FaceMemoryDataPrx serverFaceMemoryData; // func_cond_mutex(PTHREAD_MUTEX_INITIALIZER), func_cond(PTHREAD_COND_INITIALIZER) EsDBTool pManagerEsDB;//(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); }; #endif //FACESEARCHSERVER_FACEFEATURESEARCHSERVERI_H