28#include <libmemcached/memcached.h>
30#ifdef LIBMEMCACHED_VERSION_STRING
31typedef memcached_return memcached_return_t;
45 memcached_return_t _rc;
48 memcached_server_st *_servers;
66 Memcache(
const std::string& servernames =
"localhost",
unsigned int timeout = 3600 ) {
74 _memc = memcached_create(NULL);
77 _servers = memcached_servers_parse( servernames.c_str() );
81 _rc = memcached_behavior_set( _memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, 1 );
82 _rc = memcached_behavior_set( _memc, MEMCACHED_BEHAVIOR_NO_BLOCK, 1 );
83 _rc = memcached_behavior_set( _memc, MEMCACHED_BEHAVIOR_TCP_NODELAY, 1 );
84 _rc = memcached_behavior_set( _memc, MEMCACHED_BEHAVIOR_NOREPLY, 1 );
87 _rc = memcached_server_push( _memc, _servers );
88 if(_rc == MEMCACHED_SUCCESS ) _connected =
true;
89 else _connected =
false;
91 if( memcached_server_count(_memc) > 0 ) _connected =
true;
92 else _connected =
false;
99 if( _servers ) memcached_server_free(_servers);
100 if( _memc ) memcached_free(_memc);
109 void store(
const std::string& key,
void* data,
unsigned int length ){
111 if( !_connected )
return;
113 std::string k =
"iipsrv::" + key;
114 _rc = memcached_set( _memc, k.c_str(), k.length(),
126 if( !_connected )
return NULL;
129 std::string k =
"iipsrv::" + key;
130 return memcached_get( _memc, k.c_str(), k.length(), &_length, &flags, &_rc );
136 return memcached_strerror( _memc, _rc );
141 unsigned int length(){
return _length; };
Cache to store raw tile data.
Definition Memcached.h:36
void store(const std::string &key, void *data, unsigned int length)
Insert data into our cache.
Definition Memcached.h:109
bool connected()
Tell us whether we are connected to any memcached servers.
Definition Memcached.h:145
char * retrieve(const std::string &key)
Retrieve data from our cache.
Definition Memcached.h:124
Memcache(const std::string &servernames="localhost", unsigned int timeout=3600)
Constructor.
Definition Memcached.h:66
const char * error()
Get error string.
Definition Memcached.h:135
~Memcache()
Destructor.
Definition Memcached.h:97
unsigned int length()
Return the number of bytes in the result.
Definition Memcached.h:141