diff -r 8ef833fbf5aa -r d0d9cc530d21 telephonyprotocols/rawipnif/version1/inc/BcaController.h --- a/telephonyprotocols/rawipnif/version1/inc/BcaController.h Wed Aug 18 10:57:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// Defines the interface to the BCA & flow control. -// -// - -/** - @file -*/ - -#ifndef BCACONTROLLER_H -#define BCACONTROLLER_H - -#include -#include - -#include "MControllerObserver.h" -#include "bttlog.h" -#include "Constants.h" - -#ifdef RAWIP_HEADER_APPENDED_TO_PACKETS -#include "IPTagHeader.h" -#endif // RAWIP_HEADER_APPENDED_TO_PACKETS - -class CBttLogger; - -/** -@internalComponent -*/ -class CBcaController : public CBase - { -public: - CBcaController(MControllerObserver& aObserver, CBttLogger* aTheLogger); - void BaseConstructL(); - ~CBcaController(); - -public: // Flow Control - void UpdateInternalFlowFlag(TFlowControl aValue); - void UpdateContextStateFlag(TBool aValue); - TBool IsTxPossible(); - -public: - virtual void StartL() = 0; - virtual void Stop(TInt aError = KErrNone) = 0; - -#ifdef RAWIP_HEADER_APPENDED_TO_PACKETS -public: //tag headers - void SetType(TUint16 aType); - void AddHeader(TDes8& aDes); - TUint16 RemoveHeader(RMBufChain& aPdu); -#endif // RAWIP_HEADER_APPENDED_TO_PACKETS - -public: // Process Down/Up stack data packets - void Process(TDesC8& aPdu); - TInt Send(RMBufChain& aPdu); - void SendComplete(); - // Get the NIF reference. - inline MControllerObserver& GetObserver(); -protected: - virtual void BcaSend(RMBufChain& aPdu) = 0; - virtual void BcaProcess(TDesC8& aPdu) = 0; - virtual void BcaSendComplete() = 0; - virtual TInt BcaSendBufferLength() = 0; - -protected: - enum TSendState - { - EIdle, - ESending, - EShuttingDown - }; - - enum TInitialisationState - { - EStart, - EBcaController, - EInitialised - }; - - inline TInt GetSendState(); - inline void SendState(TSendState aState); - -private: // Flow Control - void ResumeSending(); - //Buffer control - TBool IsSendQueueEmpty(); - TBool IsSendQueueFull(); - void AppendToSendQueue(RMBufChain& aPdu); - TBool RemoveFromSendQueue(RMBufChain& aPdu); - void EmptySendQueue(); - -private: // Unowned data. - MControllerObserver& iObserver; -protected: - CBttLogger* iTheLogger; - -private: - // Flow control flags - TFlowControl iTxFlowControl; - TBool iTxContextActive; - TSendState iSendState; - - /** The internal packet buffer */ - RMBufPktQ iSendQueue; - /** The maximum number of packets that we want in an internal queue */ - TInt iMaxSendQueueLen; - /** Current number of packets in the internal packet buffer */ - TInt iNumPacketsInSendQueue; - -#ifdef RAWIP_HEADER_APPENDED_TO_PACKETS - CIPTagHeader* iIPTagHeader; -#endif // RAWIP_HEADER_APPENDED_TO_PACKETS - }; - -void CBcaController::SendState(TSendState aState) - { - iSendState = aState; - } - -TInt CBcaController::GetSendState() - { - return iSendState; - } - - -MControllerObserver& CBcaController::GetObserver() - { - return iObserver; - } - -#endif // BCACONTROLLER_H