protected function _getHeader($type, $seen)
{
if (!isset($this->_header)) {
if (!$this->_indices) {
$this->_header = $this->_message->addMimeHeaders();
} else {
$query = new Horde_Imap_Client_Fetch_Query();
$query->headerText(array('peek' => !$seen));
$this->_header = ($res = $this->_fetchData($query)) ? $res : new Horde_Imap_Client_Data_Fetch();
}
}
switch ($type) {
case self::HEADER_OB:
return $this->_indices ? $this->_header->getHeaderText(0, Horde_Imap_Client_Data_Fetch::HEADER_PARSE) : $this->_header;
case self::HEADER_TEXT:
return $this->_indices ? $this->_header->getHeaderText() : $this->_header->toString();
case self::HEADER_STREAM:
if ($this->_indices) {
return $this->_header->getHeaderText(0, Horde_Imap_Client_Data_Fetch::HEADER_STREAM);
}
$stream = new Horde_Support_StringStream($this->_header->toString());
$stream->fopen();
return $stream;
}
}