void OsclDNSMethod::Run()
{
    //the request timed out!
    MethodDone();
    LOGINFOMED((0, "OsclSocket: %s %s", TPVDNSFxnStr[iDNSFxn], TPVDNSEventStr[EPVDNSTimeout]));
    iDNSObserver->HandleDNSEvent(iId, iDNSFxn, EPVDNSTimeout, 0);
}
void OsclDNSRequestAO::Run()
{
    //the request was completed.
    RequestDone();
    switch (Status())
    {
        case OSCL_REQUEST_ERR_NONE:
            Success();
            LOGINFOMED((0, "OsclSocket: %s %s", TPVDNSFxnStr[iDNSMethod->iDNSFxn], TPVDNSEventStr[EPVDNSSuccess]));
            iDNSMethod->iDNSObserver->HandleDNSEvent(iDNSMethod->iId, iDNSMethod->iDNSFxn, EPVDNSSuccess, 0);
            break;
        case OSCL_REQUEST_ERR_CANCEL:
            LOGINFOMED((0, "OsclSocket: %s %s", TPVDNSFxnStr[iDNSMethod->iDNSFxn], TPVDNSEventStr[EPVDNSCancel]));
            iDNSMethod->iDNSObserver->HandleDNSEvent(iDNSMethod->iId, iDNSMethod->iDNSFxn, EPVDNSCancel, 0);
            break;
        default:
            LOGINFOMED((0, "OsclSocket: %s %s %d", TPVDNSFxnStr[iDNSMethod->iDNSFxn], TPVDNSEventStr[EPVDNSCancel], GetSocketError()));
            iDNSMethod->iDNSObserver->HandleDNSEvent(iDNSMethod->iId, iDNSMethod->iDNSFxn, EPVDNSFailure, GetSocketError());
            break;
    }
}
void OsclSocketRequestAO::Run()
{
    //The server has completed the socket request.

    RequestDone();


    // Check the request completion status
    switch (Status())
    {
        case OSCL_REQUEST_ERR_NONE:
            ADD_STATS(iContainer.iSocketFxn, EOsclSocket_RequestAO_Success);
            Success();
            LOGINFOMED((0, "OsclSocket(0x%x): %s %s ", SocketI(), TPVSocketFxnStr[iContainer.iSocketFxn], TPVSocketEventStr[EPVSocketSuccess]));
            LOG_STATS(iContainer.iSocketFxn);
            CLEAR_STATS(iContainer.iSocketFxn);
            SocketObserver()->HandleSocketEvent(Id(), iContainer.iSocketFxn, EPVSocketSuccess, 0);
            break;

        case OSCL_REQUEST_ERR_CANCEL:
            ADD_STATS(iContainer.iSocketFxn, EOsclSocket_RequestAO_Canceled);
            //Request was cancelled, either due to an API call or due to the
            //socket server shutting down before completing the operation.
            LOGINFOMED((0, "OsclSocket(0x%x): %s %s ", SocketI(), TPVSocketFxnStr[iContainer.iSocketFxn], TPVSocketEventStr[EPVSocketCancel]));
            LOG_STATS(iContainer.iSocketFxn);
            CLEAR_STATS(iContainer.iSocketFxn);
            SocketObserver()->HandleSocketEvent(Id(), iContainer.iSocketFxn, EPVSocketCancel, 0);
            break;

        default:
            ADD_STATS(iContainer.iSocketFxn, EOsclSocket_RequestAO_Error);
            //Some error.
            LOGINFOMED((0, "OsclSocket(0x%x): %s %s %d", SocketI(), TPVSocketFxnStr[iContainer.iSocketFxn], TPVSocketEventStr[EPVSocketFailure], GetSocketError()));
            LOG_STATS(iContainer.iSocketFxn);
            CLEAR_STATS(iContainer.iSocketFxn);
            SocketObserver()->HandleSocketEvent(Id(), iContainer.iSocketFxn, EPVSocketFailure, GetSocketError());
            break;
    }
}
OsclAny* OsclSocketRequestAO::NewRequest(const uint32 size)
{
    //Activate the AO.  The socket server will complete the request.
    PendForExec();

    bool reallocate = (!iParam || size != iParamSize);

    //Cleanup any previous parameters.
    CleanupParam(reallocate);

    LOGINFOMED((0, "OsclSocket(0x%x): New Request %s", SocketI(), TPVSocketFxnStr[iContainer.iSocketFxn]));

    //Allocate space for new parameters, or recycle current space.
    if (reallocate)
    {
        iParamSize = size;
        return Alloc().ALLOCATE(size);
    }
    else
        return iParam;
}
//////////// Request AO //////////////////////
void OsclDNSRequestAO::NewRequest()
{
    PendForExec();
    LOGINFOMED((0, "OsclSocket: New Request %s", TPVDNSFxnStr[iDNSMethod->iDNSFxn]));
}