diff -r 473321461bba -r e06095241a65 vpnengine/agileprovisionws/inc/agileprovisionws.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vpnengine/agileprovisionws/inc/agileprovisionws.h Wed Sep 01 12:23:21 2010 +0100 @@ -0,0 +1,119 @@ +/* +* 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: VPN Agile provision Web Service Client +* +*/ + + +#ifndef C_AGILEPROVISIONWS_H +#define C_AGILEPROVISIONWS_H + + +#include +#include +#include "agileprovisionservice.h" +#include "agilecrypto.h" +#include "base64.h" + +const TInt KPublicKeyLen = 1024; + +NONSHARABLE_CLASS(CAgileProvisionWs) : public CBase, public MAgileProvisionServiceConsumer +{ +public: + IMPORT_C static CAgileProvisionWs* NewL(); + IMPORT_C static CAgileProvisionWs* NewLC(); + ~CAgileProvisionWs(); + +public: + /** + * Gets policy. + * @param aEndpointUri Service endpoint + * @param aStatus Completion status (returned) + */ + IMPORT_C void GetPolicy( const TDesC8& aEndPointUri, TUint aIapId, + TRequestStatus& aStatus ); + + /** + * Cancels Get policy request. + */ + IMPORT_C void CancelGetPolicy(); + + + //gets ownership of aServiceAddr + IMPORT_C void SetServiceAddr(const HBufC8* aServiceAddr); + +// from base class MAgileProvisionServiceConsumer +public: + void HandleMessageL(const TDesC8& aMessage); + void HandleErrorL(const TInt aErrorCode, const TDesC8& aError); + void SetStatus(const TInt aStatus); + + + /* + * Callback methods, for each asynchronous remote operation + */ + + IMPORT_C void HandleGetConfSoapInL(const TDesC8& aMessage); + + IMPORT_C void HandleGetCertificateSoapInL(const TDesC8& aMessage); + + IMPORT_C void GenerateCertReqL( ); + + +private: + enum + { + KStateInitial, + KStateGettingConf, + KStateGettingCertificate + }; + + CAgileProvisionWs(); + + void ConstructL(); + + void DoGetPolicyL( const TDesC8& aEndPointUri, const TUint aIapId ); + void ParseFileFromSoapEnvelopeL( RPointerArray& aArray, + TInt aContentType, TInt aLevel, + TDesC& aFileName ); + + + void DoComplete( const TInt aStatus ); + +private: // data + + /** + * State. + * Own. + */ + TInt iState; + + + CAgileProvisionServiceService* iPService; + + /** + * Client's request's status. + * Not own. + */ + TRequestStatus* iClientStatus; + + TPrivKeyRef iKeyRef; + + const HBufC8* iServiceAddr; + + const TDesC8* iEndPointUri; + + }; + +#endif // C_AGILEPROVISIONWS_H