From 110c8cd88975b258012128e858a3e25f01d5cea3 Mon Sep 17 00:00:00 2001 From: yeoncheol-kim Date: Wed, 4 Dec 2024 17:12:47 +0900 Subject: [PATCH] DOC: Modify examples for the set document --- docs/05-set-API.md | 568 ++++++++++++++++++++++----------------------- 1 file changed, 280 insertions(+), 288 deletions(-) diff --git a/docs/05-set-API.md b/docs/05-set-API.md index 516316f8..6d4f94ca 100644 --- a/docs/05-set-API.md +++ b/docs/05-set-API.md @@ -25,14 +25,14 @@ Set item에 수행 가능한 기본 연산들은 다음과 같다. 새로운 empty set item을 생성한다. -``` c +```c memcached_return_t memcached_sop_create(memcached_st *ptr, const char *key, size_t key_length, memcached_coll_create_attrs_st *attributes) ``` -- key: set item의 key +- key, key_length: set item의 key - attributes: set item의 속성 정보 [(링크)](08-attribute-API.md#attribute-생성) Response code는 아래와 같다. @@ -42,31 +42,29 @@ Response code는 아래와 같다. - not MEMCACHED_SUCCESS - MEMCACHED_EXISTS: 동일한 key를 가진 set이 이미 존재함. -Set item을 생성하는 예제는 아래와 같다. +Set item을 생성하는 예시는 아래와 같다. -``` c -void arcus_set_item_create(memcached_st *memc) +```c +int arcus_set_item_create(memcached_st *memc) { - uint32_t flags= 10; - uint32_t exptime= 600; - uint32_t maxcount= 1000; - - memcached_coll_create_attrs_st attributes; - memcached_coll_create_attrs_init(&attributes, flags, exptime, maxcount); - - memcached_return_t rc; - - // 비어 있는 Set을 생성한다. - rc= memcached_sop_create(memc, "set:an_empty_set", strlen("set:an_empty_set"), - &attributes); - assert(MEMCACHED_SUCCESS == rc); - assert(MEMCACHED_CREATED == memcached_get_last_response_code(memc)); - - // 이미 존재하는 key를 이용하여 Set을 생성하면 오류가 발생한다. - rc= memcached_sop_create(memc, "set:an_empty_set", strlen("set:an_empty_set"), - &attributes); - assert(MEMCACHED_SUCCESS != rc); - assert(MEMCACHED_EXISTS == memcached_get_last_response_code(memc)); + const char *key= "set:a_key"; + uint32_t flags= 0; + uint32_t exptime= 600; + uint32_t maxcount= 1000; + memcached_return_t rc; + + memcached_coll_create_attrs_st attributes; + memcached_coll_create_attrs_init(&attributes, flags, exptime, maxcount); + + rc= memcached_sop_create(memc, key, strlen(key), &attributes); + if (memcached_failed(rc)) { + fprintf(stderr, "Failed to memcached_sop_create: %d(%s)\n", rc, memcached_strerror(memc, rc)); + return -1; + } + + assert(rc == MEMCACHED_SUCCESS); + assert(memcached_get_last_response_code(memc) == MEMCACHED_CREATED); + return 0; } ``` @@ -74,7 +72,7 @@ void arcus_set_item_create(memcached_st *memc) Set에 하나의 element를 삽입하는 함수이다. -``` c +```c memcached_return_t memcached_sop_insert(memcached_st *ptr, const char *key, size_t key_length, @@ -97,48 +95,32 @@ Response code는 아래와 같다. - MEMCACHED_OVERFLOWED: Overflow 상태임. (overflowaction=error, maxcount=count) - MEMCACHED_ELEMENT_EXISTS: 동일한 value를 가진 element가 이미 존재하고 있음 -Set에 하나의 element를 삽입하는 예제는 아래와 같다. +Set에 하나의 element를 삽입하는 예시는 아래와 같다. -``` c -void arcus_set_element_insert(memcached_st *memc) +```c +int arcus_set_element_insert(memcached_st *memc) { - uint32_t flags= 10; - uint32_t exptime= 600; - uint32_t maxcount= 1000; - - memcached_coll_create_attrs_st attributes; - memcached_coll_create_attrs_init(&attributes, flags, exptime, maxcount); - - memcached_return_t rc; - - // 입력할 때 Set이 존재하지 않으면 새로 생성한 뒤 입력한다. - rc= memcached_sop_insert(memc, "set:a_set", strlen("set:a_set"), - "value", strlen("value"), &attributes); - assert(MEMCACHED_SUCCESS == rc); - assert(MEMCACHED_CREATED_STORED == memcached_get_last_response_code(memc)); - - // 이미 존재하는 값을 입력하려 하면 오류가 발생한다. - rc= memcached_sop_insert(memc, "set:a_set", strlen("set:a_set"), - "value", strlen("value"), NULL); - assert(MEMCACHED_SUCCESS != rc); - assert(MEMCACHED_ELEMENT_EXISTS == memcached_get_last_response_code(memc)); - - // Set의 element 개수가 maxcount에 다다를 때까지 입력한다. - for (uint32_t i=1; i