/**
  * Abort the current transaction.
  */
 protected function transactionAbort()
 {
     $this->getClient()->sendFrame($this->getProtocol()->getAbortFrame($this->transactionId));
     IdGenerator::releaseId($this->transactionId);
 }
Example #2
0
 /**
  * @inheritdoc
  */
 public function __destruct()
 {
     IdGenerator::releaseId($this->subscription->getSubscriptionId());
 }
Example #3
0
 /**
  * Closes given subscription or last opened.
  *
  * @param string $subscriptionId
  * @return bool true if last one was closed
  */
 protected function endSubscription($subscriptionId = null)
 {
     if (!$subscriptionId) {
         $subscriptionId = $this->subscriptions->getLast()->getSubscriptionId();
     }
     if (!isset($this->subscriptions[$subscriptionId])) {
         throw new InvalidArgumentException(sprintf('%s is no active subscription!', $subscriptionId));
     }
     $subscription = $this->subscriptions[$subscriptionId];
     $this->getClient()->sendFrame($this->getProtocol()->getUnsubscribeFrame($subscription->getDestination(), $subscription->getSubscriptionId()));
     IdGenerator::releaseId($subscription->getSubscriptionId());
     unset($this->subscriptions[$subscription->getSubscriptionId()]);
     if ($this->subscriptions->count() == 0) {
         return true;
     }
     return false;
 }