#include <iostream>
|
#include <unistd.h>
|
#include <sys/time.h>
|
#include <uuid/uuid.h>
|
#include <vector>
|
#include <boost/interprocess/shared_memory_object.hpp>
|
#include <boost/interprocess/mapped_region.hpp>
|
|
#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<SyncDB::AddPersonInfo> 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<BISTL::bi_map_Feature_Info>("MyMap")(std::less<BISTL::char_string>(), 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;
|
}
|