int DummySpdyConnStream::eventLoop()
{
    int lenInBuff = 0;
    int length;

    while( m_running )
    {
        if(m_InputBuff.empty())
        {
            length = m_Datalen - lenInBuff;
            if(length == 0)
            {
                m_running = 0;
                continue;
            }
            if(length >80)
                length = 80;
            m_InputBuff.append(m_pDatabuff + lenInBuff, length);
            lenInBuff += length;

        }
        if ( isWantRead() && !m_InputBuff.empty())
        {
            getHandler()->onReadEx();
        }
        if ( isWantWrite() )
            getHandler()->onWriteEx();
        
    }
    return 0;    
}
int SpdyStream::onInitConnected()
{
    getHandler()->onInitConnected();
    if (isWantRead())
        getHandler()->onReadEx();
    if (isWantWrite())
        getHandler()->onWriteEx();
    return 0;
}
int SpdyStream::onInitConnected()
{
    getHandler()->onInitConnected();
    if (isWantRead())
        getHandler()->onReadEx();
    if (isWantWrite())
        if (next() == NULL)
            m_pSpdyConn->add2PriorityQue(this);
    return 0;
}
int SpdyStream::appendReqData(char *pData, int len, uint8_t flags)
{
    if (m_bufIn.append(pData, len) == -1)
        return LS_FAIL;
    if (isFlowCtrl())
        m_iWindowIn -= len;
    //Note: SPDY_CTRL_FLAG_FIN is directly mapped to HIO_FLAG_PEER_SHUTDOWN
    //      SPDY_CTRL_FLAG_UNIDIRECTIONAL is directly mapped to HIO_FLAG_LOCAL_SHUTDOWN
    if (flags & (SPDY_CTRL_FLAG_FIN | SPDY_CTRL_FLAG_UNIDIRECTIONAL))
        setFlag(flags & (SPDY_CTRL_FLAG_FIN | SPDY_CTRL_FLAG_UNIDIRECTIONAL), 1);

    if (isWantRead())
        getHandler()->onReadEx();
    return len;
}