diff -r 000000000000 -r c3e98f10fcf4 localconnectivityservice/obexsendservices/obexservicesendutils/inc/BTSBPPObjectRequest.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/localconnectivityservice/obexsendservices/obexservicesendutils/inc/BTSBPPObjectRequest.h Mon Jan 18 21:03:15 2010 +0200 @@ -0,0 +1,148 @@ +/* +* Copyright (c) 2002 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: GetReferencedObjects -operation controller +* +*/ + + + +#ifndef BTSBPP_OBJECT_REQUEST_H +#define BTSBPP_OBJECT_REQUEST_H + +// INCLUDES +#include // Obex +#include // CDesCArray + +// CLASS DECLARATION +/** +* A class handling GetReferencedObjects -operation. +*/ +NONSHARABLE_CLASS (CBTSBPPObjectRequest) : public CBase + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CBTSBPPObjectRequest* NewL( CObexBaseObject* aGetOperation, + const CDesCArray* aRefObjectList ); + + /** + * Destructor. + */ + virtual ~CBTSBPPObjectRequest(); + + public: // Functions from base classes + + /** + * Returns the requested Object. + * @param None. + * @return A pointer to the requested object. NULL if the request + * cannot be fullfilled. + */ + CObexBufObject* GetResponse(); + + private: + + /** + * C++ default constructor. + */ + CBTSBPPObjectRequest( CObexBaseObject* aGetOperation, + const CDesCArray* aRefObjectList ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + // CHECK REQUEST ------------------------------------------------------ + + /** + * Checks the validity of the Get-operation and it's parameters. + * @return None. + */ + void CheckGetRequestL(); + + /** + * Checks the existence, validity and contents of Type header. + * @return None. + */ + void CheckTypeHeaderL(); + + /** + * Checks the existence, validity and contents of Name header. + * @return None. + */ + void CheckNameHeaderL(); + + /** + * Checks the existence, validity and contents of + * Application Parameters header. + * @return None. + */ + void CheckAppParamsHeaderL(); + + + // EXECUTE REQUEST ---------------------------------------------------- + + /** + * Executes any tasks needed and creates the requested object. + * @return None. + */ + void ExecuteGetRequestL(); + + /** + * Resolves the actual part of data that is requested. + * @return None. + */ + void ResolveGetRequestL(); + + /** + * Reads the requested part of a file into a buffer. + * @return None. + */ + void ReadFileToBufferL(); + + /** + * Creates the response object with correct data and headers. + * @return None. + */ + void CreateResponseObjectL(); + + private: // Data definitions + + struct TBTSBPPObjectParams + { + const TDesC* iName; // The name of the object. + TInt iFileSize; // The total size of the object. + TInt iOffset; // The offset to the the object (starting point). + TInt iCount; // The number of bytes to be sent. + }; + + private: // Data + + RFs iFileSession; + TBTSBPPObjectParams iRequestParams; + CObexBufObject* iResponse; + CBufFlat* iResponseBuffer; + + // Not owned + // + CObexBaseObject* iRequest; + const CDesCArray* iObjectList; + }; + +#endif // BTSBPP_OBJECT_REQUEST_H + +// End of File