williamr@2: /* williamr@2: * Copyright (c) 2002-2006 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 extends RDocument, enabling handle counting williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #ifndef R_SEN_DOCUMENT williamr@2: #define R_SEN_DOCUMENT williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: typedef struct williamr@2: { williamr@2: TInt* ipOpenDocuments; williamr@2: void* iInternal; williamr@2: RXmlEngDOMImplementation iDomImpl; williamr@2: } TSenDocumentData; williamr@2: williamr@2: class RSenDocument : public RXmlEngDocument williamr@2: { williamr@2: public: williamr@2: williamr@2: williamr@2: /** williamr@2: * Default constructor. williamr@2: * williamr@2: * @since S60 v3.1 williamr@2: */ williamr@2: /*inline RSenDocument():RDocument() williamr@2: { williamr@2: ipOpenDocuments = new (ELeave) TInt(1); williamr@2: }*/ williamr@2: williamr@2: /** williamr@2: * Create new document. williamr@2: * williamr@2: * @since S60 v3.1 williamr@2: */ williamr@2: IMPORT_C static RSenDocument NewL(); williamr@2: williamr@2: /** williamr@2: * Create new document and put it on cleanup stack. williamr@2: * williamr@2: * @since S60 v3.1 williamr@2: */ williamr@2: IMPORT_C static RSenDocument NewLC(); williamr@2: williamr@2: /** williamr@2: * Create new document. williamr@2: * williamr@2: * @since S60 v3.1 williamr@2: * @param aInternal Document pointer williamr@2: */ williamr@2: IMPORT_C static RSenDocument NewL(void* aInternal); williamr@2: williamr@2: /** williamr@2: * Create new document and put it on cleanup stack. williamr@2: * williamr@2: * @since S60 v3.1 williamr@2: * @param aInternal Document pointer williamr@2: */ williamr@2: IMPORT_C static RSenDocument NewLC(void* aInternal); williamr@2: williamr@2: /** williamr@2: * Copies a RSenDocument. williamr@2: * Both the original and the copy must be separately closed. williamr@2: * williamr@2: * @since S60 v3.1 williamr@2: * @return Copy of this RSenDocument williamr@2: */ williamr@2: IMPORT_C RSenDocument Copy(); williamr@2: williamr@2: /** williamr@2: * Closes a RSenDocument. williamr@2: * williamr@2: * You must close (or destroy) every RSenDocument you create using NewL or NewLC. williamr@2: * In other words, every call to RSenDocument::Copy(), RSenDocument::NewL() and williamr@2: * RSenDocument::NewLC() must be matched by a close or destroy. williamr@2: * Note: Also Destroy() method can be used to close RSenDocument. williamr@2: * williamr@2: * @since S60 v3.1 williamr@2: * @see RSenDocument::Destroy() williamr@2: */ williamr@2: IMPORT_C void Close(); williamr@2: williamr@2: /** williamr@2: * Closes a RSenDocument. williamr@2: * williamr@2: * You must destroy (or close) every RSenDocument you create using NewL or NewLC. williamr@2: * In other words, every call to RSenDocument::Copy(), RSenDocument::NewL() and williamr@2: * RSenDocument::NewLC() must be matched by a close or destroy. williamr@2: * Note: Also Close() method can be used to destroy RSenDocument. williamr@2: * williamr@2: * @since S60 v3.1 williamr@2: * @see RSenDocument::Close() williamr@2: */ williamr@2: IMPORT_C void Destroy(); williamr@2: williamr@2: /** williamr@2: * Sets the Tls williamr@2: * williamr@2: * @return KErrNone williamr@2: * KErrUnknown if the Tls is unknown williamr@2: * KErrAlreadyExists if the Tls already exist. williamr@2: */ williamr@2: IMPORT_C static TInt ManualXmlEngineTlsAttachL(); williamr@2: williamr@2: /** williamr@2: * Frees the Tls williamr@2: * williamr@2: * @return KErrNone williamr@2: * KErrNotFound if the Tls is not found williamr@2: */ williamr@2: IMPORT_C static TInt ManualXmlEngineTlsCleanup(); williamr@2: williamr@2: public: williamr@2: TSenDocumentData* ipData; williamr@2: }; williamr@2: williamr@2: #endif // R_SEN_DOCUMENT williamr@2: williamr@2: // End of File williamr@2: williamr@2: