diff -r 238255e8b033 -r 84d9eb65b26f messagingapp/msgutils/unidatamodel/unimmsdataplugin/inc/UniObject.h --- a/messagingapp/msgutils/unidatamodel/unimmsdataplugin/inc/UniObject.h Fri Apr 16 14:56:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,629 +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: -* CUniObject, Storage for single attachment in presentation. -* -* -*/ - - -#ifndef __UNIOBJECT_H -#define __UNIOBJECT_H - -// INCLUDES - -#include -#include // for TMsvId -#include - -#include -#include - -#include - -#include - - -// CONSTANTS -const TUid KUidAttachmentIndication = {0x10282CB0}; - -// MACROS - -// FORWARD DECLARATIONS -class CUniMimeInfo; -class CMsgMediaInfo; -class CUniDrmInfo; -class CBaseMtm; -class CUniDataUtils; -class CMsvStore; -class MMsvAttachmentManager; -class CUniObject; -class CDRMNotifier; -// DATA TYPES - -// FUNCTION PROTOTYPES - -// CLASS DECLARATION - -/** -* MUniObjectSaveObserver - Callback API for object saving. -* -* @since 3.1 -*/ -class MUniObjectSaveObserver - { - public: - virtual void ObjectSaveReady( TInt aError ) = 0; - }; - -enum TUniObjectEvent - { - EUniObjectEventDrmRightsChanged = 0 - }; - -class MUniObjectObserver - { - public: - virtual void HandleUniObjectEvent( CUniObject& aUniObject, - TUniObjectEvent aUniEvent ) = 0; - }; - -/** -* CUniObject - Representation of a single attachment of a message. -* -* @lib UniDataModel.lib -* @since 3.1 -*/ -class CUniObject : public CActive, - public MDRMEventObserver - - { - - public: // New methods - - /** - * Factory method that creates this object - * from an attachment. - * - * @since 3.1 - * @param aMtm IN reference to client mtm - * @param aMedia IN initialized media info object - takes ownership! - * @param aManager IN reference to attachment manager - * @param aAttachmentId IN id of the attachment from - * which to create the object - * @return Pointer to instance in cleanup stack - */ - static CUniObject* NewLC( - RFs& aFs, - CBaseMtm& aMtm, - CUniDataUtils& aData, - CMsgMediaInfo* aMedia, - MMsvAttachmentManager& aManager, - CMsvAttachment& aAttachment ); - - /** - * Factory method that creates this object - * from an attachment. - * - * @since 3.1 - * @param aMtm IN reference to client mtm - * @param aMedia IN initialized media info object - takes ownership! - * @param aAttachmentId IN id of the attachment from - * which to create the object - * @return Pointer to instance - */ - static CUniObject* NewL( - RFs& aFs, - CBaseMtm& aMtm, - CUniDataUtils& aData, - CMsgMediaInfo* aMedia, - MMsvAttachmentManager& aManager, - CMsvAttachment& aAttachment ); - - /** - * Factory method that creates this object - * from a file. - * - * @since 3.1 - * @param aData IN reference to MsgData object - * @param aMedia IN initialized media info object - takes ownership! - * @return Pointer to instance in cleanup stack - */ - static CUniObject* NewLC( - RFs& aFs, - CBaseMtm& aMtm, - CUniDataUtils& aData, - CMsgMediaInfo* aMedia ); - - /** - * Factory method that creates this object - * from a file. - * - * @since 3.1 - * @param aData IN reference to MsgData object - * @param aMedia IN initialized media info object - takes ownership! - * @return Pointer to instance - */ - static CUniObject* NewL( - RFs& aFs, - CBaseMtm& aMtm, - CUniDataUtils& aData, - CMsgMediaInfo* aMedia ); - - /** - * Destructor - * - * @since 3.1 - */ - virtual ~CUniObject(); - - /** - * Save - * Save the object to message store. - * If leave occurs, attachment is cleaned up from the - * message store. - * - * @since 3.1 - * @param aObserver IN operation observer - * @param aSaveType IN save type - */ - virtual void Save( - MUniObjectSaveObserver& aObserver, - CMsvAttachment::TMsvAttachmentType aSaveType ); - - /** - * Remove from store - * Removes attachment from message store. - * - * @since 3.1 - * @param aMtm IN reference to MMS client mtm - */ - virtual void RemoveFromStoreL(); - - /** - * AttachmentId - * Accessor. - * - * @since 3.1 - * @return Attachment id of the object - */ - inline TMsvAttachmentId AttachmentId() const; - - /** - * MimeInfo - * Accessor. - * - * @since 3.1 - * @return Pointer to the object's mime header class - */ - inline CUniMimeInfo* MimeInfo() const; - - /** - * DrmInfo - * Accessor. - * - * @since 3.1 - * @return Pointer to the object's mime header class - */ - inline CUniDrmInfo* DrmInfo() const; - - /** - * MimeType - * Returns the mime type of the object. Use this instead - * of MimeInfo's or MediaInfo's mime type unless you are - * absolutely sure what you are doing. - * - * @since 3.1 - * @return Mime type of the object. - */ - TPtrC8 MimeType() const; - - /** - * MediaInfo - * Accessor. - * - * @since 3.1 - * @return Pointer to the object's media info class - */ - inline CMsgMediaInfo* MediaInfo() const; - - /** - * MediaType - * Returns the media type of the object. Use this instead - * of MediaInfo's media type unless you are absolutely - * sure what you are doing. - * - * @since 3.1 - * @return Media type of the object. - */ - TMsgMediaType MediaType() const; - - /* - * Size - * - * @since 3.1 - * @param aWithoutHeaders IN if ETrue include MIME headers' sizes - * if EFalse count only file sizes - * @return Size of the object in bytes - */ - virtual TInt Size( TBool aWithoutHeaders = ETrue ); - - /** - * Corrupted - * Accessor. - * - * @since 3.1 - * @return ETrue, if object corrupted, - * EFalse otherwise - */ - inline TBool Corrupted() const; - - /** - * SetCorrupted - * Mutator. - * - * @since 3.1 - * @param aCorrupted IN ETrue to mark object corrupted - */ - inline void SetCorrupted( TBool aCorrupted ); - - /** - * StoreState - * Accessor. - * - * @since 3.1 - * @return Store state of the object: - * EStoreStateAttachment if object is stored into message store and "visible" - * EStoreStateTemporary if is not yet in message store - * EStoreStateHidden if object is stored into message store and "hidden" - */ - //inline TMsgObjectStoreState StoreState() const; - - /** - * SetReferenceCount - * Mutator. - * - * @since 3.1 - * @param aCount IN number of times the object is referenced in - * the message (normally in the SMIL). - */ - inline void SetReferenceCount( TInt aCount ); - - /** - * ReferenceCount - * Accessor. - * - * @since 3.1 - * @return Number of times the object is referenced in - * the message (normally in the SMIL). - */ - inline TInt ReferenceCount() const; - - /** - * SetRegion - * Mutator. - * - * @since 3.1 - * @param region object is in SMIL - */ - inline void SetRegion( TUniRegion aRegion ); - - /** - * Region - * Accessor. - * - * @since 3.1 - * @return region object is in SMIL - */ - inline TUniRegion Region() const; - - /** - * SetMediaTypeBySmilTag - * Mutator. - * - * @since 3.1 - * @param media type by SMIL media tag - */ - inline void SetMediaTypeBySmilTag( TMsgMediaType aMediaType ); - - /** - * ReferenceCount - * Accessor. - * - * @since 3.1 - * @return media type by SMIL media tag - */ - inline TMsgMediaType MediaTypeBySmilTag() const; - - /** - * SetUniqueControlHandle - * Mutator. - * - * @since 3.2 - * @param UniqueControlHandle, -1 for "resetting". - */ - inline void SetUniqueControlHandle( TInt aUniqueControlHandle ); - - /** - * UniqueControlHandle - * Accessor. - * - * @since 3.2 - * @return UniqueControlHandle, -1 if not set. - */ - inline TInt UniqueControlHandle() const; - - /** - * SetAttachment - * Mutator. - * - * @since 3.2 - * @param aObjectAttachment ETrue if object is attachment, otherwise EFalse - */ - inline void SetAttachment( TBool aObjectAttachment ); - - /** - * Attachment - * Accessor. - * - * @since 3.2 - * @return ETrue if object is attachment, otherwise EFalse - */ - inline TBool Attachment() const; - - /** - * IsSaved - * Accessor. - * - * @since 3.2 - * @return Information whether this object has been saved into file system - * in Viewer. - */ - inline TBool IsSaved( ); - - /** - * IsSaved - * Mutator. - * - * @since 3.2 - * @param aSaved ETrue attachment has been saved - * EFalse attachment has not been saved - */ - inline void SetSaved( TBool aSaved ); - - /** - * IsDrmRightsWhenLoaded. Function is applicable only, if DrmInfo exists. - * Accessor. - * - * @since 5.0 - * @return Checks whether object had DRM rights when this object was loaded - * into screen. If last DRM rights were consumed during loading, - * it returns ETrue. - * - */ - inline TBool IsDrmRightsWhenLoaded( ) const; - - /** - * ResolveDrmRightsWhenLoadedL. Saves information whether this object had DRM - * rights when slide having the object was loaded. Uses - * CDrmInfo::EvaluateRights() to resolve status - * Mutator. - * - * @since 5.0 - * - */ - void ResolveDrmRightsWhenLoadedL( ); - - /** - * SetDrmRightsWhenLoadedL. Saves information whether this object had DRM - * rights when slide having the object was loaded. - * Mutator. - * - * @since 5.0 - * @param aRights ETrue: objects had rights, which were already consumed or if not consumed, - * have still rights left - * EFalse: rights have not been consumed and they are not left - * - */ - void SetDrmRightsWhenLoaded( TBool aRights ); - - /** - * IsDrmRightsWhenLoadedObjects. Function is applicable only, if DrmInfo exists. - * Accessor. - * - * @since 5.0 - * @return Checks whether object had DRM rights when this object was loaded - * into screen in the Objects view. If last DRM rights were consumed during loading, - * it returns ETrue. - * - */ - inline TBool IsDrmRightsWhenLoadedObjects( ) const; - - /** - * SetDrmRightsWhenLoadedObjects. Saves information whether this object had DRM - * rights when slide having the object was loaded into screen in the - * Objects view. - * Mutator. - * - * @since 5.0 - * @param aRights ETrue: objects had rights, which were already consumed or if not consumed, - * have still rights left - * EFalse: rights have not been consumed and they are not left - * - */ - void SetDrmRightsWhenLoadedObjects( TBool aRights ); - - /** - * Sets observer of UniObject events. Several observers are supported at the same time. - * Mutator. - * - * @since 5.0 - * @param aObserver observer - * - */ - void SetObserverL( MUniObjectObserver* aObserver ); - - /** - * Removes observer of UniObject events. - * Accessor. - * - * @since 5.0 - * - */ - void RemoveObserver( MUniObjectObserver* aObserver ); - - protected: - - /** - * From CActive - */ - void DoCancel(); - - /** - * From CActive - */ - void RunL(); - - /** - * From CActive - */ - TInt RunError( TInt aError ); - - protected: - - /** - * Constructor. - * - * @since 3.1 - */ - CUniObject( - RFs& aFs, - CBaseMtm& aMtm, - CUniDataUtils& aData, - CMsgMediaInfo* aMedia ); - - /** - * 2nd phase constructor. - * - * @since 3.1 - */ - void ConstructL(); - - /** - * 2nd phase constructor. - * - * @since 3.1 - * @param aManager IN reference to attachment manager - * @param aAttachmentId IN id of the attachment from - * which to create the object - */ - void ConstructFromAttachmentL( - MMsvAttachmentManager& aManager, - CMsvAttachment& aAttachment ); - - /** - * CreateMimeInfoL - * Create mime info for the object from the file information - * and in-parameters. - * - * @since 3.1 - */ - void CreateMimeInfoL(); - - /** - * CreateAttachmentL - * Creates an attachment to message store. - * If leave occurs, attachment is cleaned up from the - * message store. - * - * @since 3.1 - */ - void CreateAttachmentL( ); - - /** - * SetHiddenL - * Sets attachment "hidden" or "visible" - * "Hidden" means InPreparation flag is set on and - * "visible" means InPreparation flag is set off - * Not to be called for "temporary" object - * - * @since 3.1 - * @param aHidden IN ETrue for "hidden", EFalse for "visible" - */ - //void SetHiddenL( TBool aHidden ); - - virtual void DoSaveL(); - - void StartObjectSaveL(); - void FinalizeObjectSaveL(); - - void CompleteSelf(); - - /// From MDRMEventObserver - virtual void HandleEventL( MDRMEvent* aEvent ); - - - protected: // data - - enum TMsgObjectSaveState - { - EObjectSavingIdle, - EObjectCreatingAttachment - }; - - enum TMsgObjectFlags - { - EObjectCorrupted = 0x1, - EObjectAttachment = 0x2, - EObjectDrmRightsWhenLoaded = 0x4, - EObjectDrmRightsWhenLoadedObjects = 0x8 - }; - - RFs& iFs; - CBaseMtm& iMtm; - CUniDataUtils& iData; - - TInt iSupportedFeatures; - - TMsvAttachmentId iAttachmentId; // Attachment id of object. Can be id to Link file in store or to real atta. - - CUniMimeInfo* iMimeInfo; // Contains objects mime headers. - CMsgMediaInfo* iMediaInfo; // Contains objects media information. - CUniDrmInfo* iDrmInfo; - TInt iObjectFlags; - TInt iReferenceCount; - //TMsgObjectStoreState iStoreState; - TUniRegion iRegion; - TMsgMediaType iMediaTypeBySmilTag; - TInt iUniqueControlHandle; - - MUniObjectSaveObserver* iObserver; - CMsvAttachment::TMsvAttachmentType iSaveType; - - MMsvAttachmentManager* iManager; - CMsvAttachment* iAttachment; - CMsvStore* iEditStore; - TInt iSaveState; - - TBool iSavedToFs; - RFile iFileHandle; - - CDRMNotifier* iDrmNotifier; - CArrayPtrFlat* iObservers; - - }; - -#include - -#endif // __UNIOBJECT_H