williamr@2: /* williamr@2: * Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Class implements (web) service credential functionality williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #ifndef SEN_CREDENTIAL_H williamr@2: #define SEN_CREDENTIAL_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: // CONSTANTS williamr@2: _LIT8(KCredentialsName, "Credentials"); williamr@2: _LIT8(KEndpointName, "Endpoint"); williamr@2: _LIT8(KSecurityMechIdName, "SecurityMechID"); williamr@2: _LIT8(KNotOnOrAfterName, "NotOnOrAfter"); williamr@2: _LIT8(KConditionsName, "Conditions"); williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class SenDateUtils; williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * Class implements (web) service credential functionality williamr@2: * @lib SenServDesc.lib williamr@2: * @since Series60 3.0 williamr@2: */ williamr@2: class CSenCredential : public CSenBaseFragment williamr@2: { williamr@2: public: // Constructors and destructor williamr@2: williamr@2: /** williamr@2: * Two-phase constructor. williamr@2: * @since Series60 3.0 williamr@2: * @param aNsUri The namespace URI of the new element williamr@2: * @param aLocalName The local name of the new element williamr@2: * @param aQName The qualified name of the new element williamr@2: * @param aAttributes The attributes of the new element williamr@2: * @return new CSenCredential instance pointer williamr@2: * Leave codes: williamr@2: * KErrSenInvalidCharacters if aLocalName or aQName contains williamr@2: * illegal characters. williamr@2: * KErrSenZeroLengthDescriptor if aLocalName or aQName is zero length. williamr@2: */ williamr@2: IMPORT_C static CSenCredential* NewL(const TDesC8& aNsUri, williamr@2: const TDesC8& aLocalName, williamr@2: const TDesC8& aQName, williamr@2: const RAttributeArray& aAttributes); williamr@2: williamr@2: /** williamr@2: * Two-phase constructor. williamr@2: * @since Series60 3.0 williamr@2: * @param aNsUri The namespace URI of the new element williamr@2: * @param aLocalName The local name of the new element williamr@2: * @param aQName The qualified name of the new element williamr@2: * @param aAttributes The attributes of the new element williamr@2: * @return new CSenCredential instance pointer, which is left on williamr@2: * cleanup stack. williamr@2: * Leave codes: williamr@2: * KErrSenInvalidCharacters if aLocalName or aQName contains williamr@2: * illegal characters. williamr@2: * KErrSenZeroLengthDescriptor if aLocalName or aQName is zero length. williamr@2: */ williamr@2: IMPORT_C static CSenCredential* NewLC(const TDesC8& aNsUri, williamr@2: const TDesC8& aLocalName, williamr@2: const TDesC8& aQName, williamr@2: const RAttributeArray& aAttributes); williamr@2: williamr@2: /** williamr@2: * Constructor with a possibility to set a parent. williamr@2: * @since Series60 3.0 williamr@2: * @param aNsUri The namespace URI of the new element williamr@2: * @param aLocalName The local name of the new element williamr@2: * @param aQName The qualified name of the new element williamr@2: * @param aAttributes The attributes of the new element williamr@2: * @param aParent The parent element of the new element williamr@2: * @return new CSenCredential instance pointer williamr@2: * Leave codes: williamr@2: * KErrSenInvalidCharacters if aLocalName or aQName contains williamr@2: * illegal characters. williamr@2: * KErrSenZeroLengthDescriptor if aLocalName or aQName is zero length. williamr@2: */ williamr@2: IMPORT_C static CSenCredential* NewL(const TDesC8& aNsUri, williamr@2: const TDesC8& aLocalName, williamr@2: const TDesC8& aQName, williamr@2: const RAttributeArray& aAttributes, williamr@2: CSenElement& aParent); williamr@2: williamr@2: /** williamr@2: * Constructor with a possibility to set a parent. williamr@2: * @since Series60 3.0 williamr@2: * @param aNsUri The namespace URI of the new element williamr@2: * @param aLocalName The local name of the new element williamr@2: * @param aQName The qualified name of the new element williamr@2: * @param aAttributes The attributes of the new element williamr@2: * @param aParent The parent element of the new element williamr@2: * @return new CSenCredential instance pointer, which is left on williamr@2: * cleanup stack. williamr@2: * Leave codes: williamr@2: * KErrSenInvalidCharacters if aLocalName or aQName contains williamr@2: * illegal characters. williamr@2: * KErrSenZeroLengthDescriptor if aLocalName or aQName is zero length. williamr@2: */ williamr@2: IMPORT_C static CSenCredential* NewLC(const TDesC8& aNsUri, williamr@2: const TDesC8& aLocalName, williamr@2: const TDesC8& aQName, williamr@2: const RAttributeArray& aAttributes, williamr@2: CSenElement& aParent); williamr@2: williamr@2: /** williamr@2: * Constructor which copies itself from another credential. williamr@2: * @since Series60 3.0 williamr@2: * @param aCredential credential to copy from. williamr@2: * @return new CSenCredential instance pointer williamr@2: */ williamr@2: IMPORT_C static CSenCredential* NewL(const CSenCredential& aCredential); williamr@2: williamr@2: /** williamr@2: * Constructor which copies itself from another credential. williamr@2: * @since Series60 3.0 williamr@2: * @param aCredential credential to copy from. williamr@2: * @return new CSenCredential instance pointer, which is left on williamr@2: * cleanup stack. williamr@2: */ williamr@2: IMPORT_C static CSenCredential* NewLC(const CSenCredential& aCredential); williamr@2: williamr@2: /** williamr@2: * Destructor. williamr@2: */ williamr@2: IMPORT_C virtual ~CSenCredential(); williamr@2: williamr@2: // New functions williamr@2: williamr@2: /** williamr@2: * Getter for the credential ID. williamr@2: * @since Series60 3.0 williamr@2: * @return the ID williamr@2: */ williamr@2: IMPORT_C const TDesC8& Id(); williamr@2: williamr@2: /** williamr@2: * Getter for the credential expiration time. williamr@2: * @since Series60 3.0 williamr@2: * @return the the expiration time williamr@2: */ williamr@2: IMPORT_C TTime& ValidUntil(); williamr@2: williamr@2: /** williamr@2: * Setter for the credential expiration time. williamr@2: * @since Series60 3.0 williamr@2: * @param aTime The new expiration time williamr@2: */ williamr@2: IMPORT_C void SetValidUntil(TTime& aTime); williamr@2: williamr@2: protected: // Functions from base classes williamr@2: williamr@2: /** williamr@2: * From CSenDomFragment Callback function which implement the XML content handler interface. williamr@2: * @since Series60 3.0 williamr@2: * @param aNsUri The namespace URI of the new element williamr@2: * @param aLocalName The local name of the new element williamr@2: * @param aQName The qualified name of the new element williamr@2: * @param aAttributes The attributes of the new element williamr@2: */ williamr@2: IMPORT_C virtual void StartElementL(const TDesC8& aNsUri, williamr@2: const TDesC8& aLocalName, williamr@2: const TDesC8& aQName, williamr@2: const RAttributeArray& aAttributes); williamr@2: williamr@2: private: williamr@2: williamr@2: /** williamr@2: * C++ default constructor. williamr@2: */ williamr@2: IMPORT_C CSenCredential(); williamr@2: williamr@2: /** williamr@2: * By default Symbian 2nd phase constructor is private. williamr@2: * @since Series60 3.0 williamr@2: * @param aNsUri is the XML namespace as UTF-8 descriptor williamr@2: * @param aLocalName is the XML localname as UTF-8 descriptor williamr@2: * @param aQName is the XML qualifiedname as UTF-8 descriptor williamr@2: * @param aAttributes is the list of XML attributes williamr@2: */ williamr@2: IMPORT_C void ConstructL(const TDesC8& aNsUri, williamr@2: const TDesC8& aLocalName, williamr@2: const TDesC8& aQName, williamr@2: const RAttributeArray& aAttributes); williamr@2: williamr@2: /** williamr@2: * By default Symbian 2nd phase constructor is private. williamr@2: * @since Series60 3.0 williamr@2: * @param aNsUri is the XML namespace as UTF-8 descriptor williamr@2: * @param aLocalName is the XML localname as UTF-8 descriptor williamr@2: * @param aQName is the XML qualifiedname as UTF-8 descriptor williamr@2: * @param aAttributes is the list of XML attributes williamr@2: * @param aParent is the parent element, which may declare other williamr@2: * namespaces. williamr@2: */ williamr@2: IMPORT_C void ConstructL(const TDesC8& aNsUri, williamr@2: const TDesC8& aLocalName, williamr@2: const TDesC8& aQName, williamr@2: const RAttributeArray& aAttributes, williamr@2: CSenElement& aParent); williamr@2: williamr@2: /** williamr@2: * By default Symbian 2nd phase constructor is private. williamr@2: * @since Series60 3.0 williamr@2: * @param aCredential is the source credential to be copied. williamr@2: */ williamr@2: IMPORT_C void ConstructL(CSenCredential& aCredential); williamr@2: williamr@2: // New functions williamr@2: williamr@2: /** williamr@2: * Setter for Credential ID williamr@2: * @since Series60 3.0 williamr@2: * @param aId is the unique ID for this Credential williamr@2: */ williamr@2: void SetIdL(const TDesC8& aId); williamr@2: williamr@2: private: // Data williamr@2: // Unique ID for this credential. Owned. williamr@2: HBufC8* iId; williamr@2: // One may use SenDateUtils to convert from XML date descrtor to TTime williamr@2: TTime iNotOnOrAfter; williamr@2: }; williamr@2: williamr@2: #endif // SEN_CREDENTIAL_H williamr@2: williamr@2: // End of File williamr@2: williamr@2: