Exemple #1
0
QString UPnpCDSExtensionResults::GetResultXML()
{
    QString sXML;

    for ( CDSObject *pObject  = m_List.first();
                     pObject != NULL;
                     pObject  = m_List.next() )
    {
        sXML += pObject->toXml();
    }

    return( sXML );
}
Exemple #2
0
void CDSObject::toXml( QTextStream &os ) //, FilterMap &filter )
{
    QString sEndTag = "";
    bool    bFilter = false;

    //  -=>TODO: Need to add Filter Support

//    if (filter.find( "*" ) != filter.end())
//        bFilter = false;

    switch( m_eType )
    {   
        case OT_Container:
        {
            os << "<container id=\"" << m_sId << "\" parentID=\"" << m_sParentId
               << "\" childCount=\"" << GetChildCount() << "\" restricted=\"" << GetBool( m_bRestricted )
               << "\" searchable=\"" << GetBool( m_bSearchable ) << "\" >";

            sEndTag = "</container>";

            break;
        }
        case OT_Item:
        {
            os << "<item id=\"" << m_sId << "\" parentID=\"" << m_sParentId
               << "\" restricted=\"" << GetBool( m_bRestricted ) << "\" >";

            sEndTag = "</item>";

            break;
        }
        default: break;
    }

    os << "<dc:title>"   << m_sTitle << "</dc:title>";
    os << "<upnp:class>" << m_sClass << "</upnp:class>";

    // ----------------------------------------------------------------------
    // Output all Properties
    // ----------------------------------------------------------------------

    for( PropertiesIterator it( m_properties ); it.current(); ++it )
    {
        Property *pProp = it.current();

        if (pProp->m_bRequired || (pProp->m_sValue.length() > 0))
        {
            QString sName;
            
            if (pProp->m_sNameSpace.length() > 0)
                sName = pProp->m_sNameSpace + ":" + pProp->m_sName;
            else
                sName = pProp->m_sName;

            if (pProp->m_bRequired || !bFilter ) //|| ( filter.find( sName ) != filter.end())
            {
                os << "<"  << sName << ">";
                os << pProp->m_sValue;
                os << "</" << sName << ">";
            }
        }
    }

    // ----------------------------------------------------------------------
    // Output any Res Elements
    // ----------------------------------------------------------------------

    for ( Resource *pRes  = m_resources.first(); 
                    pRes != NULL; 
                    pRes  = m_resources.next() )
    {
        os << "<res protocolInfo=\"" << pRes->m_sProtocolInfo << "\" ";

        for (NameValue *pNV  = pRes->m_lstAttributes.first(); 
                        pNV != NULL; 
                        pNV  = pRes->m_lstAttributes.next())
        {                               
            os << pNV->sName << "=\"" << pNV->sValue << "\" ";
        }

        os << ">" << pRes->m_sURI;                                            
        os << "</res>\r\n";
    }

    // ----------------------------------------------------------------------
    // Output any children
    // ----------------------------------------------------------------------

    for ( CDSObject *pObject  = m_children.first(); 
                  pObject != NULL; 
                  pObject = m_children.next() )
    {
        pObject->toXml( os ); //, filter );
    }

    // ----------------------------------------------------------------------
    // Close Element Tag
    // ----------------------------------------------------------------------

    os << sEndTag;
}