diff -r f92a4f87e424 -r 012cc2ee6408 usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatasender.h --- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatasender.h Tue Aug 31 17:01:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -/* -* Copyright (c) 2010 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: -* -*/ - - -/** -@file -@internalComponent -*/ - - -#ifndef NCMDATASENDER_H -#define NCMDATASENDER_H - -#include - -#ifndef __OVER_DUMMYUSBSCLDD__ -#include -#else -#include -#include -#endif - -#include "ncmntbbuilder.h" -#include "ncmpktdrvcommon.h" - - -class CNcmDataInterface; -class RDevUsbcScClient; -class CNcmBufferManager; -class CNcmNtbBuildPolicy; - - -NONSHARABLE_CLASS(MNcmNtbBuildObserver) - { -public: - /** - * send a NTB out, this is interface with CNtbBuilder - * - * @param aBuffer contain a whole NTB. - */ - virtual void SendNtbPayload(TNcmBuffer& aBuffer) = 0; - }; - - - -/** -Responsible for sending Ncm packet data -*/ - -NONSHARABLE_CLASS(CNcmDataSender) : public CActive, - public MNcmNtbBuildObserver - - { -public: - static CNcmDataSender* NewL(RDevUsbcScClient& aPort, CNcmDataInterface& aParent); - ~CNcmDataSender(); - -public: - /** derived from MNcmNtbBuildObserver */ - void SendNtbPayload(TNcmBuffer& aBuffer); - -public: - /** - * change NtbInMax size - * - * @param aSize, new NtbInMax size - * @param aIsAltZero, is alternate setting 0 - * @return KErrNone if success, - * KErrArgument if the aSize is bigger than 65535, - * KErrUnknown if aSize is too bigger and can't create enough buffer block - */ - TInt SetNtbInMaxSize(TInt aSize, TBool aIsAltZero=ETrue); - void RunL(); - void Start(); - /** - * send a ethernet frame - * - * @param aPacket, the ethernet frame - * @return KErrNone if success, - * KErrNotReady if sender is not started. - * KErrCongestion if there is less buffers, need to start flow control. - */ - TInt Send(RMBufChain& aPacket); - void GetNtbParam(TNcmNtbInParam& aParam); - void Stop(); - TInt SetInEpBufferSize(TUint aSize); - inline TInt NtbInMaxSize(); - -private: - CNcmDataSender(RDevUsbcScClient& aPort, CNcmDataInterface& aParent); - void ConstructL(); - void SendNtbComplete(); - TInt StartNewNtb(); - void DoCancel(); - -private: - RDevUsbcScClient& iPort; - CNcmDataInterface& iParent; - /** - * LDD Endpoint buffer for in NCM in endpoint - */ - TEndpointBuffer iEpOut; - /** - * store the buffers to be sent to LDD - */ - RArray iTxArray; - /** - * store the buffer is on sending - */ - TNcmBuffer iSendingBuffer; - /** - * there is a buffer currenly on sending - */ - TBool iIsSending; - TBool iStarted; - CNcmNtbBuilder* iNtbBuilder; - CNcmBufferManager* iBufferManager; - CNcmNtbBuildPolicy* iBuildPolicy; - /** - * networking may send packet when data sender is not started, use this to determin if do send resuming when start - */ - TBool iStopSending; - - }; - -// Inline functions -#include "ncmdatasender.inl" - -#endif //NCMDATASENDER_H