~brianaker/libmemcached/1164440

« back to all changes in this revision

Viewing changes to libmemcached-1.0/result.h

Merging bzr://gaz.tangent.org/libmemcached/build/ to Build branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Summary: Result structure used for libmemcached.
3
 
 *
4
 
 * Copy: See Copyright for the status of this software.
5
 
 *
6
 
 * Author: Brian Aker
 
1
/*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
 
2
 * 
 
3
 *  Libmemcached library
 
4
 *
 
5
 *  Copyright (C) 2011 Data Differential, http://datadifferential.com/ 
 
6
 *  All rights reserved.
 
7
 *
 
8
 *  Redistribution and use in source and binary forms, with or without
 
9
 *  modification, are permitted provided that the following conditions are
 
10
 *  met:
 
11
 *
 
12
 *      * Redistributions of source code must retain the above copyright
 
13
 *  notice, this list of conditions and the following disclaimer.
 
14
 *
 
15
 *      * Redistributions in binary form must reproduce the above
 
16
 *  copyright notice, this list of conditions and the following disclaimer
 
17
 *  in the documentation and/or other materials provided with the
 
18
 *  distribution.
 
19
 *
 
20
 *      * The names of its contributors may not be used to endorse or
 
21
 *  promote products derived from this software without specific prior
 
22
 *  written permission.
 
23
 *
 
24
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
25
 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
26
 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
27
 *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
28
 *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
29
 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
30
 *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
31
 *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
32
 *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
33
 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
34
 *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
35
 *
7
36
 */
8
37
 
9
 
#ifndef __MEMCACHED_RESULT_H__
10
 
#define __MEMCACHED_RESULT_H__
 
38
#include <libmemcached-1.0/struct/result.h>
 
39
 
 
40
#pragma once
11
41
 
12
42
#ifdef __cplusplus
13
43
extern "C" {
14
44
#endif
15
45
 
16
 
struct memcached_result_st {
17
 
  memcached_allocated is_allocated;
18
 
  memcached_st *root;
19
 
  char key[MEMCACHED_MAX_KEY];
20
 
  size_t key_length;
21
 
  memcached_string_st value;
22
 
  uint32_t flags;
23
 
  uint64_t cas;
24
 
  time_t expiration;
25
 
  /* Add result callback function */
26
 
};
27
 
 
28
46
/* Result Struct */
 
47
LIBMEMCACHED_API
29
48
void memcached_result_free(memcached_result_st *result);
 
49
 
 
50
LIBMEMCACHED_API
30
51
void memcached_result_reset(memcached_result_st *ptr);
31
 
memcached_result_st *memcached_result_create(memcached_st *ptr, 
 
52
 
 
53
LIBMEMCACHED_API
 
54
memcached_result_st *memcached_result_create(const memcached_st *ptr,
32
55
                                             memcached_result_st *result);
33
 
#define memcached_result_key_value(A) (A)->key
34
 
#define memcached_result_key_length(A) (A)->key_length
35
 
#ifdef FIX
36
 
#define memcached_result_value(A) memcached_string_value((A)->value)
37
 
#define memcached_result_length(A) memcached_string_length((A)->value)
38
 
#else
39
 
char *memcached_result_value(memcached_result_st *ptr);
40
 
size_t memcached_result_length(memcached_result_st *ptr);
41
 
#endif
42
 
#define memcached_result_flags(A) (A)->flags
43
 
#define memcached_result_cas(A) (A)->cas
44
 
memcached_return memcached_result_set_value(memcached_result_st *ptr, char *value, size_t length);
45
 
#define memcached_result_set_flags(A,B) (A)->flags=(B)
46
 
#define memcached_result_set_expiration(A,B) (A)->expiration=(B)
 
56
 
 
57
LIBMEMCACHED_API
 
58
const char *memcached_result_key_value(const memcached_result_st *self);
 
59
 
 
60
LIBMEMCACHED_API
 
61
size_t memcached_result_key_length(const memcached_result_st *self);
 
62
 
 
63
LIBMEMCACHED_API
 
64
const char *memcached_result_value(const memcached_result_st *self);
 
65
 
 
66
LIBMEMCACHED_API
 
67
size_t memcached_result_length(const memcached_result_st *self);
 
68
 
 
69
LIBMEMCACHED_API
 
70
uint32_t memcached_result_flags(const memcached_result_st *self);
 
71
 
 
72
LIBMEMCACHED_API
 
73
uint64_t memcached_result_cas(const memcached_result_st *self);
 
74
 
 
75
LIBMEMCACHED_API
 
76
memcached_return_t memcached_result_set_value(memcached_result_st *ptr, const char *value, size_t length);
 
77
 
 
78
LIBMEMCACHED_API
 
79
void memcached_result_set_flags(memcached_result_st *self, uint32_t flags);
 
80
 
 
81
LIBMEMCACHED_API
 
82
void memcached_result_set_expiration(memcached_result_st *self, time_t expiration);
47
83
 
48
84
#ifdef __cplusplus
49
 
}
 
85
} // extern "C"
50
86
#endif
51
 
 
52
 
#endif /* __MEMCACHED_RESULT_H__ */