Loading...
Searching...
No Matches
apr_memcache.h
Go to the documentation of this file.
/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef APR_MEMCACHE_H
#define APR_MEMCACHE_H
#include "apr.h"
#include "apr_pools.h"
#include "apr_time.h"
#include "apr_strings.h"
#include "apr_network_io.h"
#include "apr_ring.h"
#include "apr_buckets.h"
#include "apr_reslist.h"
#include "apr_hash.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef enum
{
APR_MC_SERVER_LIVE,
APR_MC_SERVER_DEAD
} apr_memcache_server_status_t;
typedef struct apr_memcache_conn_t apr_memcache_conn_t;
typedef struct apr_memcache_server_t apr_memcache_server_t;
struct apr_memcache_server_t
{
const char *host;
apr_port_t port;
apr_memcache_server_status_t status;
#if APR_HAS_THREADS || defined(DOXYGEN)
apr_reslist_t *conns;
#else
apr_memcache_conn_t *conn;
#endif
apr_pool_t *p;
#if APR_HAS_THREADS
apr_thread_mutex_t *lock;
#endif
apr_time_t btime;
};
/* Custom hash callback function prototype, user for server selection.
* @param baton user selected baton
* @param data data to hash
* @param data_len length of data
*/
typedef apr_uint32_t (*apr_memcache_hash_func)(void *baton,
const char *data,
const apr_size_t data_len);
typedef struct apr_memcache_t apr_memcache_t;
/* Custom Server Select callback function prototype.
* @param baton user selected baton
* @param mc memcache instance, use mc->live_servers to select a node
* @param hash hash of the selected key.
*/
typedef apr_memcache_server_t* (*apr_memcache_server_func)(void *baton,
apr_memcache_t *mc,
const apr_uint32_t hash);
struct apr_memcache_t
{
apr_uint32_t flags;
apr_uint16_t nalloc;
apr_uint16_t ntotal;
apr_memcache_server_t **live_servers;
apr_pool_t *p;
void *hash_baton;
apr_memcache_hash_func hash_func;
void *server_baton;
apr_memcache_server_func server_func;
};
typedef struct
{
apr_status_t status;
const char* key;
apr_size_t len;
char *data;
apr_uint16_t flags;
} apr_memcache_value_t;
APU_DECLARE(apr_uint32_t) apr_memcache_hash(apr_memcache_t *mc,
const char *data,
const apr_size_t data_len);
APU_DECLARE(apr_uint32_t) apr_memcache_hash_crc32(void *baton,
const char *data,
const apr_size_t data_len);
APU_DECLARE(apr_uint32_t) apr_memcache_hash_default(void *baton,
const char *data,
const apr_size_t data_len);
APU_DECLARE(apr_memcache_server_t *) apr_memcache_find_server_hash(apr_memcache_t *mc,
const apr_uint32_t hash);
APU_DECLARE(apr_memcache_server_t *) apr_memcache_find_server_hash_default(void *baton,
apr_memcache_t *mc,
const apr_uint32_t hash);
APU_DECLARE(apr_status_t) apr_memcache_add_server(apr_memcache_t *mc,
apr_memcache_server_t *server);
APU_DECLARE(apr_memcache_server_t *) apr_memcache_find_server(apr_memcache_t *mc,
const char *host,
apr_port_t port);
APU_DECLARE(apr_status_t) apr_memcache_enable_server(apr_memcache_t *mc,
apr_memcache_server_t *ms);
APU_DECLARE(apr_status_t) apr_memcache_disable_server(apr_memcache_t *mc,
apr_memcache_server_t *ms);
APU_DECLARE(apr_status_t) apr_memcache_server_create(apr_pool_t *p,
const char *host,
apr_port_t port,
apr_uint32_t min,
apr_uint32_t smax,
apr_uint32_t max,
apr_uint32_t ttl,
apr_memcache_server_t **ns);
APU_DECLARE(apr_status_t) apr_memcache_create(apr_pool_t *p,
apr_uint16_t max_servers,
apr_uint32_t flags,
apr_memcache_t **mc);
APU_DECLARE(apr_status_t) apr_memcache_getp(apr_memcache_t *mc,
apr_pool_t *p,
const char* key,
char **baton,
apr_size_t *len,
apr_uint16_t *flags);
APU_DECLARE(void) apr_memcache_add_multget_key(apr_pool_t *data_pool,
const char* key,
apr_hash_t **values);
APU_DECLARE(apr_status_t) apr_memcache_multgetp(apr_memcache_t *mc,
apr_pool_t *temp_pool,
apr_pool_t *data_pool,
apr_hash_t *values);
APU_DECLARE(apr_status_t) apr_memcache_set(apr_memcache_t *mc,
const char *key,
char *baton,
const apr_size_t data_size,
apr_uint32_t timeout,
apr_uint16_t flags);
APU_DECLARE(apr_status_t) apr_memcache_add(apr_memcache_t *mc,
const char *key,
char *baton,
const apr_size_t data_size,
apr_uint32_t timeout,
apr_uint16_t flags);
APU_DECLARE(apr_status_t) apr_memcache_replace(apr_memcache_t *mc,
const char *key,
char *baton,
const apr_size_t data_size,
apr_uint32_t timeout,
apr_uint16_t flags);
APU_DECLARE(apr_status_t) apr_memcache_delete(apr_memcache_t *mc,
const char *key,
apr_uint32_t timeout);
APU_DECLARE(apr_status_t) apr_memcache_incr(apr_memcache_t *mc,
const char *key,
apr_int32_t n,
apr_uint32_t *nv);
APU_DECLARE(apr_status_t) apr_memcache_decr(apr_memcache_t *mc,
const char *key,
apr_int32_t n,
apr_uint32_t *new_value);
APU_DECLARE(apr_status_t) apr_memcache_version(apr_memcache_server_t *ms,
apr_pool_t *p,
char **baton);
typedef struct
{
const char *version;
apr_uint32_t pid;
apr_uint32_t uptime;
apr_time_t time;
apr_uint32_t pointer_size;
apr_time_t rusage_user;
apr_time_t rusage_system;
apr_uint32_t curr_items;
apr_uint32_t total_items;
apr_uint64_t bytes;
apr_uint32_t curr_connections;
apr_uint32_t total_connections;
apr_uint32_t connection_structures;
apr_uint32_t cmd_get;
apr_uint32_t cmd_set;
apr_uint32_t get_hits;
apr_uint32_t get_misses;
apr_uint64_t evictions;
apr_uint64_t bytes_read;
apr_uint64_t bytes_written;
apr_uint32_t limit_maxbytes;
apr_uint32_t threads;
} apr_memcache_stats_t;
APU_DECLARE(apr_status_t) apr_memcache_stats(apr_memcache_server_t *ms,
apr_pool_t *p,
apr_memcache_stats_t **stats);
#ifdef __cplusplus
}
#endif
#endif /* APR_MEMCACHE_H */
apr_buckets.h
APR-UTIL Buckets/Bucket Brigades.
apr_reslist.h
APR-UTIL Resource List Routines.
apr_memcache_replace
apr_status_t apr_memcache_replace(apr_memcache_t *mc, const char *key, char *baton, const apr_size_t data_size, apr_uint32_t timeout, apr_uint16_t flags)
apr_memcache_hash_crc32
apr_uint32_t apr_memcache_hash_crc32(void *baton, const char *data, const apr_size_t data_len)
apr_memcache_server_create
apr_status_t apr_memcache_server_create(apr_pool_t *p, const char *host, apr_port_t port, apr_uint32_t min, apr_uint32_t smax, apr_uint32_t max, apr_uint32_t ttl, apr_memcache_server_t **ns)
apr_memcache_version
apr_status_t apr_memcache_version(apr_memcache_server_t *ms, apr_pool_t *p, char **baton)
apr_memcache_incr
apr_status_t apr_memcache_incr(apr_memcache_t *mc, const char *key, apr_int32_t n, apr_uint32_t *nv)
apr_memcache_server_status_t
apr_memcache_server_status_t
Definition apr_memcache.h:50
apr_memcache_add
apr_status_t apr_memcache_add(apr_memcache_t *mc, const char *key, char *baton, const apr_size_t data_size, apr_uint32_t timeout, apr_uint16_t flags)
apr_memcache_multgetp
apr_status_t apr_memcache_multgetp(apr_memcache_t *mc, apr_pool_t *temp_pool, apr_pool_t *data_pool, apr_hash_t *values)
apr_memcache_find_server
apr_memcache_server_t * apr_memcache_find_server(apr_memcache_t *mc, const char *host, apr_port_t port)
apr_memcache_create
apr_status_t apr_memcache_create(apr_pool_t *p, apr_uint16_t max_servers, apr_uint32_t flags, apr_memcache_t **mc)
apr_memcache_find_server_hash
apr_memcache_server_t * apr_memcache_find_server_hash(apr_memcache_t *mc, const apr_uint32_t hash)
apr_memcache_hash_default
apr_uint32_t apr_memcache_hash_default(void *baton, const char *data, const apr_size_t data_len)
apr_memcache_hash
apr_uint32_t apr_memcache_hash(apr_memcache_t *mc, const char *data, const apr_size_t data_len)
apr_memcache_delete
apr_status_t apr_memcache_delete(apr_memcache_t *mc, const char *key, apr_uint32_t timeout)
apr_memcache_add_server
apr_status_t apr_memcache_add_server(apr_memcache_t *mc, apr_memcache_server_t *server)
apr_memcache_set
apr_status_t apr_memcache_set(apr_memcache_t *mc, const char *key, char *baton, const apr_size_t data_size, apr_uint32_t timeout, apr_uint16_t flags)
apr_memcache_getp
apr_status_t apr_memcache_getp(apr_memcache_t *mc, apr_pool_t *p, const char *key, char **baton, apr_size_t *len, apr_uint16_t *flags)
apr_memcache_conn_t
struct apr_memcache_conn_t apr_memcache_conn_t
Definition apr_memcache.h:56
apr_memcache_add_multget_key
void apr_memcache_add_multget_key(apr_pool_t *data_pool, const char *key, apr_hash_t **values)
apr_memcache_decr
apr_status_t apr_memcache_decr(apr_memcache_t *mc, const char *key, apr_int32_t n, apr_uint32_t *new_value)
apr_memcache_stats
apr_status_t apr_memcache_stats(apr_memcache_server_t *ms, apr_pool_t *p, apr_memcache_stats_t **stats)
apr_memcache_disable_server
apr_status_t apr_memcache_disable_server(apr_memcache_t *mc, apr_memcache_server_t *ms)
apr_memcache_enable_server
apr_status_t apr_memcache_enable_server(apr_memcache_t *mc, apr_memcache_server_t *ms)
apr_memcache_find_server_hash_default
apr_memcache_server_t * apr_memcache_find_server_hash_default(void *baton, apr_memcache_t *mc, const apr_uint32_t hash)
APR_MC_SERVER_LIVE
@ APR_MC_SERVER_LIVE
Definition apr_memcache.h:51
APR_MC_SERVER_DEAD
@ APR_MC_SERVER_DEAD
Definition apr_memcache.h:52
apr_reslist_t
struct apr_reslist_t apr_reslist_t
Definition apr_reslist.h:42
apr_memcache_server_t
Definition apr_memcache.h:61
apr_memcache_server_t::host
const char * host
Definition apr_memcache.h:62
apr_memcache_server_t::conns
apr_reslist_t * conns
Definition apr_memcache.h:66
apr_memcache_server_t::status
apr_memcache_server_status_t status
Definition apr_memcache.h:64
apr_memcache_server_t::lock
apr_thread_mutex_t * lock
Definition apr_memcache.h:72
apr_memcache_server_t::port
apr_port_t port
Definition apr_memcache.h:63
apr_memcache_stats_t
Definition apr_memcache.h:379
apr_memcache_stats_t::pointer_size
apr_uint32_t pointer_size
Definition apr_memcache.h:389
apr_memcache_stats_t::bytes_written
apr_uint64_t bytes_written
Definition apr_memcache.h:420
apr_memcache_stats_t::curr_connections
apr_uint32_t curr_connections
Definition apr_memcache.h:401
apr_memcache_stats_t::total_items
apr_uint32_t total_items
Definition apr_memcache.h:397
apr_memcache_stats_t::rusage_system
apr_time_t rusage_system
Definition apr_memcache.h:393
apr_memcache_stats_t::bytes
apr_uint64_t bytes
Definition apr_memcache.h:399
apr_memcache_stats_t::total_connections
apr_uint32_t total_connections
Definition apr_memcache.h:403
apr_memcache_stats_t::cmd_set
apr_uint32_t cmd_set
Definition apr_memcache.h:409
apr_memcache_stats_t::threads
apr_uint32_t threads
Definition apr_memcache.h:424
apr_memcache_stats_t::rusage_user
apr_time_t rusage_user
Definition apr_memcache.h:391
apr_memcache_stats_t::version
const char * version
Definition apr_memcache.h:381
apr_memcache_stats_t::get_hits
apr_uint32_t get_hits
Definition apr_memcache.h:411
apr_memcache_stats_t::pid
apr_uint32_t pid
Definition apr_memcache.h:383
apr_memcache_stats_t::cmd_get
apr_uint32_t cmd_get
Definition apr_memcache.h:407
apr_memcache_stats_t::curr_items
apr_uint32_t curr_items
Definition apr_memcache.h:395
apr_memcache_stats_t::connection_structures
apr_uint32_t connection_structures
Definition apr_memcache.h:405
apr_memcache_stats_t::bytes_read
apr_uint64_t bytes_read
Definition apr_memcache.h:418
apr_memcache_stats_t::evictions
apr_uint64_t evictions
Definition apr_memcache.h:416
apr_memcache_stats_t::time
apr_time_t time
Definition apr_memcache.h:387
apr_memcache_stats_t::uptime
apr_uint32_t uptime
Definition apr_memcache.h:385
apr_memcache_stats_t::limit_maxbytes
apr_uint32_t limit_maxbytes
Definition apr_memcache.h:422
apr_memcache_stats_t::get_misses
apr_uint32_t get_misses
Definition apr_memcache.h:413
apr_memcache_t
Definition apr_memcache.h:99
apr_memcache_t::hash_baton
void * hash_baton
Definition apr_memcache.h:105
apr_memcache_t::live_servers
apr_memcache_server_t ** live_servers
Definition apr_memcache.h:103
apr_memcache_t::ntotal
apr_uint16_t ntotal
Definition apr_memcache.h:102
apr_memcache_t::nalloc
apr_uint16_t nalloc
Definition apr_memcache.h:101
apr_memcache_t::flags
apr_uint32_t flags
Definition apr_memcache.h:100
apr_memcache_value_t
Definition apr_memcache.h:113