本文整理汇总了C++中ZHTClient::lookup方法的典型用法代码示例。如果您正苦于以下问题:C++ ZHTClient::lookup方法的具体用法?C++ ZHTClient::lookup怎么用?C++ ZHTClient::lookup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ZHTClient
的用法示例。
在下文中一共展示了ZHTClient::lookup方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: benchmarkLookup
float benchmarkLookup(vector<string> strList, ZHTClient &client) {
vector<string>::iterator it;
double start = 0;
double end = 0;
start = getTime_msec();
int errCount = 0;
//cout << "Client: benchmarkLookup: start lookup \n";
int c = 0;
for (it = strList.begin(); it != strList.end(); it++) {
string result;
// cout << c << endl;
c++;
// cout<<"lookup: "<<c<<endl;
//sleep(1);
//
// cout << "Client: What I want to find: \n";
// cout <<"Lookup: "<< (*it).c_str() << endl;
if (client.lookup((*it), result) < 0) {
errCount++;
} else if (result.empty()) { //empty string
errCount++;
}
// cout << "Client: What I get: ";
// cout << result.c_str() << endl;
}
end = getTime_msec();
cout << "Lookup " << strList.size() - errCount << " packages out of "
<< strList.size() << ", cost " << end - start << " ms" << endl;
return 0;
}
示例2: c_zht_lookup
int c_zht_lookup(const char *pair, char *result) {
string pkg(pair);
string returnStr;
int ret = zhtClient.lookup(pkg, returnStr);
char *chars = new char[returnStr.size() + 1];
strcpy(chars, returnStr.c_str());
result = chars;
return ret;
}
示例3: benchmarkLookup
float benchmarkLookup(vector<string> strList, ZHTClient &client) {
vector<string>::iterator it;
/*
for (it = strList.begin(); it != strList.end(); it++) {
Package package;
package.ParseFromString((*it));
package.set_operation(1); // 3 for insert, 1 for look up, 2 for remove
package.set_replicano(3); //5: original, 3 not original
strList.erase(it);
string newStr = package.SerializeAsString();
strList.push_back(newStr);
}
*/
double start = 0;
double end = 0;
start = getTime_msec();
int errCount = 0;
//cout << "Client: benchmarkLookup: start lookup \n";
int c=0;
for (it = strList.begin(); it != strList.end(); it++) {
string result;
//cout <<"insert count "<< c << endl;
c++;
//cout<<"lookup: "<<i<<endl;
//cout << "Client: What I want to find: \n";
//cout <<"Lookup: "<< (*it).c_str() << endl;
if (client.lookup((*it), result) < 0) {
errCount++;
} else if (result.empty()) { //empty string
errCount++;
}
//cout << "Client: What I get: ";
//cout << result.c_str() << endl;
}
end = getTime_msec();
cout << "Lookup " << strList.size() - errCount << " packages out of "
<< strList.size() << ", cost " << end - start << " ms" << endl;
return 0;
}
示例4: c_zht_lookup2_std
int c_zht_lookup2_std(ZHTClient_c zhtClient, const char *key, char *result,
size_t *n) {
ZHTClient *zhtcppClient = (ZHTClient *) zhtClient;
string sKey(key);
Package package;
package.set_virtualpath(sKey); //as key
package.set_isdir(true);
package.set_replicano(5);
package.set_operation(1); //1 for look up, 2 for remove, 3 for insert, 4 append
string resultStr;
int ret = zhtcppClient->lookup(package.SerializeAsString(), resultStr);
/*
* hello,zht:hello,zht ==> hello,zht:zht
* */
string store;
char * pch, *sp;
pch = strtok_r((char*) resultStr.c_str(), ":", &sp);
Package package2;
while (pch != NULL) {
package2.ParseFromString(pch);
string strRealfullpath = package2.realfullpath();
store.append(strRealfullpath);
store.append(":");
pch = strtok_r(NULL, ":", &sp);
}
size_t found = store.find_last_of(":");
store = store.substr(0, found);
strncpy(result, store.c_str(), strlen(store.c_str()));
*n = store.size();
return ret;
}
示例5: c_zht_lookup_std
int c_zht_lookup_std(ZHTClient_c zhtClient, const char *pair, char *result,
size_t *n) {
ZHTClient *zhtcppClient = (ZHTClient *) zhtClient;
string sPair(pair);
string resultStr;
int ret = zhtcppClient->lookup(sPair, resultStr);
/*
* hello,zht:hello,zht ==> hello,zht:zht
* */
string store;
char * pch, *sp;
pch = strtok_r((char*) resultStr.c_str(), ":", &sp);
Package package2;
while (pch != NULL) {
package2.ParseFromString(pch);
string strRealfullpath = package2.realfullpath();
store.append(strRealfullpath);
store.append(":");
pch = strtok_r(NULL, ":", &sp);
}
size_t found = store.find_last_of(":");
store = store.substr(0, found);
package2.set_realfullpath(store);
store = package2.SerializeAsString();
strncpy(result, store.c_str(), strlen(store.c_str()));
*n = store.size();
return ret;
}
示例6: c_zht_lookup_std
int c_zht_lookup_std(ZHTClient_c zhtClient, const char *key, char *result) {
#ifdef IND_MUTEX
LockGuard lock(&c_zht_lookup_mutex);
#elif SHARED_MUTEX
LockGuard lock(&c_zht_client_mutex);
#else
#endif
ZHTClient *zhtcppClient = (ZHTClient *) zhtClient;
string skey(key);
string resultStr;
int ret = zhtcppClient->lookup(skey, resultStr);
memset(result, 0, strlen(result));
strncpy(result, resultStr.c_str(), resultStr.size());
return ret;
}
示例7: benchmarkLookup
float benchmarkLookup() {
double start = 0;
double end = 0;
start = TimeUtil::getTime_msec();
int errCount = 0;
int c = 0;
vector<string>::iterator it;
for (it = pkgList.begin(); it != pkgList.end(); it++) {
string result;
c++;
string pkg_str = *it;
Package pkg;
pkg.ParseFromString(pkg_str);
int ret = zc.lookup(pkg.virtualpath(), result);
if (ret < 0) {
errCount++;
} else if (result.empty()) { //empty string
errCount++;
}
}
end = TimeUtil::getTime_msec();
char buf[200];
sprintf(buf, "Lookuped packages, %d, %d, cost(ms), %f", numOfOps - errCount,
numOfOps, end - start);
cout << buf << endl;
return 0;
}
示例8: c_zht_lookup2
int c_zht_lookup2(const char *key, char *result, size_t *n) {
string keyStr(key);
string resultStr;
if (keyStr.empty()) //empty key not allowed.
return -1;
Package package;
package.set_virtualpath(keyStr); //as key
package.set_isdir(true);
package.set_replicano(5);
package.set_operation(1); //1 for look up, 2 for remove, 3 for insert
int ret = zhtClient.lookup(package.SerializeAsString(), resultStr);
Package package2;
package2.ParseFromString(resultStr);
string strRealfullpath = package2.realfullpath();
strncpy(result, strRealfullpath.c_str(), strRealfullpath.size());
*n = strRealfullpath.size();
return ret;
}
示例9: keyStr
struct metadata * zht_lookup_meta(ZHTClient_c zhtClient, const char * key){
//1. Lookup in ZHT
ZHTClient * zhtcppClient = (ZHTClient *) zhtClient;
string keyStr(key);
string resSerializedPackage;
Package keyPackage;
keyPackage.set_virtualpath(keyStr); //as key
keyPackage.set_isdir(false);
keyPackage.set_replicano(1);
keyPackage.set_operation(1); //1 for look up, 2 for remove, 3 for insert
int res = zhtcppClient->lookup(keyPackage.SerializeAsString(),resSerializedPackage);
dbgprintf("Package Length:%i\n",resSerializedPackage.size());
//2. Parse Package and fill meta
Package package;
package.ParseFromString(resSerializedPackage);
struct metadata* meta = (struct metadata*)malloc(sizeof(struct metadata));
//2.1 General file infos
meta->key = package.virtualpath().c_str();
meta->k = package.k();
meta->m = package.m();
meta->bufsize = package.bufsize();
meta->fileSize = package.filesize();
meta->encodingLib = package.encodinglib();
//2.2 Locations
meta->loc = (struct comLocations *) malloc(sizeof(struct comLocations));
struct comTransfer * current;
struct comTransfer * prev = NULL;
for (int j = package.location_size() -1 ; j >= 0; j--) {
current = (struct comTransfer *) malloc(sizeof(struct comTransfer));
const Package_Location& location = package.location(j);
//const std::string host = location.hostname();
current->hostName = (char *) malloc((location.hostname()).size()+1);
strcpy(current->hostName,location.hostname().c_str());
current->port = location.port();
current->distantChunkName = (char *) malloc((location.distantchunkname()).size()+1);
strcpy(current->distantChunkName,location.distantchunkname().c_str());
dbgprintf("Host (%i):%s - port: %i - chunkname: %s\n",j,location.hostname().c_str(),location.port(), location.distantchunkname().c_str());
current->next = prev;
prev = current;
}
meta->loc->transfers = current;
return meta;
}
示例10: system
void *execTask(void *popTask)
{
string result, update, task, key, cmd, dataTask[4] = "";
int i, k = 0, rc, data;
char intstr[10];
task = (char *) popTask;
for(i = 0; i < strlen(task.c_str()); i++)
{
if (task[i] == ',')
k = k + 1;
else
dataTask[k] = dataTask[k] + task[i];
//key = key + task[i];
}
key = dataTask[0];
cmd = dataTask[1] + " " + dataTask[2];
//rc = system("netstat | grep 50000 | wc -l");
rc = system(cmd.c_str());
pthread_mutex_lock( &mutex1 );
if ( rc == 0)
{
rc = zc.lookup(key, result);
cout << "Lookup Result: " << (atoi(result.c_str()) - 1000) << endl;
if ( rc == 0)
{
data = atoi(result.c_str());
data = data + 1;
sprintf(intstr, "%d", data);
update = string(intstr);
rc = zc.insert(key, update);
cout << "Updating the Key with the Value: " << (atoi(update.c_str()) - 1000) << endl;
if (rc == 0)
printf("INSERT OK, rc(%d)\n", rc);
else
printf("INSERT ERR, rc(%d)\n", rc);
}
else
{
rc = zc.insert(key, "1001");
}
}
else
{
cout << "********************************************************************" << endl;
cout << "Job Failed execution: " << task << endl;
cout << "Pushing the failed job back to queue" << endl;
rc = zc.push((key + ".x" +dataTask[3]), task, "q1", result);
if (rc == 0)
printf("PUSH OK, rc(%d)\n", rc);
else
printf("PUSH ERR, rc(%d)\n", rc);
}
threadCount = threadCount - 1;
pthread_mutex_unlock( &mutex1 );
}