MCPcopy Create free account
hub / github.com/acl-dev/acl / watch

Method watch

lib_acl_cpp/src/beanstalk/beanstalk.cpp:334–377  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

332}
333
334unsigned beanstalk::watch(const char* tube)
335{
336 // �ȼ���Ƿ��Ѿ������ͬ����
337 std::vector<char*>::iterator it = tubes_watched_.begin();
338 for (; it != tubes_watched_.end(); ++it) {
339 if (strcmp(*it, tube) == 0) {
340 break;
341 }
342 }
343
344 string cmdline(128);
345 cmdline.format("watch %s\r\n", tube);
346 ACL_ARGV* tokens = beanstalk_request(cmdline);
347 if (tokens == NULL) {
348 logger_error("'%s' error", cmdline.c_str());
349 return 0;
350 }
351 if (tokens->argc < 2 || strcasecmp(tokens->argv[0], "WATCHING")) {
352 logger_error("'%s' error %s", cmdline.c_str(), tokens->argv[0]);
353 errbuf_ = tokens->argv[0];
354 acl_argv_free(tokens);
355 close();
356 return 0;
357 }
358
359 unsigned n = (unsigned) atoi(tokens->argv[1]);
360 acl_argv_free(tokens);
361
362 // �����������������ע�Ķ�����Ϊ 0���϶��dz����ˣ���Ϊ���ٻ���һ��
363 // ȱʡ���У�default�����Դ�ʱ��Ҫ�ر����ӣ��Ծ��������뱾�������
364 // �Ĵ�����һ��������Զ��������������Իָ���������
365 if (n == 0) {
366 logger_error("'%s' error, tube watched is 0", cmdline.c_str());
367 errbuf_ = "watching";
368 close();
369 }
370
371 // ���ӽ���ؼ�����
372 else if (it == tubes_watched_.end()) {
373 tubes_watched_.push_back(acl_mystrdup(tube));
374 }
375
376 return n;
377}
378
379unsigned beanstalk::ignore(const char* tube)
380{

Callers 2

consumerFunction · 0.45
consumerFunction · 0.45

Calls 7

acl_argv_freeFunction · 0.85
beginMethod · 0.80
closeFunction · 0.50
endMethod · 0.45
formatMethod · 0.45
c_strMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected