void RiakTest::ListKeys() { //const char* uuid = "48740512-e7e7-4661-871e-dfa837a2b973"; const char* uuid = "af926e3d-b855-4d90-990c-db717b0a412d"; riack_string_linked_list *list; riack_string_linked_list *rkey; riack_string bucket; bucket.value = (char*)uuid; bucket.len = strlen(uuid); int ret = riack_list_keys(m_riak, &bucket, &list); std::ofstream os("g:\\temp\\_aaa.txt"); char key[RADI_PATH_MAX]; for (rkey = list; rkey != NULL; rkey = rkey->next) { memset(key, 0, RADI_PATH_MAX); memcpy(key, rkey->string.value, rkey->string.len); //printf("[key]:%s\n", key); os << key << std::endl; } os.close(); riack_free_string_linked_list_p(m_riak, &list); }
/* {{{ proto string[] Riak\Bucket->getKeyList([int $timeout = 0]) List all keys in the bucket */ PHP_METHOD(RiakBucket, getKeyList) { riack_string_linked_list* resultlist, *curr; riack_string rsbucket, *rstype; riak_connection *connection; zval* zresultarr; long timeout; int riackstatus; timeout = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &timeout) == FAILURE) { zend_throw_exception(riak_badarguments_exception_ce, "Bad or missing argument", 500 TSRMLS_CC); return; } connection = get_riak_connection(getThis() TSRMLS_CC); rsbucket = riack_name_from_bucket(getThis() TSRMLS_CC); THROW_EXCEPTION_IF_CONNECTION_IS_NULL(connection); rstype = riack_get_bucket_type_from_bucket(connection->client, getThis() TSRMLS_CC); // Not gonna do a retry here on purpose... no reason to retry a mistake in the first place riackstatus = riack_list_keys_ext(connection->client, &rsbucket, rstype, &resultlist, timeout); RFREE(connection->client, rstype); CHECK_RIACK_STATUS_THROW_AND_RETURN_ON_ERROR(connection, riackstatus); MAKE_STD_ZVAL(zresultarr); array_init(zresultarr); curr = resultlist; while (curr) { add_next_index_stringl(zresultarr, curr->string.value, curr->string.len, 1); curr = curr->next; } riack_free_string_linked_list_p(connection->client, &resultlist); RETURN_ZVAL(zresultarr, 0, 1); }