epoc32/include/mmf/common/mmfcontrollerframeworkbase.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
--- a/epoc32/include/mmf/common/mmfcontrollerframeworkbase.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/mmf/common/mmfcontrollerframeworkbase.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,434 @@
-mmfcontrollerframeworkbase.h
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#ifndef __MMFCONTROLLERFRAMEWORKBASE_H__
+#define __MMFCONTROLLERFRAMEWORKBASE_H__
+
+#include <e32base.h>
+#include <e32std.h>
+#include <s32mem.h>
+
+/**
+@publishedAll
+@released
+
+Constant that can be passed into the client API OpenURL() interfaces (as the aIapId parameter)
+to request that the default Internet Access Point be used.
+*/
+const TInt KUseDefaultIap = -1;
+
+
+/**
+@publishedAll
+@released
+
+General purpose class to describe an event.
+
+Contains a UID to define the actual event type, and an integer to define the event code.
+
+Controller plugins can define their own event types, but should use
+KMMFErrorCategoryControllerGeneralError for any errors that can be described by
+the standard system-wide error codes.
+
+@since 7.0s
+*/
+class TMMFEvent
+	{
+public:
+
+	/**
+	Constructor.
+	
+	@param  aEventType
+	        A UID to define the type of event.
+	@param  aErrorCode
+	        The error code associated with the event.
+
+	@since 7.0s
+	*/
+	IMPORT_C TMMFEvent(TUid aEventType, TInt aErrorCode);
+
+	/**
+	Default constructor.
+	
+	Provided so this class can be packaged in a TPckgBuf<>.
+	@since 7.0s
+	*/
+	IMPORT_C TMMFEvent();
+
+	/**
+	A UID to define the event type.
+	*/
+	TUid iEventType;
+
+	/**
+	The error code associated with the event.
+	*/
+	TInt iErrorCode;
+private:
+	/**
+	This member is internal and not intended for use.
+	*/
+	TInt iReserved1;
+	};
+
+/**
+@publishedAll
+@released
+
+Package buffer for TMMFEvent
+*/
+typedef TPckgBuf<TMMFEvent> TMMFEventPckg;
+
+/**
+@publishedAll
+@released
+
+Package buffer for TUid
+*/
+typedef TPckgBuf<TUid> TMMFUidPckg;
+
+/**
+@publishedAll
+@released
+
+Package buffer for TTimeIntervalMicroSeconds
+*/
+typedef TPckgBuf<TTimeIntervalMicroSeconds> TMMFTimeIntervalMicroSecondsPckg;
+
+
+/**
+@publishedAll
+@released
+
+A piece of meta data.
+
+Meta data is often contained in the header of multimedia clips and is used to define
+attributes such as the author and copyright details.
+
+Each piece of meta data has a name, or category, and a value.
+
+@since 7.0s
+*/
+class CMMFMetaDataEntry : public CBase
+	{
+public:
+
+	/**
+	Constructs a new meta data object using a name and value.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	An example of a name might be:
+	@code
+	For example, <Copyright>
+	@endcode
+
+	An example of a value might be:
+	@code
+	<Symbian (c) 2002>
+	@endcode
+
+	@param	aName
+	        The name, or category, to be given to this piece of meta data.
+	@param  aValue
+	        The value of this piece of meta data.
+
+	@return The newly created meta data object.
+
+	@since	7.0s
+	*/
+	IMPORT_C static CMMFMetaDataEntry* NewL(const TDesC& aName, const TDesC& aValue);
+
+	/**
+	Copy constructor. Returns a replica of the meta data passed in.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aOther
+	        The meta data to be copied.
+
+	@return The newly created meta data object.
+
+	@since	7.0s
+	*/
+	IMPORT_C static CMMFMetaDataEntry* NewL(const CMMFMetaDataEntry& aOther);
+
+	/**
+	Default constructor. Returns a blank meta data object. To be used when internalizing
+	data into the object.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@return  The newly created meta data object.
+
+	@since	7.0s
+	*/
+	IMPORT_C static CMMFMetaDataEntry* NewL();
+
+	/**
+	Destructor.
+
+	@since	7.0s
+	*/
+	IMPORT_C ~CMMFMetaDataEntry();
+
+	/**
+	Returns the name, or category, of the meta data.
+
+	@return The name of the meta data object.
+
+	@since	7.0s
+	*/
+	IMPORT_C const TDesC& Name() const;
+
+	/**
+	Returns the value field of the meta data.
+
+	@return The value field of the meta data object.
+
+	@since  7.0s
+	*/
+	IMPORT_C const TDesC& Value() const;
+
+	/**
+	Sets the name, or category, of the meta data.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aName
+	        The new name of the meta data object
+
+	@since	7.0s
+	*/
+	IMPORT_C void SetNameL(const TDesC& aName);
+
+	/**
+	Sets the value field of the meta data.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aValue
+	        The new value field of the meta data object
+
+	@since	7.0s
+	*/
+	IMPORT_C void SetValueL(const TDesC& aValue);
+
+	/**
+	Writes the data contained within the object to a stream so it can be copied
+	over IPC or written to a file.
+	
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aStream
+	        The stream to be written to.
+
+	@since	7.0s
+	*/
+	IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+
+	/**
+	Reads data from a stream and copies it into this object.  Used when copying
+	a meta data object over IPC or reading it from a file.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aStream
+	        The stream to be read.
+
+	@since	7.0s
+	*/
+	IMPORT_C void InternalizeL(RReadStream& aStream);
+private:
+
+	/**
+	Constructor.
+
+	@since 7.0s
+	*/
+	CMMFMetaDataEntry();
+
+	/**
+	Second phase constructor.
+
+	An example of aName might be:
+	@code
+	<Copyright>
+	@endcode
+
+	An example of aValue might be:
+	@code
+	<Symbian (c) 2002>
+	@endcode
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aName
+	        The name, or category, to be given to this piece of meta data.
+	@param  aValue
+	        The value of this piece of meta data.
+
+	@since	7.0s
+	*/
+	void ConstructL(const TDesC& aName, const TDesC& aValue);
+private:
+	/**
+	The name, or category, of the meta data.
+	*/
+	HBufC* iName;
+
+	/**
+	The value of the meta data.
+	*/
+	HBufC* iValue;
+	};
+
+
+
+
+/**
+@publishedAll
+@released
+
+Class to be used to configure a URL source or sink.
+
+Contains a variable length string to represent the URL, and whether to use a specified
+Internet Access Point or use the default.
+
+@since 7.0s
+*/
+class CMMFUrlParams : public CBase
+	{
+public:
+
+	/**
+	Factory function to create a CMMFUrlParams object.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aUrl
+	        The url, for example http://www.symbian.com/clip.mpg
+	@param  aIAPId
+	        The Inernet Access Point to be used.  This should be a valid IAP ID
+	        retrieved from CommDB.  A special value of KUseDefaultIap can be used
+	        to signify that the plugin should just use the default IAP.
+
+	@return A pointer to the newly created object.
+
+	@since	7.0s
+	*/
+	IMPORT_C static CMMFUrlParams* NewL(const TDesC& aUrl, TInt aIAPId=KUseDefaultIap);
+
+	/**
+	Factory function to create a CMMFUrlParams object.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aUrl
+	        The url, for example http://www.symbian.com/clip.mpg
+	@param  aIAPId
+	        The Inernet Access Point to be used.  This should be a valid IAP ID
+	        retrieved from CommDB.  A special value of KUseDefaultIap can be used
+	        to signify that the plugin should just use the default IAP.
+	@return A pointer to the newly created object. The object will be left on the cleanup stack.
+
+	@since	7.0s
+	*/
+	IMPORT_C static CMMFUrlParams* NewLC(const TDesC& aUrl, TInt aIAPId=KUseDefaultIap);
+
+	/**
+	Factory function to create a CMMFUrlParams object by internalizing data from a stream.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aStream
+	        The stream from which the object should be internalized.
+
+	@return The newly created object. The object will be left on the cleanup stack.
+
+	@since	7.0s
+	*/
+	IMPORT_C static CMMFUrlParams* NewLC(RReadStream& aStream);
+
+	/**
+	Externalize this object to a stream.
+
+	This method can leave with one of the standard system-wide error codes.
+
+	@param  aStream
+	        The stream to which the object will be externalized.
+
+	@since	7.0s
+	*/
+	IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+
+	/**
+	Externalize this object into a newly created CBufFlat buffer.
+	
+	This method can leave with one of the standard system-wide error codes.
+
+	@return The newly created buffer containing the externalized data. The CBufFlat object will be
+	        left on the cleanup stack.
+
+	@since	7.0s
+	*/
+	IMPORT_C CBufFlat* ExternalizeToCBufFlatLC() const;
+
+	/**
+	Destructor.
+	*/
+	~CMMFUrlParams();
+
+
+	/**
+	Returns the URL string, for example http://www.symbian.com/clip/mpg.
+
+	@return The URL string.
+	@since	7.0s
+	*/
+	IMPORT_C const TDesC& Url() const;
+
+	/**
+	Returns the Internet Access Point ID.
+	
+	@return IAP ID.
+
+	@since	7.0s
+	*/
+	IMPORT_C TInt IAPId() const;
+
+	/**
+	Signifies whether the IAP ID should be used. This is determined internally by comparing
+	the IAP ID with KUseDefaultIap.
+
+	@return A boolean indicating if the IAP ID should be used. ETrue if the supplied IAPId should
+	        be used, EFalse if not.
+
+	@since  7.0s
+	*/
+	IMPORT_C TBool UseIAPId() const;
+private:
+	CMMFUrlParams();
+	void ConstructL(const TDesC& aUrl, TInt aIAPId);
+	void ConstructL(RReadStream& aStream);
+private:
+	HBufC* iUrl;
+	TInt iIAPId;
+	};
+
+
+#endif