Example #1
0
 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();
 }
Example #2
0
 /**
  * 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();
 }
Example #4
0
 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();
 }