Horde_Imap_Client_Socket::_convertCatenateUrl PHP Method

_convertCatenateUrl() protected method

Converts a CATENATE URL to stream data.
protected _convertCatenateUrl ( string $url ) : resource
$url string The CATENATE URL.
return resource A stream containing the data.
    protected function _convertCatenateUrl($url)
    {
        $e = $part = null;
        $url = new Horde_Imap_Client_Url_Imap($url);
        if (!is_null($url->mailbox) && !is_null($url->uid)) {
            try {
                $status_res = is_null($url->uidvalidity) ? null : $this->status($url->mailbox, Horde_Imap_Client::STATUS_UIDVALIDITY);
                if (is_null($status_res) || $status_res['uidvalidity'] == $url->uidvalidity) {
                    if (!isset($this->_temp['catenate_ob'])) {
                        $this->_temp['catenate_ob'] = new Horde_Imap_Client_Socket_Catenate($this);
                    }
                    $part = $this->_temp['catenate_ob']->fetchFromUrl($url);
                }
            } catch (Horde_Imap_Client_Exception $e) {
            }
        }
        if (is_null($part)) {
            $message = 'Bad IMAP URL given in CATENATE data: ' . strval($url);
            if ($e) {
                $message .= ' ' . $e->getMessage();
            }
            throw new InvalidArgumentException($message);
        }
        return $part;
    }