public function testSetSuccessCompressed() { $memcache = new Memcache(); $request = new MemcacheSetRequest(); $item = $request->addItem(); $item->setKey("float"); $item->setValue("3"); $item->setFlags(6); // float $item->setSetPolicy(SetPolicy::SET); $item->setExpirationTime(30); $response = new MemcacheSetResponse(); $response->addSetStatus(SetStatusCode::STORED); $this->apiProxyMock->expectCall('memcache', 'Set', $request, $response); $this->assertTrue(memcache_set($memcache, "float", 3.0, MEMCACHE_COMPRESSED, 30)); $this->apiProxyMock->verify(); }
/** * Performs a set and check operation, so that the item will be stored only * if no other client has updated it since it was last fetched by this * client. * * @param mixed $cas_token Unique memcached assigned value. * @param string $key The key under which to store the value. * @param mixed $value The value to store. * @param int $expiration The expiration time, defaults to 0. * * @return bool True on success, or false on failure. */ public function cas($cas_token, $key, $value, $expiration = 0) { $key = $this->getPrefixKey($key); $request = new MemcacheSetRequest(); $response = new MemcacheSetResponse(); $memcache_flag = 0; $serialized_value = MemcacheUtils::serializeValue($value, $memcache_flag); $item = $request->addItem(); $item->setKey($key); $item->setValue($serialized_value); $item->setFlags($memcache_flag); $item->setSetPolicy(SetPolicy::CAS); $item->setCasId($cas_token); $item->setExpirationTime($expiration); try { ApiProxy::makeSyncCall('memcache', 'Set', $request, $response); } catch (Error $e) { $this->result_code = self::RES_FAILURE; return false; } switch ($response->getSetStatusList()[0]) { case SetStatusCode::STORED: $this->result_code = self::RES_SUCCESS; return true; case SetStatusCode::NOT_STORED: $this->result_code = self::RES_NOTSTORED; return false; case SetStatusCode::EXISTS: $this->result_code = self::RES_DATA_EXISTS; return false; default: $this->result_code = self::RES_FAILURE; return false; } }
public function testTouchSuccess() { $request = new MemcacheGetRequest(); $request->addKey("key"); $request->setForCas(true); $response = new MemcacheGetResponse(); $item = $response->addItem(); $item->setKey("key"); $item->setValue("value"); $item->setFlags(0); // string. $item->setCasId(123456); $this->apiProxyMock->expectCall('memcache', 'Get', $request, $response); $request = new MemcacheSetRequest(); $item = $request->addItem(); $item->setKey("key"); $item->setValue("value"); $item->setFlags(0); // string $item->setCasId(123456); $item->setSetPolicy(SetPolicy::CAS); $item->setExpirationTime(999); $response = new MemcacheSetResponse(); $response->addSetStatus(SetStatusCode::STORED); $this->apiProxyMock->expectCall('memcache', 'Set', $request, $response); $memcached = new Memcached(); $this->assertTrue($memcached->touch("key", 999)); $this->apiProxyMock->verify(); }
public static function setMultiWithPolicy($keyValues, $expire, $policy) { $request = new MemcacheSetRequest(); $response = new MemcacheSetResponse(); foreach ($keyValues as $key => $value) { $memcache_flag = 0; $serialized_value = self::serializeValue($value, $memcache_flag); $item = $request->addItem(); $item->setKey($key); $item->setValue($serialized_value); $item->setFlags($memcache_flag); $item->setSetPolicy($policy); $item->setExpirationTime($expire); } ApiProxy::makeSyncCall('memcache', 'Set', $request, $response); return $response->getSetStatusList(); }