static bool HHVM_METHOD(Memcache, replace, const String& key, const Variant& var, int flag /*= 0*/, int expire /*= 0*/) { if (key.empty()) { raise_warning("Key cannot be empty"); return false; } auto data = Native::data<MemcacheData>(this_); if (!hasAvailableServers(data)) { return false; } String serializedKey = memcache_prepare_key(key); std::vector<char> serialized = memcache_prepare_for_storage(data, var, flag); memcached_return_t ret = memcached_replace(&data->m_memcache, serializedKey.c_str(), serializedKey.length(), serialized.data(), serialized.size(), expire, flag); return (ret == MEMCACHED_SUCCESS); }
bool c_Memcache::t_replace(CStrRef key, CVarRef var, int flag /*= 0*/, int expire /*= 0*/) { if (key.empty()) { raise_warning("Key cannot be empty"); return false; } String serialized = memcache_prepare_for_storage(var, flag); memcached_return_t ret = memcached_replace(&m_memcache, key.c_str(), key.length(), serialized.c_str(), serialized.length(), expire, flag); return (ret == MEMCACHED_SUCCESS); }
bool c_Memcache::t_add(CStrRef key, CVarRef var, int flag /*= 0*/, int expire /*= 0*/) { INSTANCE_METHOD_INJECTION_BUILTIN(Memcache, Memcache::add); if (key.empty()) { raise_warning("Key cannot be empty"); return false; } String serialized = memcache_prepare_for_storage(var, flag); memcached_return_t ret = memcached_add(&m_memcache, key.c_str(), key.length(), serialized.c_str(), serialized.length(), expire, flag); return (ret == MEMCACHED_SUCCESS); }
static bool HHVM_METHOD(Memcache, add, const String& key, const Variant& var, int flag /*= 0*/, int expire /*= 0*/) { if (key.empty()) { raise_warning("Key cannot be empty"); return false; } auto data = Native::data<MemcacheData>(this_); String serialized = memcache_prepare_for_storage(var, flag); String serializedKey = memcache_prepare_key(key); memcached_return_t ret = memcached_add(&data->m_memcache, serializedKey.c_str(), serializedKey.length(), serialized.c_str(), serialized.length(), expire, flag); return (ret == MEMCACHED_SUCCESS); }
bool c_Memcache::t_set(const String& key, const Variant& var, int flag /*= 0*/, int expire /*= 0*/) { if (key.empty()) { raise_warning("Key cannot be empty"); return false; } String serialized = memcache_prepare_for_storage(var, flag); memcached_return_t ret = memcached_set(&m_memcache, key.c_str(), key.length(), serialized.c_str(), serialized.length(), expire, flag); if (ret == MEMCACHED_SUCCESS) { return true; } return false; }