diff -r 77cb48a03620 -r d9861ae9169c xdmprotocols/XcapProtocol/inc/XcapDocument.h --- a/xdmprotocols/XcapProtocol/inc/XcapDocument.h Thu Jul 01 14:09:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,440 +0,0 @@ -/* -* Copyright (c) 2005 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: CXcapDocument -* -*/ - - - - -#ifndef __XCAPDOCUMENT__ -#define __XCAPDOCUMENT__ - -#include -#include - -//CONSTANTS -const TUint KETagBufferMaxLength = 64; -_LIT8( KSlash, "/" ); -_LIT8( KUserDirName, "users/" ); -_LIT8( KGlobalDirName, "global/" ); -_LIT8( KXcapGlobalDocName, "index" ); - -//FORWARD DECLARATIONS -class RXcapCache; -class CXdmEngine; -class CXdmNamespace; -class CXcapProtocol; -class CXcapAppUsage; -class MXdmOperation; -class CXcapDocumentNode; -class CXdmOperationFactory; - -//CLASS DECLARATION -class CXcapDocument : public CXdmDocument - { - public: - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - static CXcapDocument* NewL( TXdmDocType aDocumentType, - const TDesC& aDocumentName, - const CXdmEngine& aXdmEngine, - const CXcapProtocol& aXcapProtocol ); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - static CXcapDocument* NewL( TXdmDocType aDocumentType, - const TDesC8& aDocumentName, - const CXdmEngine& aXdmEngine, - const CXcapProtocol& aXcapProtocol ); - - /** - * Set one option - * @return void - * @param The completed update operation - */ - void SetOption( TInt aOption ); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - TXdmDocType DocumentType() const; - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - void NotifyResolverCompleteL( TInt aError ); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - void StartInternalL( TRequestStatus& aStatus ); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - void CancelUpdate(); - - /** - * Destructor. - */ - virtual ~CXcapDocument(); - - public: //Exported methods - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - IMPORT_C TPtrC8 ETag() const; - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - IMPORT_C void SetETag( const TDesC8& aETagDesc ); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - IMPORT_C TInt DataLength() const; - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - IMPORT_C CXcapAppUsage& ApplicationUsage() const; - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - IMPORT_C CXcapDocument* TempCopyL(); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - IMPORT_C void RemoveData( CXcapDocumentNode* aDocumentNode ); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - IMPORT_C CXcapProtocol& Protocol() const; - - /** - * Reset the document subset - */ - IMPORT_C virtual void ResetSubset(); - - private: //From CXdmDocument - - /** - * Construct an "anonymous" entry point for this document. - * This node effectively becomes the root of this document. - * - */ - CXdmDocumentNode* CreateRootL(); - - /** - * Return the time stamp for this document - * - * @return TTime - */ - TTime TimeStamp() const; - - /** - * Return an error document for a failed update - * - * NOTE: The returning object will be NULL in case - * the used protocol does not support this feature. - * - * @return CXdmDocument* The error document - */ - CXdmDocumentNode* ErrorRoot(); - - /* - * Reset the contents of this document model. - */ - void ResetContents(); - - public: //From CXdmDocument - - /** - * Return the root element of this document - * - * @return CXdmDocumentNode The root element of the document - * - * NOTE: The returning node may or may not contain any data, - * since, in the case that this document model does not - * have content yet, the element is a simple "entry point" - * to the whole document. Thus, for instance, if the client - * application requests the Xdm Engine to fetch a particular - * document, the root element points to nothing until the - * request has been completed. - * - */ - CXdmDocumentNode* DocumentRoot() const; - - private: //From MXdmNamespaceContainer - - /** - * Return the number of namespace declarations - * @return TInt Namespace declaration count - */ - TInt Count() const; - - /** - * Copies the request data - * @param aRequestData Data to be sent - */ - void AppendNamespaceL( const TDesC8& aUri, const TDesC8& aPrefix ); - - /** - * Remove a namespace from the document - * @param TDesC8& URI of the namespace - * @param TDesC8& Prefix of the namespace - */ - void RemoveNamespace( const TDesC8& aUri ); - - /** - * Copies the request data - * @param aRequestData Data to be sent - */ - TPtrC8 Uri( const TDesC8& aPrefix ) const; - - /** - * Fetch the aIndex-th URI - * @param TInt The index of the desired URI string - * @return TPtrC URI string - */ - TPtrC8 Uri( TInt aIndex ) const; - - /** - * Fetch the aIndex-th prefix - * @param TDesC8 The index of the desired prefix string - * @return TPtrC Prefix string - */ - TPtrC8 Prefix( TInt aIndex ) const; - - /** - * Resets namespaces from the document - * - * @return void - */ - void ResetNamespaces(); - - private: - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - CXcapDocument( TXdmDocType aDocumentType, - const CXdmEngine& aXdmEngine, - const CXcapProtocol& aXcapProtocol ); - - /** - * From CActive. - * @return void - */ - void RunL(); - - /** - * From CActive. - * @return void - */ - void DoCancel(); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - void InstallAppUsageL(); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - void UpdateDocumentInfoL( RXcapCache* aCacheClient ); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - void StartUpdateL(); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - void SaveClientStatus( TRequestStatus& aClientStatus ); - - /** - * Handle a failed update operation - * @return void - * @param CXdmDocOperation* The failed operation - */ - void HandleErrorL(); - - /** - * Handle a successful update operation - * @return void - * @param The completed update operation - */ - void HandleRequestCompletionL(); - - /** - * Handle a successful update operation - * @return void - * @param The completed update operation - */ - void ResolveAsyncConflictL(); - - /** - * Handle a successful update operation - * @return void - * @param The completed update operation - */ - void CreateTempCopyL(); - - /** - * Handle a successful update operation - * @return void - * @param The completed update operation - */ - void ActivateOperationL(); - - /** - * Handle a successful update operation - * @return void - * @param The completed update operation - */ - void CheckOperationQueueL(); - - /** - * Handle a successful update operation - * @return void - * @param The completed update operation - */ - void DequeueOperation( MXdmOperation* aOperation ); - - /** - * Handle a successful update operation - * @return void - * @param The completed update operation - */ - void DequeueAll(); - - /** - * Append an element to the path identifying the - * the current document subset - * @return void - */ - void AppendPathPartL( const TDesC& aString ); - - /** - * Return the current document subset (including descendants) - * @return void - */ - CXdmDocumentNode* CurrentExtent() const; - - /** - * Handle a successful update operation - * @return void - * @param The completed update operation - */ - HBufC8* EightBitNameLC(); - - /** - * Handle a successful update operation - * @return void - * @param The completed update operation - */ - TBool IsGlobalTree( const TDesC8& aAuid ); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - void ConstructL(); - - /** - * Symbian OS default constructor. - * @param TInt Default Access Point ID - * @return CXdmDocOperation* - */ - void ConstructL( const TDesC8& aDocumentName ); - - private: //Data - - enum TXcapDocumentState - { - EXdmDocIdle = 0, - EXdmDocUpdating, - EResolvingAsyncConflict, - ERetryingFailedOperation - }; - - TInt iDataLength; - TInt iUpdateIndex; - TInt iOperationCount; - TUint iOptions; - TTime iLastAccess; - TTime iLastModification; - HBufC8* iEightBitName; - TXdmDocType iDocumentType; - CXcapDocument* iTempCopy; - CXcapAppUsage* iAppUsage; - CXcapDocumentNode* iDocumentRoot; - CXdmDocumentNode* iErrorRoot; - TXcapDocumentState iDocumentState; - CXcapProtocol& iXcapProtocol; - TBuf8 iETagBuffer; - RPointerArray iNamespaces; - }; - -#endif //__XCAPDOCUMENT__ - -// End of File