diff -r 630d2f34d719 -r 07a122eea281 telephonyprotocols/rawipnif/src/BcaIoController.cpp --- a/telephonyprotocols/rawipnif/src/BcaIoController.cpp Tue Aug 31 16:23:08 2010 +0300 +++ b/telephonyprotocols/rawipnif/src/BcaIoController.cpp Wed Sep 01 12:40:21 2010 +0100 @@ -19,12 +19,6 @@ @file BcaIoController.cpp */ - -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "BcaIoControllerTraces.h" -#endif - #include #include #include @@ -44,13 +38,16 @@ extern const TInt KMaxRxIPPacketSize = KMaxIPPacket + KIPTagHeaderLength; #endif -CBcaIoController::CBcaIoController(MControllerObserver& aObserver) +CBcaIoController::CBcaIoController(MControllerObserver& aObserver, + CBttLogger* aTheLogger) /** * Constructor. * * @param aObserver Reference to the observer of this state machine + * @param aTheLogger The logging object */ - : iSendState(EIdle), + : iTheLogger(aTheLogger), + iSendState(EIdle), iFlowBlocked(EFalse), iNumPacketsInSendQueue(0), iObserver(aObserver), @@ -61,28 +58,29 @@ { } -CBcaIoController* CBcaIoController::NewL(MControllerObserver& aObserver) +CBcaIoController* CBcaIoController::NewL(MControllerObserver& aObserver, CBttLogger* aTheLogger) /** * Two-phase constructor. Creates a new CBcaIoController object, performs * second-phase construction, then returns it. * * @param aObserver The observer, to which events will be reported + * @param aTheLogger The logging object * @return A newly constructed CBcaIoController object */ - { - CBcaIoController* self = new (ELeave) CBcaIoController(aObserver); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } + { + CBcaIoController* self = new (ELeave) CBcaIoController(aObserver, aTheLogger); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } void CBcaIoController::ConstructL() /** * Second-phase constructor. Creates all the state objects it owns. */ { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_CONSTRUCTL_1, "CBcaIoController::ConstructL"); + _LOG_L1C1(_L8("CBcaIoController::ConstructL")); #ifdef RAWIP_HEADER_APPENDED_TO_PACKETS iIPTagHeader = new (ELeave) CIPTagHeader(iTheLogger); @@ -108,11 +106,10 @@ // end note - iSender = CSender::NewL(*this, iMaxTxPacketSize); - iReceiver = CReceiver::NewL(*this, iMaxRxPacketSize); - iLoader = new (ELeave) CBcaControl(*this); + iSender = CSender::NewL(*this, iTheLogger, iMaxTxPacketSize); + iReceiver = CReceiver::NewL(*this, iTheLogger, iMaxRxPacketSize); + iLoader = new (ELeave) CBcaControl(*this, iTheLogger); } - CBcaIoController::~CBcaIoController() @@ -148,7 +145,7 @@ * Used to kick off the initialisation for this module */ { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_STARTL_1, "CBcaIoController::StartL is called."); + _LOG_L1C1(_L8("CBcaIoController::StartL is called.")); iLoader->StartLoadL(); } @@ -160,7 +157,7 @@ * @param aError the passed in error code as to why Stop has been called */ { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_STOP_1, "CBcaIoController::Stop is called."); + _LOG_L1C1(_L8("CBcaIoController::Stop is called.")); //Stop all the active objects iReceiver->Cancel(); @@ -185,12 +182,12 @@ * @param aPdu a data packet */ { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_SEND_1, "<>CBcaIoController::Send")); // Check if flow is shutting down if (iSendState == EShuttingDown) { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_SEND_2, " ERROR: Nif is shutting down"); + _LOG_L2C1(_L8(" ERROR: Nif is shutting down")); // when the flow is destroyed the memory for this packet will be // cleaned up - just tell the layers above to stop sending. @@ -203,8 +200,8 @@ // add it to our queue if ((aPdu.Length() - aPdu.First()->Length()) > iMaxTxPacketSize) { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_SEND_3, "Packet is too large - discarding"); - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_SEND_4, "< Error"); + _LOG_L2C1(_L8("Packet is too large - discarding")); + _LOG_L1C1(_L8("< Error")); // in debug panic - this should not happen, MTU on the uplink should // be strictly enforced @@ -215,7 +212,7 @@ // may be counter intuitive, however the only options here are either // send accepted or blocked (MLowerDataSender). - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_SEND_5, "<Send(aPdu); @@ -278,7 +275,7 @@ // otherwise, block this flow until we have room for the next // packet - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_SEND_12, "<>CBcaIoController::SendComplete"); + _LOG_L1C1(_L8(">>CBcaIoController::SendComplete")); // if we've been blocked while in the middle of a // send - don't continue sending, this will happen // when the flow is resumed. - + iSendState = EIdle; // are we available to transmit? @@ -324,11 +321,11 @@ iSendState = ESending; RMBufChain tmpPdu; - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_SENDCOMPLETE_2, " Packet removed from queue to send"); + _LOG_L1C1(_L8(" Packet removed from queue to send")); RemoveFromSendQueue(tmpPdu); // Update module state - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_SENDCOMPLETE_3, " set State to ESending"); + _LOG_L2C1(_L8(" set State to ESending")); iSender->Send(tmpPdu); @@ -343,7 +340,7 @@ } } - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_SENDCOMPLETE_4, "<>CBcaIoController::ResumeSending"); + _LOG_L1C1(_L8(">>CBcaIoController::ResumeSending")); // allows for normal SendComplete behaviour if there is // a packet outstanding with BCA @@ -381,11 +378,11 @@ if ((resumeSending) || (!IsSendQueueEmpty())) { RMBufChain tmpPdu; - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_RESUMESENDING_2, " Packet removed from queue to send"); + _LOG_L1C1(_L8(" Packet removed from queue to send")); RemoveFromSendQueue(tmpPdu); // Update module state - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_RESUMESENDING_3, " set State to ESending"); + _LOG_L2C1(_L8(" set State to ESending")); iSendState = ESending; iSender->Send(tmpPdu); @@ -401,7 +398,7 @@ } } - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_RESUMESENDING_4, "<SetType(aType); } @@ -420,7 +417,7 @@ * Used to add the IP header to the packet before sending to the BCA. */ { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_ADDHEADER_1, "CBcaController::AddHeader"); + _LOG_L1C1(_L8("CBcaController::AddHeader")); iIPTagHeader->AddHeader(aDes); } @@ -432,21 +429,23 @@ * @return The IP header that has been removed from the packet */ { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCAIOCONTROLLER_REMOVEHEADER_1, "CBcaController::RemoveHeader"); + _LOG_L1C1(_L8("CBcaController::RemoveHeader")); return (iIPTagHeader->RemoveHeader(aPdu)); } #endif // RAWIP_HEADER_APPENDED_TO_PACKETS -CBcaControl::CBcaControl(CBcaIoController& aObserver) +CBcaControl::CBcaControl(CBcaIoController& aObserver, CBttLogger* aTheLogger) /** * Constructor. Performs standard active object initialisation. * * @param aObserver Reference to the observer of this state machine + * @param aTheLogger The logging object */ : CActive(EPriorityStandard), iObserver(aObserver), + iTheLogger(aTheLogger), iMBca(NULL), iState(EIdling), iError(KErrNone) @@ -480,7 +479,7 @@ * */ { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_1, "CBcaControl::RunL() called"); + _LOG_L1C1(_L8("CBcaControl::RunL() called")); switch (iState) { //in this state, Ioctl is called to set IAP ID, check the result of @@ -492,11 +491,11 @@ { if(iStatus == KErrNotSupported) { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_2, "This BCA does not support IAPID set"); + _LOG_L1C1(_L8("This BCA does not support IAPID set")); } else { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_3, "This BCA supports IAPID set"); + _LOG_L2C1(_L8("This BCA supports IAPID set")); } TPtrC bcaStack = iObserver.BcaStack(); @@ -516,7 +515,7 @@ } else { - OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_4, "ERROR in BCA IAPID set = %d", iStatus.Int()); + _LOG_L1C2(_L8("ERROR in BCA IAPID set = %d"), iStatus.Int()); iObserver.Stop(iStatus.Int()); } @@ -531,11 +530,11 @@ { if(iStatus == KErrNotSupported) { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_5, "This BCA does not support BCA stacking"); + _LOG_L1C1(_L8("This BCA does not support BCA stacking")); } else { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_6, "This BCA supports BCA stacking"); + _LOG_L2C1(_L8("This BCA supports BCA stacking")); } iMBca->Open(iStatus, iObserver.Port()); iState = EBcaStackSet; @@ -543,7 +542,7 @@ } else { - OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_7, "ERROR in BCA stack set = %d", iStatus.Int()); + _LOG_L2C2(_L8("ERROR in BCA stack set = %d"), iStatus.Int()); iObserver.Stop(iStatus.Int()); } break; @@ -555,7 +554,7 @@ { if(iStatus != KErrNone && iStatus != KErrAlreadyExists) { - OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_8, "ERROR in BCA Open = %d", iStatus.Int()); + _LOG_L2C2(_L8("ERROR in BCA Open = %d"), iStatus.Int()); iObserver.Stop(iStatus.Int()); } else @@ -563,11 +562,11 @@ iState = EBcaOpened; //Activate the receiver Active Object iObserver.Receiver().StartListening(); - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_9, "CBcaIoController Is Initialised"); + _LOG_L1C1(_L8("CBcaIoController Is Initialised")); TRAPD(err, iObserver.GetObserver().InitialiseL(MRawIPObserverBase::EBcaController,KErrNone)); if(err != KErrNone) { - OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_10, "ERROR in BCA Open Initialise observer = %d", err); + _LOG_L2C2(_L8("ERROR in BCA Open Initialise observer = %d"), err); iObserver.Stop(err); } } @@ -585,9 +584,8 @@ // Wrong state. default: { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_11, "ERROR CBcaControl::RunL(): Unknown state"); - OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_RUNL_12, "PANIC: %S %d", KNifName, KBcaUnkownState); - User::Panic(KNifName, KBcaUnkownState); + _LOG_L1C1(_L8("ERROR CBcaControl::RunL(): Unknown state")); + _BTT_PANIC(KNifName, KBcaUnkownState); break; } } @@ -599,8 +597,8 @@ * cancel active request. */ { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_DOCANCEL_1, "CBcaControl::DoCancel called."); - OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_DOCANCEL_2, "iState value is %d", iState); + _LOG_L1C1(_L8("CBcaControl::DoCancel called.")); + _LOG_L2C2(_L8("iState value is %d"), iState); switch (iState) { case EIdling: @@ -616,9 +614,8 @@ iState = EIdling; break; default: - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_DOCANCEL_3, "ERROR CBcaControl::DoCancel(): Unknown state"); - OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_DOCANCEL_4, "PANIC: %S %d", KNifName, KBcaUnkownState); - User::Panic(KNifName, KBcaUnkownState); + _LOG_L2C1(_L8("ERROR CBcaControl::DoCancel(): Unknown state")); + _BTT_PANIC(KNifName, KBcaUnkownState); break; } } @@ -628,7 +625,7 @@ * This method loads the C32BCA library and uses Ioctl to set the Bca iIapId. */ { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_STARTLOADL_1, "CBcaControl::StartLoad"); + _LOG_L1C1(_L8("CBcaControl::StartLoad")); //iMBca should not be initialized at this point __ASSERT_DEBUG(!iMBca,Panic(KBcaAlreadyExists)); @@ -650,7 +647,7 @@ TNewBcaFactoryL newBcaFactoryProcL = (TNewBcaFactoryL)iBcaDll.iObj.Lookup(1); if (NULL == newBcaFactoryProcL) { - OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_STARTLOADL_2, "Library entry point found error %d", KErrBadLibraryEntryPoint); + _LOG_L1C2(_L8("Library entry point found error %d"), KErrBadLibraryEntryPoint); User::Leave(KErrBadLibraryEntryPoint); } @@ -658,7 +655,7 @@ if(!bcaFactory) { - OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_STARTLOADL_3, "BcaFactory creation error %d", KErrCompletion); + _LOG_L1C2(_L8("BcaFactory creation error %d"), KErrCompletion); User::Leave(KErrCompletion); } CleanupReleasePushL(*bcaFactory); @@ -691,7 +688,7 @@ { if(aError == KErrConnectionTerminated ) { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_SHUTDOWNBCA_1, "This is an emergency shutdown, it kills the NIF immediately."); + _LOG_L1C1(_L8("This is an emergency shutdown, it kills the NIF immediately.")); // It is a emergency shutdown, it kills the NIF immediately. iMBca->Close(); iState = EIdling; @@ -699,7 +696,7 @@ } else { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_SHUTDOWNBCA_2, "This is a graceful termination which takes a while."); + _LOG_L1C1(_L8("This is a graceful termination which takes a while.")); //It is a graceful termination which takes a while. iError = aError; iState = EClosing; @@ -709,7 +706,7 @@ } else //nothing to shutdown, just notify linklayer down. { - OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CBCACONTROL_SHUTDOWNBCA_3, "Bca is not initialized or opened, bring the linklayer down"); + _LOG_L1C1(_L8("Bca is not initialized or opened, bring the linklayer down")); iState = EIdling; iObserver.GetObserver().ShutDown(MControllerObserver::EBcaController, aError); }