//---------------------------------------------------------------
// CNativeMmsUtility::getBodyTextFromAttManL
// @see header
//---------------------------------------------------------------
void CNativeMmsUtility::getBodyTextFromAttManL(QString& returnbuf)
{
#ifdef _DEBUG_TRACES_
    qDebug() << " Enter CNativeMmsUtility::getBodyTextFromAttManL";
#endif

    TUint count = iattachmanager->AttachmentCount();
    for (int i = 0; i < count; i++)
    {
        CMsvAttachment *attachment = iattachmanager->GetAttachmentInfoL(i);
        TPtrC8 mimetype = attachment->MimeType();

        if (!isAttachment(attachment) && mimetype.CompareF(KMsgMimeTextPlain)
                == 0)
        {
            QString filepath =
                    XQConversions::s60DescToQString(attachment->FilePath());
            readFileIntoBuffer(filepath, returnbuf);
            break;
        }
    }

#ifdef _DEBUG_TRACES_
    qDebug() << " Exit CNativeMmsUtility::getBodyTextFromAttManL";
#endif

    return;
}
//---------------------------------------------------------------
// CNativeMmsUtility::getBodyTextFromSmilL
// @see header
//---------------------------------------------------------------
void CNativeMmsUtility::getBodyTextFromSmilL(QString& returnbuf)
{
#ifdef _DEBUG_TRACES_
    qDebug() << " Enter CNativeMmsUtility::getBodyTextFromSmilL";
#endif

    TPtrC attrvalptr;

    //reset the reader to the root of the DOM tree
    ireader->reset();

    //begin traversal
    while (!ireader->atEndL())
    {
        CMDXMLNode* node = ireader->nextNodeL();

        if (node->NodeType() == CMDXMLNode::EElementNode
                && node->NodeName().CompareF(KTextTag) == 0)
        {
            CMDXMLElement* el = static_cast<CMDXMLElement*> (node);
            if (KErrNone == el->GetAttribute(KSrcAttr, attrvalptr))
            {
                QString filepath = getByUrlL(attrvalptr);
                if (filepath.isEmpty())
                {
                    //get smil's containing dir
                    //because media source is relative to it.
                    QString smildirpath = fileDir(ismilfilepath);
                    QString mfilename =
                            XQConversions::s60DescToQString(attrvalptr);
                    filepath = smildirpath.append(mfilename);
                }
                readFileIntoBuffer(filepath, returnbuf);
                break;
            }
        }
    }

#ifdef _DEBUG_TRACES_
    qDebug() << " Exit CNativeMmsUtility::getBodyTextFromSmilL";
#endif

    return;
}
DirectoryEntryContent* DirectoryListingService::get(DirectoryEntry* req) {
	DirectoryEntryContent* rep = new DirectoryEntryContent();

	if (_knownEntries.find(req->name()) == _knownEntries.end()) {
		UM_LOG_ERR("Request for unkown file '%s'", req->name().c_str());
		return rep;
	}

	struct stat fileStat;
	if (stat((_dir + '/' +  req->name()).c_str(), &fileStat) != 0) {
		UM_LOG_ERR("Error with stat on '%s': %s", req->name().c_str(), strerror(errno));
		return rep;
	}
	char* buffer = readFileIntoBuffer(req->name().c_str(), fileStat.st_size);
	rep->set_content(buffer, fileStat.st_size);
	rep->set_md5(md5(buffer, fileStat.st_size));
	free(buffer);
	return rep;
}