diff -r 000000000000 -r 72b543305e3a msg_plat/mms_application_api/inc/mmsapplicationadapter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/msg_plat/mms_application_api/inc/mmsapplicationadapter.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,303 @@ +/* +* 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: mms application adapter +* +*/ + + + + +#ifndef MMSAPPLICATIONADAPTER_H +#define MMSAPPLICATIONADAPTER_H + +// INCLUDES +#include // TMsvId +#include // MMsvSessionObserver +#include // descriptor array + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CMmsSettings; +class CMmsRegisteredApplications; +class CMmsHeaders; + +// CLASS DECLARATION + +/** +* +* +* @lib mmsappadapter.lib +* @since 3.0 +*/ + +class CMmsApplicationAdapter : public CBase, public MMsvSessionObserver + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + IMPORT_C static CMmsApplicationAdapter* NewL( ); + + /** + * Destructor. + */ + virtual ~CMmsApplicationAdapter(); + + public: // New functions + + /** + * Register application. + * + * @since 3.0 + * + * @param aApplicationId application id + * @param aFolderId folder id for this application id. + * @return KErrNone if successful. + */ + IMPORT_C TInt RegisterL( const TDesC& aApplicationId, TMsvId& aFolderId ); + + /** + * Unregister application + * The function destroys the corresponding folder and its content. + * + * @since 3.0 + * + * @param aApplicationId application id + + * @return KErrNone if successful + */ + IMPORT_C TInt UnregisterL( const TDesC& aApplicationId ); + + /** + * RegisteredL + * + * checks if the application id is registered or not + * @since 3.0 + * + * @param aApplicationId application id + * @return ETrue, if the application id is registered + * EFalse, if the application id is not registered. + */ + IMPORT_C TBool RegisteredL( const TDesC& aApplicationId ); + + /** + * Folder Entry ID + * + * @since 3.0 + * + * @param aApplicationId application id + * @return the index of the folder entry + */ + IMPORT_C TMsvId FolderIdL( const TDesC& aApplicationId ); + + /** + * Application ID + * + * @since 3.0 + * + * @param aMmId Index to the multimedia message + + * @return application id + */ + IMPORT_C TPtrC16 ApplicationIdL( TMsvId aMmId ); + + /** + * Set application ID + * + * @since 3.0 + * + * @param aMmId Index to the multimedia message + * @param aApplicationId application id + * @return + */ + IMPORT_C void SetApplicationIdL( + TMsvId aMmId, + const TDesC& aApplicationId ); + + /** + * Reply to Application ID + * + * @since 3.0 + * + * @param aMmId Index to the multimedia message + + * @return reply to application id + */ + IMPORT_C TPtrC16 ReplyToApplicationIdL( TMsvId aMmId ); + + /** + * Set reply to application ID + * + * @since 3.0 + * + * @param aMmId Index to the multimedia message + * @param aReplyToApplicationId reply to application id + * @return + */ + IMPORT_C void SetReplyToApplicationIdL( + TMsvId aMmId, + const TDesC& aReplyToApplicationId ); + + /** + * Delete the specified MM. + * + * @since 3.0 + * + * @param aMmId Index to the MM, which will be deleted. + * + * @return KErrNone if successful + */ + IMPORT_C TInt DeleteL( TMsvId aMmId ); + + /** + * MmscUrlL + * + * @since 3.0 + * + * @param HBufC*& aServerUri + * + * Usage: + * aServerUri should not be allocated by the caller of this method. + * The buffer is pushed onto CleanupStack temporarily. + * The caller is responsible for destroying the buffer + * when the buffer is no longer needed. + * + * @return KErrNone if successful + * KErrNotFound if not found + * KErrGeneralError, something has failed. + * + * Note that if the uri is not defined, KErrNone is returned. + */ + IMPORT_C TInt MmscUrlL( HBufC*& aServerUri ); + + /** + * Return a list of registered applications + * + * @since 3.1 + * + * @return Descriptor array that contains ids of registered applications + */ + IMPORT_C const CDesCArray& RegisteredApplicationList() const; + + /** + * Register application. + * + * @since 3.2 + * + * @param aApplicationId application id + * @param aUserFriendlyName user friendly name for the application + * @param aFolderId folder id for this application id (return value). + * @return KErrNone if successful. + */ + IMPORT_C TInt RegisterWithNameL( + const TDesC& aApplicationId, + const TDesC& aUserFriendlyName, + TMsvId& aFolderId ); + + /** + * Get User Friendly Name for an application + * + * @since 3.2 + * @param aApplicationId application id + * @return User Friendly Name for the application. + * If a user friendly name cannot be found, returns empty string. + * The pointer is valid only as long as CMmsRegisteredApplications + * is alive and as long as the function is not called again. + * (It is a pointer to member variable) + * The caller should allocate memory and copy the string if it is needed + * for longer period of time or if names for several applications are + * needed. + */ + IMPORT_C TPtrC UserFriendlyName( const TDesC& aApplicationId ); + + + + public: // Functions from base classes + + + protected: // New functions + + + protected: // Functions from base classes + + /** + * From MMsvSessionObserver. + * @since 3.0 + * + * @param aEvent the caller of the method sets the value. + * @param aArg1 depends on the aEvent value + * @param aArg2 depends on the aEvent value + * @param aArg3 depends on the aEvent value + * + */ + + virtual void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3); + + + private: // New functions + + /** + * C++ default constructor. + * C++ default constructor can NOT contain any code, that + * might leave. + * @since 3.0 + */ + CMmsApplicationAdapter(); + + /** + * By default Symbian 2nd phase constructor is private. + * @since 3.0 + */ + void ConstructL(); + + + private: + + + + /** + * Functions from CMmsBaseOperation + */ + + + + + public: // Data + protected: // Data + private: // Data + + CMsvSession* iSession; // channel for client side thread and message server + CMsvEntry* iClientEntry; + + CMmsHeaders* iMmsHeaders; + CMmsSettings* iMmsSettings; + CMmsRegisteredApplications* iRegAppIds; + + public: // Friend classes + protected: // Friend classes + private: // Friend classes + + }; + +#endif // MMSAPPLICATIONADAPTER + +// End of File