int WSDDTransport::updateWSDD()

in src/wsdd/WSDDTransport.cpp [127:186]


int WSDDTransport::updateWSDD(FILE* wsddfile, int tabcount)
{
    WSDDHandlerList::iterator iter2;
    const char* trtype = 0;
    for (int type = APTHTTP1_0; type < APTOTHER; type++)
    {
        if((m_RequestHandlers && 
            (m_RequestHandlers->find((AXIS_PROTOCOL_TYPE)type) != 
            m_RequestHandlers->end())) ||
            (m_RequestHandlers && 
            (m_RequestHandlers->find((AXIS_PROTOCOL_TYPE)type) != 
            m_RequestHandlers->end())))
        {
            trtype = (APTHTTP1_0 == type || APTHTTP1_1 == type) ? 
                "http" : ((APTSMTP == type) ? "smtp" : "unsupported");
            if (fputs("\t<transport name=\"", wsddfile) < 0) return AXIS_FAIL;
            if (fputs(trtype, wsddfile) < 0) return AXIS_FAIL;
            if (fputs("\" >\n", wsddfile) < 0) return AXIS_FAIL;
            /* Write request flow handler configuration */
            if(m_RequestHandlers && 
                (m_RequestHandlers->find((AXIS_PROTOCOL_TYPE)type) != 
                m_RequestHandlers->end()))
            {
                WSDDHandlerList &list = 
                    (*m_RequestHandlers)[(AXIS_PROTOCOL_TYPE)type];
                if (fputs("\t\t<requestFlow>\n", wsddfile) < 0) 
                    return AXIS_FAIL;
                for(iter2 = list.begin(); iter2 != list.end(); iter2++)
                {
                    if (AXIS_SUCCESS != 
                        (*iter2)->updateWSDD(wsddfile, tabcount)) 
                        return AXIS_FAIL;
                }            
                if (fputs("\t\t</requestFlow>\n", wsddfile) < 0) 
                    return AXIS_FAIL;
            }
            /* Write response flow handler configuration */
            if(m_ResponseHandlers &&
                (m_ResponseHandlers->find((AXIS_PROTOCOL_TYPE)type) != 
                m_ResponseHandlers->end()))
            {
                WSDDHandlerList &list = 
                    (*m_ResponseHandlers)[(AXIS_PROTOCOL_TYPE)type];
                if (fputs("\t\t<responseFlow>\n", wsddfile) < 0) 
                    return AXIS_FAIL;
                for(iter2 = list.begin(); iter2 != list.end(); iter2++)
                {
                    if (AXIS_SUCCESS != 
                        (*iter2)->updateWSDD(wsddfile, tabcount)) 
                        return AXIS_FAIL;
                }            
                if (fputs("\t\t</responseFlow>\n", wsddfile) < 0) 
                    return AXIS_FAIL;
            }
            if (fputs("\t</transport>\n", wsddfile) < 0) return AXIS_FAIL;
        }

    }
    return AXIS_SUCCESS;
}