diff -r 000000000000 -r 164170e6151a wim/WimServer/inc/WimSimFileHandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wim/WimServer/inc/WimSimFileHandler.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,136 @@ +/* +* Copyright (c) 2003 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: WIM SIM Certificate handler. Handles WIMI's ReadFile requests +* to card not supporting logical channels +* +*/ + + + +#ifndef CWIMSIMFILEHANDLER_H +#define CWIMSIMFILEHANDLER_H + +// INCLUDES +#include + +// CONSTANTS +const TUint KMaxSimFileSize = 10000; // Maximum size allocated for file + +// CLASS DECLARATION + +/** +* Class for handling SIM file reading. Calls CustomAPI's function +* to read the file. +* +* @since Series60 2.1 +*/ +class CWimSimFileHandler : public CActive + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CWimSimFileHandler* NewL(); + + /** + * Destructor. + */ + virtual ~CWimSimFileHandler(); + + public: // New functions + + /** + * Reads SIM file + * @param aReader Reader ID + * @param aPath Path to the file to read + * @param aOffset Offset from the beginning of the file. + * If the Elementary File pointed to by FileID is linear fixed or cyclic + * (this is the case for EF DIR), then the least significant byte of + * aOffSet denotes the record number, while the most significant byte in + * aOffSet denotes the start byte within that record. The record number + * starts fron 1 and therefore 0x0100 is sent as the offset. + * @param aSize Amount of data to read, aSize = 0 means that whole + * file must be read + * @return void + */ + void ReadSimFileL( TUint8 aReader, + const TDes8& aPath, + TUint16 aOffset, + TUint16 aSize ); + + private: + + /** + * C++ default constructor. + */ + CWimSimFileHandler(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * Open CustomAPI for communication + * @return void + */ + void OpenCustomApiL(); + + /** + * Handle received file + * @return void + */ + void FileReceived(); + + /** + * Wait until asynchronous call is completed + * @return void + */ + void SetActiveAndWait(); + + /** + * From CActive. Handles asynchrounous file reading response + * @return void + */ + void RunL(); + + /** + * From CActive. Cancellation function + * @return void + */ + void DoCancel(); + + + private: // Data + // Pointer to CustomAPI instance. Owned. + RMmCustomAPI* iCustomApi; + // Pointer to Etel server. Owned. + RTelServer* iEtelServer; + // Pointer to response bytes buffer. Owned. + HBufC8* iResponseBytesBuf; + // Pointer to response bytes pointer. Owned. + TPtr8* iResponseBytesPtr; + // Reader number + TUint8 iReaderNumber; + // Synchronous wait for async request + CActiveSchedulerWait iWait; + // SIM file info structure + RMmCustomAPI::TSimFileInfo iSimFileInfo; + + }; + +#endif // CWIMSIMFILEHANDLER_H + +//End of File