sl@0: // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // BOT Protocol layer for USB Mass Storage Class sl@0: // sl@0: // sl@0: sl@0: /** sl@0: @file sl@0: @internalTechnology sl@0: */ sl@0: sl@0: #ifndef MBLOCKTRANSFERPROTOCOL_H sl@0: #define MBLOCKTRANSFERPROTOCOL_H sl@0: sl@0: /** sl@0: Interface class to be provided by the Protocol layer. The interface methods are sl@0: used by TBlockTransfer class which manages block read and block writes of the sl@0: data to be transferred. sl@0: */ sl@0: class MBlockTransferProtocol sl@0: { sl@0: public: sl@0: /** sl@0: Read a block of data aligned to block boundary. sl@0: sl@0: @param aPos The position aligned to block boundary sl@0: @param aBuf The buffer to copy the data into sl@0: @param aLength The Length in bytes, a multiple of the block length sl@0: */ sl@0: virtual void BlockReadL(TUint64 aPos, TDes8& aBuf, TInt aLength) = 0; sl@0: sl@0: /** sl@0: Write a block of data aligned to block boundary. sl@0: sl@0: @param aPos The position aligned to block boundary sl@0: @param aBuf The buffer containing the data to write sl@0: @param aOffset The offset into the buffer to the start of the block sl@0: @param aLength The length in bytes, must be a multiple of the block length sl@0: */ sl@0: virtual void BlockWriteL(TUint64 aPos, TDesC8& aBuf, TUint aOffset, TInt aLength) = 0; sl@0: }; sl@0: sl@0: #endif // MBLOCKTRANSFERPROTOCOL_H sl@0: