mtpfws/mtpfw/dataproviders/dataproviderapi/interface/mmtpdataproviderconfig.h
changeset 0 d0791faffa3f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpfws/mtpfw/dataproviders/dataproviderapi/interface/mmtpdataproviderconfig.h	Tue Feb 02 01:11:40 2010 +0200
@@ -0,0 +1,168 @@
+// Copyright (c) 2006-2009 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:
+//
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef MMTPDATAPROVIDERCONFIG_H
+#define MMTPDATAPROVIDERCONFIG_H
+
+#include <e32std.h>
+
+/**
+Defines the data provider configurability parameter interface.
+@publishedPartner
+@released
+*/
+class MMTPDataProviderConfig
+	{
+public:
+
+    /**
+    Defines the data provider configurability parameters.
+    */
+    enum TParameter
+        {
+	    /**
+	    This parameter specifies the type of the data provider which in turn 
+	    determines how it will be loaded. The set of valid parameter values is 
+	    defined by the @see TMTPDataProviderType enumeration.
+	    
+	    This parameter value can be accessed using the @see UintValue API.
+	    */
+        EDataProviderType,
+
+	    /**
+	    This parameter specifies the highest major MTP protocol revision 
+	    supported by the data provider. MTP protocol revision identifiers take 
+	    the form N.N, of which the major protocol revision comprises the most 
+	    significant digit(s) to the left of the period (.), e.g. a major 
+	    protocol version value of 1 would represent all MTP protocol revisions 
+	    from 1.0 up to (but not including) 2.0. 
+	    
+	    This parameter value can be accessed using the @see UintValue API.
+	    */
+        EMajorProtocolRevision,						
+        
+	    /**
+	    This parameter indicates whether the object enumerations which the data 
+	    provider registers with the MTP object manager should persist when the 
+	    data provider is unloaded from the MTP framework. If the persistent 
+	    option is selected, then on each subsequent activation after its 
+	    initial object store enumeration is complete the data provider will be 
+	    required to re-enumerate only that portion of its object store which 
+	    has changed (objects added, removed, or modified) since it was last 
+	    loaded. If the persistent option is not selected, then the data 
+	    provider will be required to re-enumerate its entire object store each 
+	    time it is loaded. 
+	    
+	    This parameter value can be accessed using the @see BoolValue API
+	    */
+        EObjectEnumerationPersistent,
+        	
+	    /**
+	    This parameter specifies the modes of operation which the data provider
+	    supports. It is specified as an integer which encodes a set of bit 
+	    flags. The set of valid bit flag values is defined by the @see TMTPMode
+	    enumeration. 
+	    
+	    The set of parameter values can be accessed using the 
+	    @see GetArrayValue API.
+	    */
+        ESupportedModes,				
+
+	    /**
+	    This parameter is reserved for future use.
+	    */
+        EServerName,			
+        
+	    /**
+	    This parameter is reserved for future use.
+	    */
+        EServerImageName,			
+        
+        /**
+        This parameter specifies an optional configuration data resource whose
+        form and function is specific to the data provider. 
+        
+        The parameter value is specified as an LLINK resource and can be 
+        accessed using the @see DesC8Value API.
+        */
+        EOpaqueResource,
+        
+        /**
+        This parameter specifies the resource filename in which the set of data 
+        provider configurability parameter values are specified.
+	    
+	    The set of parameter values can be accessed using the 
+	    @see DesCValue API.
+        */
+        EResourceFileName,
+
+	    /**
+	    This parameter specifies the enumeration phase of the data provider	    
+	    
+	    This parameter value can be accessed using the @see UintValue API.
+	    */	    
+        EEnumerationPhase
+        };
+
+public:
+
+    /**
+    Provides the specified @see TBool parameter value.
+    @param aParam The parameter value to retrieve.
+    @return Returns The parameter value
+    @panic USER 0, if the parameter data type is not @see TBool.
+    */
+    virtual TBool BoolValue(TParameter aParam) const = 0;
+
+    /**
+    Provides the specified @see TDesC parameter value.
+    @param aParam The parameter value to retrieve.
+    @return Returns The parameter value
+    @panic USER 0, if the parameter data type is not @see TDesC.
+    */
+	virtual const TDesC& DesCValue(TParameter aParam) const = 0;
+
+    /**
+    Provides the specified @see TDesC8 parameter value.
+    @param aParam The parameter value to retrieve.
+    @return Returns The parameter value
+    @panic USER 0, if the parameter data type is not @see TDesC8.
+    */
+	virtual const TDesC8& DesC8Value(TParameter aParam) const = 0;
+
+    /**
+    Provides the specified @see TUint parameter value.
+    @param aParam The parameter value to retrieve.
+    @return Returns The parameter value
+    @panic USER 0, if the parameter data type is not @see TUint.
+    */
+	virtual TUint UintValue(TParameter aParam) const = 0;
+	
+    /**
+    Retrieves the specified @see RArray<TUint> parameter value.
+    @param aParam The parameter value to retrieve.
+    @return Returns The parameter value
+    @panic USER 0, if the parameter data type is not @see RArray<TUint>.
+    */
+    virtual void GetArrayValue(TParameter aParam, RArray<TUint>& aArray) const = 0;
+	};
+
+#endif // MMTPDATAPROVIDERCONFIG_H