Esempio n. 1
0
static int
copy_structure(const struct sol_memdesc *desc, void *memory, const void *ptr_content)
{
    const struct sol_memdesc_structure_member *itr;
    const void *src_mem;

    SOL_MEMDESC_FOREACH_STRUCTURE_MEMBER_MEMORY(desc, itr, ptr_content, src_mem) {
        void *dst_mem;
        int r;

        dst_mem = sol_memdesc_get_structure_member_memory(desc, itr, memory);
        if (!dst_mem)
            return -errno;
        r = copy_content(&itr->base, src_mem, dst_mem);
        if (r < 0)
            return r;
    }
Esempio n. 2
0
int test_meta_links_load()
{
	RIACK_STRING bucket_posts, bucket_answers;
	struct RIACK_GET_OBJECT get_post;
	struct RIACK_OBJECT put_post;
	struct RIACK_STRING_LINKED_LIST *keys_posts, *current_post, *keys_answers, *current_answer;
	bucket_posts.len = strlen(RIAK_TEST_BUCKET_POSTS);
	bucket_posts.value = RIAK_TEST_BUCKET_POSTS;
	bucket_answers.len = strlen(RIAK_TEST_BUCKET_ANSWERS);
	bucket_answers.value = RIAK_TEST_BUCKET_ANSWERS;
	// Make random links between posts and comments
	if ((riack_list_keys(test_client, bucket_posts, &keys_posts) == RIACK_SUCCESS)&&
		(riack_list_keys(test_client, bucket_answers, &keys_answers) == RIACK_SUCCESS)) {
		current_post = keys_posts;
		current_answer = keys_answers;
		while (current_post && current_post->next) {
			if (riack_get(test_client, bucket_posts, current_post->string, 0, &get_post) == RIACK_SUCCESS) {
				if (get_post.object.content_count == 1) {
					memset(&put_post, 0, sizeof(put_post));

					put_post.bucket = copy_string(&bucket_posts);
					put_post.key = copy_string(&current_post->string);

					put_post.content_count = 1;
					put_post.content = copy_content(get_post.object.content);

					current_answer = test_make_links(current_answer, get_post.object.content);
					if (riack_put(test_client, put_post, 0, 0) != RIACK_SUCCESS) {
						return 1;
					}
					riack_free_object(test_client, &put_post);
				}
				riack_free_get_object(test_client, &get_post);
			}
			current_post = current_post->next;
		}
	}
	return 0;
}