#include #include #include #include #include #include #include #include "ErlangDbTool.h" #include "ShareMemoryTool.hpp" using namespace std; //#erl -name b@192.168.1.164 -setcookie abc -mnesia dir '"/home/firefly/erlang"' -detached -noshell int main(int argc, char **argv) { ENABLEGLOG(GET_STR_CONFIG("logPath").c_str()); std::cout << "Hello, World!" << std::endl; std::string path = "/opt/erlang/main/"; std::string nodeName = "main@192.168.1.124"; std::string cookie = "abc"; ErlangTool::ErlangDbTool *erlangDbTool; auto erlNode = appConfig.getStringProperty("erlNode"); auto erlCookie = appConfig.getStringProperty("erlCookie"); auto erlPath = appConfig.getStringProperty("erlPath"); auto erlFatherNode = appConfig.getStringProperty("erlFatherNode"); if (erlNode.size() > 0 && erlCookie.size() > 0) { string str_tmp = "DataWebserver"; erlangDbTool = new ErlangTool::ErlangDbTool(erlPath, erlNode, erlCookie, str_tmp); if (erlangDbTool->initErlang() == 1) { erlangDbTool->startNodeDb(erlFatherNode); } else { DBG("not is startNodeDb"); } } // ErlangTool::ErlangDbTool erlangDbTool(path, nodeName, cookie); // // // // bool ret = erlangDbTool->initErlang(); /** * chushihua jiedian jiaru jiqun */ // erlangDbTool->startNodeDb(" ", " "); // erlangDbTool->startNodeDb("za@192.168.50.216", " "); //---------end-------------- // erlangDbTool->removeNode(); // auto devCache = erlangDbTool->findAllNode(); // INFO(devCache.size()); // for (auto &item:devCache) { // DBG(item.first); // } //erlangDbTool->test(); /*** * chuanjian shuju ku */ // ret = erlangDbTool->createDatabase("person", "aaa1", true, "0"); // ret = erlangDbTool->createDatabase("person", "aaa2", true, "1"); // ret = erlangDbTool->createDatabase("car", "bbb1", false, "0"); // ret = erlangDbTool->createDatabase("car", "aaa4", true, "0"); // erlangDbTool->createDatabase("car","sycarYa32",false,"0"); // erlangDbTool->createDatabase("car","syperYa1",true,"1"); // erlangDbTool->createDatabase("person","syperYa2",false,"0"); //---------end-------------- // auto dbCache = erlangDbTool->findAllDatabase(); // auto bwCache = erlangDbTool->findAllTypeInfo(); // // for (auto &item : dbCache) { // INFO(item.first << " " << item.second.uuid); // } // return 0; /*** * add Feature */ // for (int i = 0; i < 100; i++) { // // uuid_t uu; // char str[36]; // uuid_generate(uu); // uuid_unparse(uu, str); // // string uuid; // string str2(str); //// str2.append(str); // str2.append(str2).append(str2).append(str2).append(str2).append(str2); // auto size = str2.size(); // // // //// struct timeval t1, t2; //// gettimeofday(&t1, NULL); // // ret = erlangDbTool->addPerson(uuid, "aaa1", move(str2)); //// cout << i << " ret " << ret << " size " << size << " uuid " << uuid << endl; // //// gettimeofday(&t2, NULL); ////// 那么函数f运行所花的时间为 //// auto deltaT = (t2.tv_sec - t1.tv_sec) * 1000000 + t2.tv_usec - t1.tv_usec; //// std::cout << __FILE__ << __LINE__ << " deltaT " << deltaT << std::endl; // // } //---------end-------------- // return 0; std::vector tmpPer; SyncDB::AddPersonInfo addPersonInfo; addPersonInfo.feature = "testFea22"; addPersonInfo.personPic = "testPic33"; addPersonInfo.idcard = "testidcard44"; for (int i = 0; i < 3; ++i) { addPersonInfo.personid = std::to_string(i * 2); tmpPer.push_back(addPersonInfo); } // auto resaddPersons = erlangDbTool->addPersons("077b251e-8698-5852-be8c-8c2d8334a162", tmpPer); auto resUpdPersRet = erlangDbTool->singlePersonUpdate("12", "11", "testUpCardid", "testUpPic", "testUpFea"); // auto resPerEit = erlangDbTool->personIsExistOnClu("1"); /*** * jiazai renlian */ struct timeval t1, t2; gettimeofday(&t1, NULL); /*** * load fea */ auto cache = erlangDbTool->loadFaceFeaData2("测试中文12553"); for (auto &item : cache) { DBG(item.first); } gettimeofday(&t2, NULL); //那么函数f运行所花的时间为 auto deltaT = (t2.tv_sec - t1.tv_sec) * 1000000 + t2.tv_usec - t1.tv_usec; std::cout << __FILE__ << __LINE__ << " deltaT " << deltaT << "us size is " << cache.size() << std::endl; // auto size = sizeof(cache[0]) * cache.size(); // // try { // // BISTL::shared_memory_object::remove("aaa8"); // // BISTL::BiMapFeaData biMapFeaData("aaa8", size); // // for (auto &item :cache) { // biMapFeaData.saveKeyOrValue(item.second.id.c_str(), item.second.feature.c_str(), // item.second.create_by.c_str(), // item.second.create_time.c_str(), item.second.update_time.c_str()); // } // // auto mymap = biMapFeaData.getMap(); // for (auto it = mymap->begin(); it != mymap->end(); it++) { // std::cout << "feature " << it->second.m_feature << std::endl; // } // printf("\n"); // // } // catch (const std::exception &e) { // printf("Exception:%s\n", e.what()); // BISTL::shared_memory_object::remove("aaa8"); // } // printf("getchar\n"); getchar(); //--------end----------- // erlangDbTool->deleteDatabase("person","aaa9", true); // struct timeval t1, t2; // gettimeofday(&t1, NULL); // gettimeofday(&t2, NULL); // //那么函数f运行所花的时间为 // auto deltaT = (t2.tv_sec-t1.tv_sec) * 1000000 + t2.tv_usec-t1.tv_usec; // std::cout << __FILE__ << __LINE__ << " deltaT " << deltaT << std::endl; return 0; } int main3() { // char cc = '1'; // for (int i = 0; i < 100; i++) { // cc++; // printf("%c \n", cc); // } uuid_t uu; char str[36]; uuid_generate(uu); uuid_unparse(uu, str); string uuid; string str2(str); // str2.append(str); str2.append(str2).append(str2).append(str2).append(str2).append(str2).append(str2).append(str2).append(str2).append( str2).append(str2).append(str2).append(str2).append(str2).append(str2); auto size = str2.size(); try { BISTL::shared_memory_object::remove("SharedMemory"); // init BISTL::managed_shared_memory segment(BISTL::create_only, "SharedMemory", 65536); const BISTL::void_allocator alloc_inst(segment.get_segment_manager()); BISTL::bi_map_Feature_Info *mymap = segment.construct("MyMap")(std::less(), alloc_inst); for (int i = 0; i < 100; ++i) { char tmp[16] = ""; sprintf(tmp, "test%d", i); BISTL::char_string key_object(tmp, alloc_inst); BISTL::Feature_Info v(tmp, "feature", "create_by", "create_time", "update_time", alloc_inst); // v.id = key_object; // v.feature = key_object; BISTL::ValueType value(key_object, v); mymap->insert(value); } for (BISTL::bi_map_Feature_Info::iterator it = mymap->begin(); it != mymap->end(); it++) { std::cout << it->second.m_id << std::endl; std::cout << it->second.m_feature << std::endl; // it->second.id; } printf("\n"); // BISTL::shared_memory_object::remove("SharedMemory"); } catch (const std::exception &e) { printf("Exception:%s\n", e.what()); BISTL::shared_memory_object::remove("SharedMemory"); } printf("getchar\n"); getchar(); return 0; }