/**
  * Get the queue or return the default.
  * @param $queue
  * @return OpenCloudQueue
  * @throws \OpenCloud\Common\Exceptions\InvalidArgumentError
  */
 protected function getQueue($queue)
 {
     if (is_null($queue)) {
         return $this->queue;
     }
     return $this->openCloudService->createQueue($queue);
 }
 /**
  * @param $queue
  *
  * @return \OpenCloud\Queues\Resource\Queue
  */
 private function createQueue($queue)
 {
     if (!empty($queue)) {
         $this->queue = $this->openCloudService->createQueue($queue);
     } else {
         $this->queue = $this->openCloudService->createQueue($this->default);
     }
     return $this->queue;
 }
 /**
  * Establish a queue connection.
  *
  * @param array $config
  *
  * @return \Faulker\RackspaceCloudQueue\Queue\RackspaceCloudQueue
  */
 public function connect(array $config)
 {
     switch ($config['endpoint']) {
         case 'US':
             $endpoint = Rackspace::US_IDENTITY_ENDPOINT;
             break;
         case 'UK':
         default:
             $endpoint = Rackspace::UK_IDENTITY_ENDPOINT;
     }
     if ($this->connection == null) {
         $this->connection = new Rackspace($endpoint, array('username' => $config['username'], 'apiKey' => $config['apiKey']));
     }
     if ($this->service === null) {
         $this->service = $this->connection->queuesService(Service::DEFAULT_NAME, $config['region'], $config['urlType']);
     }
     $this->service->setClientId();
     return new RackspaceCloudQueue($this->service, $config['queue']);
 }