本文整理汇总了C++中ZHTClient::pop方法的典型用法代码示例。如果您正苦于以下问题:C++ ZHTClient::pop方法的具体用法?C++ ZHTClient::pop怎么用?C++ ZHTClient::pop使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ZHTClient
的用法示例。
在下文中一共展示了ZHTClient::pop方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test_pop
void test_pop()
{
int i = 11111;
char intstr[10];
sprintf(intstr, "%d", i);
string uuid = string(intstr);
//string uuid = getIp();
string result = "y";
int rc;
while(result != "q")
{
cout << "UUID" << uuid << endl;
try
{
rc = zc.pop(uuid, "q1", result);
if (rc == 0)
{
i = i + 1;
sprintf(intstr, "%d", i);
uuid = string(intstr);
printf("POP OK, rc(%d), value={%s}\n", rc, result.c_str());
}
else
sleep(10);
}
catch(...)
{
sleep(10);
}
}
}
示例2: main
int main(int argc, char **argv)
{
extern char *optarg;
int printHelp = 0, numThrds = 0;
string zhtConf = "";
string neighborConf = "";
int c;
while ((c = getopt(argc, argv, "z:n:t:h")) != -1)
{
switch (c)
{
case 'z':
zhtConf = string(optarg);
break;
case 'n':
neighborConf = string(optarg);
break;
case 't':
numThrds = atoi(optarg);
break;
case 'h':
printHelp = 1;
break;
default:
fprintf(stderr, "Illegal argument \"%c\"\n", c);
printUsage(argv[0]);
exit(1);
}
}
int helpPrinted = 0;
if (printHelp) {
printUsage(argv[0]);
helpPrinted = 1;
}
try {
if (!zhtConf.empty() && !neighborConf.empty() && numThrds != 0) {
zc.init(zhtConf, neighborConf);
cout << "Initializing Worker" << endl;
string result;
zc.push("temp", "test", "q1", result);
zc.pop("xxxx", "q1", result);
id = 1000;
job_count = 1000;
//test_insert();
//test_pop();
startWorker(numThrds);
zc.teardown();
} else {
if (!helpPrinted)
printUsage(argv[0]);
}
} catch (exception& e) {
fprintf(stderr, "%s, exception caught:\n\t%s", "ZHTServer::main",
e.what());
}
}
示例3: startWorker
void startWorker(int numThrds)
{
int i, rc;
char intstr[10];
pthread_t threads[numThrds];
string key, key1, result;
key1 = getIp();
sprintf(intstr, "%d", id);
key = string(intstr) + "." + key1;
while (true)
{
try
{
if(threadCount < numThrds)
{
rc = zc.pop(key, "q1", result);
if (rc == 0)
{
if ( result.c_str() != NULL && strlen(result.c_str()) > 0)
{
printf("POP OK, rc(%d), value={%s}\n", rc, result.c_str());
rc = pthread_create(&threads[threadCount], NULL, execTask, (void *)result.c_str());
if (rc)
{
cout << "Error:unable to create thread," << rc << endl;
exit(-1);
}
threadCount = threadCount + 1;
}
}
else
{
printf("POP ERR, rc(%d), value={%s}\n", rc, result.c_str());
if(strcmp(zht_key.c_str(),"xxx") != 0)
{
pthread_mutex_lock( &mutex1 );
sendResult();
zht_key = "xxx";
job_count = 1000;
pthread_mutex_unlock( &mutex1 );
}
else
{
job_count = 1000;
sleep(5);
}
}
}
}
catch(...)
{
sleep(5);
}
id = id + 1;
sprintf(intstr, "%d", id);
key = string(intstr) + "." + key1;
}
cout << "Worker completed" << endl;
}