void CConnectionControl::Request()
{
   __ASSERT_ALWAYS(iCritical.IsBlocked(), 
                   User::Panic(KConnPanic, ENoCritical));
   ASSERT_IS_THREAD(iThreadId, EWrongThread);
   ActivateSelf();
   if(iCommands->Count() > 0){
      CompleteSelf(KErrNone);
   }
}
void CCommandParser::DataReadyL(const TDesC8& aData)
    {
    if(IsActive())
        {
        return;
        }
    
    if(iData)
        {
        User::Free(iData);
        iData = NULL;
        }
    iData = (TUint8*)User::AllocL(aData.Length());
    iDataPtr.Set(iData,aData.Length(),aData.Length());
    for(TInt i=0;i<aData.Length();i++)
        {
        iDataPtr[i] = aData[i];
        }
    iState = iDataPtr[1];
    ActivateSelf();
    }