示例#1
0
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);
}
示例#2
0
/* {{{ 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);
}