| 416 | } |
| 417 | |
| 418 | bool memcache::get(const char* key, size_t klen, string& out, |
| 419 | unsigned short* flags) |
| 420 | { |
| 421 | out.clear(); |
| 422 | |
| 423 | int len = get_begin(key, klen, flags); |
| 424 | if (len <= 0) { |
| 425 | return false; |
| 426 | } |
| 427 | |
| 428 | // ����Ҫ��֤�㹻�Ŀռ������ɶ�ȡ�����ݣ����ַ�ʽ |
| 429 | // ���ܻ�����������dz���ʱ�Ļ���������� |
| 430 | |
| 431 | char buf[4096]; |
| 432 | int n; |
| 433 | while (true) { |
| 434 | n = get_data(buf, sizeof(buf)); |
| 435 | if (n < 0) { |
| 436 | return false; |
| 437 | } else if (n == 0) { |
| 438 | break; |
| 439 | } |
| 440 | out.append(buf, n); |
| 441 | } |
| 442 | |
| 443 | return !out.empty(); |
| 444 | } |
| 445 | |
| 446 | bool memcache::get(const char* key, string& buf, unsigned short* flags /* = NULL */) |
| 447 | { |