sysanadatacapture/piprofiler/piprofiler_api/inc/SamplerPluginInterface.h
changeset 2 6a82cd05fb1e
parent 1 3ff3fecb12fe
--- a/sysanadatacapture/piprofiler/piprofiler_api/inc/SamplerPluginInterface.h	Thu Feb 11 15:52:57 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/*
-* Copyright (c) 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:  
-*
-*/
-
-
-#ifndef __SAMPLER_PLUGIN_INTERFACE__
-#define __SAMPLER_PLUGIN_INTERFACE__
-
-#include <e32base.h>
-#include <ecom/ECom.h>
-#include <badesca.h>
-#include <piprofiler/ProfilerAttributes.h>	// internal settings format presentations 
-
-
-// Constant for indexing (iOrder):
-const TInt KSamplerPluginNotIndexed      = -1;
-
-/**
- * Constant:    KSamplerPluginInterfaceUid
- *
- * Description: UID of this ECOM interface. It should be unique in the system.
- *              It is used to identify this specific custom interface.
- *              Implementations of this interface will use this ID, when they
- *              publish the implementation. Clients use this UID to search for
- *              implementations for this interface (the
- *              EcomInterfaceDefinition.inl does this).
- */
-const TUid KSamplerPluginInterfaceUid = {0x2001E5BC};
-
-/**
- *
- * Description: UID of this ECOM interface. It should be unique in the system.
- *
- */
-enum TGenericSettingTypes
-{
-	EEnablePlugin,
-	EOutputSettings,
-	ESaveDrive,
-	EFilePrefix,
-	ETracingMode
-};
-
-
-enum TSamplerCaptionTypes
-	{
-	ECaptionLengthShort,
-	ECaptionLengthMedium,
-	ECaptionLengthLong,
-    ESettingsCaption
-	};
-
-
-/**
-* Used by GetValue(). These are the keys for retrieving a specific
-* value. This enum can be extended to provide other values as well as
-* long as the original keys are not changed.
-*/
-enum TSamplerPluginValueKeys
-    {
-
-    ESamplerPluginKeySettingsItemValueString = 1,
-    ESamplerPluginSettings,
-    ESamplerPluginEnabled,
-    ESamplerPluginDisabled,
-    ESamplerPluginType,
-    ESamplerPluginVersion
-    };
- 
-
-/**
- * Class:       CSamplerInterfaceDefinition
- *
- * Description: Custom ECOM interface definition. This interface is used by
- *              clients to find specific instance and do corresponding
- *              calculation operation for given too numbers. Plugin
- *              implementations implement the Calculate function.
- */
-class TBapBuf;
-class CProfilerSampleStream;
-
-class CSamplerPluginInterface : public CBase 
-{
-
-    // CSamplerPluginLoader accesses iOrder which should not be accessed outside.
-    friend class CSamplerPluginLoader;
-
-public: 
-	// Wrapper functions to handle ECOM "connectivity".
-    // These are implemented in EComInterfaceDefinition.inl.
-    // These functions are used only by the client.
-    
-	/**
-     * Function:   NewL
-     *
-     * Description: Wraps ECom object instantitation. Will search for
-     *              interface implementation, which matches to given
-     *              aOperationName.
-     *
-     * Param:       aOperationName name of requested implementation.
-     *              Implementations advertise their "name" as specified
-     *              in their resource file field
-     *                 IMPLEMENTATION_INFO::default_data.
-     *              For details, see EcomInterfaceDefinition.inl comments.
-     *              In this example, the allowed values are "sum" and
-     *              "multiply".
-     *
-     * Note:        This is not a "normal" NewL method, since normally NewL
-     *              methods are only defined for concrete classes.
-     *              Note that also implementations of this interface provide
-     *              NewL methods. They are the familiar NewL's, which create
-     *              instance of classes.
-     */
-    static CSamplerPluginInterface* NewL(const TUid aImplementationUid, TAny* aInitParams);
-
-    /**
-     * Function:   ~CSamplerPluginInterface
-     *
-     * Description: Wraps ECom object destruction. Notifies the ECOM
-     *              framework that specific instance is being destroyed.
-     *              See EcomInterfaceDefinition.inl for details.
-     */
-    virtual ~CSamplerPluginInterface();
-protected: // New
-
-	/**
-	* C++ constructor.
-	*/
-	CSamplerPluginInterface();
-        
-public: 
-	// Public pure virtual functions, which are implemented by
-    // interface implementations (See ..\plugin)
-    
-    /**
-     * Method for initializing and starting of profiling in single plugin implementation
-     * @param aStream is a data stream to store the gathered data, provided by engine
-     * @return TInt if no error KErrNone, else any of system-wide errors
-     */
-	virtual TInt	ResetAndActivateL(CProfilerSampleStream& aStream) = 0;
-
-	/**
-     * Method for stopping of profiling in single plugin implementation
-     * @return TInt if no error KErrNone, else any of system-wide errors
-     */
-	virtual TInt	StopSampling() = 0;
-    /**
-     * Method for checking if plugin is enabled
-     * @return TBool if enabled return ETrue else EFalse
-     */
-    virtual TBool   Enabled() = 0;
- 	
-    /**
-    * Method for getting an array of sampler attributes, size of an array: 1...n
-    * @return array of settings of one or several sampler plugins
-    */
-    virtual void GetAttributesL(CArrayFixFlat<TSamplerAttributes>* aAttributeArray) = 0;	
-    
-    /**
-    * Method for setting configurations of single sampler attributes
-    * @param aAttributes contains settings of a single sampler plugin 
-    */
-    virtual TInt SetAttributesL(TSamplerAttributes aAttributes) = 0; 
-    
-    /**
-    * Method for parsing text formatted settings block and converting
-    * it to TSamplerAttributes data structure
-    * @param aSingleSettingArray containing setting lines of a single sampler
-    * @return status of conversion, if success KErrNone, else KErrGeneral
-    */
-    virtual TInt ConvertRawSettingsToAttributes(CDesC8ArrayFlat* aSingleSettingArray) = 0;
- 
-    /**
-    * Method for getting caption of this plugin. This should be the
-    * localized name of the settings view to be shown in parent view.
-    * @param aCaption pointer to Caption variable
-    * @param aType caption type; ECaptionLengthShort, ECaptionLengthMedium or ECaptionLengthLong
-    * @param aSubId sub sampler id, if -1 returning main plugin's caption
-    */
-    virtual void 	GetCaption( TDes& aCaption, TInt aType, TInt aSubId) const = 0;
-     
-    /**
-    * Method for getting UID of this plugin.
-    * @param aSubId the implementation id of sub sampler
-    * @returns uid of sampler or sub sampler, if aSubId -1 uid of sampler, else uid of sub sampler
-    */
-    virtual TUid 	Id(TInt aSubId) const = 0;
-    
-    /**
-    * Method for getting locally defined sub ID value inside a specific plug-in.
-    * @param aUid of a specific sampler
-    * @returns local ID of sampler or sub sampler
-    */
-    virtual TInt 	SubId(TUid aUid) const = 0;
-    
-    // subsampler settings, i.e. samplers implemented within a plugin
-    virtual TInt 	GetSamplerUidByName(TDesC8& name) = 0;
-    
-    // sampler type
-    virtual TInt 	GetSamplerType() = 0;
-	 
-	 
-	 // some internal inline methods, used by engine
-    inline TInt     Flush();
-    inline TInt     AddSample(TUint8* sample, TUint32 length, TInt limitSize);  
-    inline void     SetOrder( TInt aOrder );
-    inline static void ListAllImplementationsL(RImplInfoPtrArray& aImplInfoArray);
-
-    /**
-    * Static methods for getting setting value out of descriptor
-    * 
-    * @param aBuf buffer where to convert the value
-    * @param aValue parameter where to store the requested type of value
-    */
-    inline static void     Str2Bool(const TDesC8& aBuf, TBool& aValue);
-    inline static void     Str2Int(const TDesC8& aBuf, TInt& aValue);
-    inline static void     Str2Int(const TDesC8& aBuf, TUint32& aValue);
-     
-    /** iDtor_ID_Key Instance identifier key. When instance of an
-     *               implementation is created by ECOM framework, the
-     *               framework will assign UID for it. The UID is used in
-     *               destructor to notify framework that this instance is
-     *               being destroyed and resources can be released.
-     */
-    TUid iDtor_ID_Key;
-    
-    /**
-	* Index of the plugin in listbox. Used for CSamplerPluginLoader. Default
-	* value is KSamplerPluginNotIndexed which means not ordered. This value is
-	* read, if defined, from the opaque_data field of the plugin's resource
-	* definition. Index starts from 0.
-	*/
-	TInt iOrder;
-
-public:	    
-	TInt 					iSamplerType;
-	
-	// this variable must be defined by the extending classes!!
-	TInt					iSamplerId;
-	
-	CProfilerSampleStream*	iStream;
-    TBool                   iEnabled;
-		
-private:
-	TBapBuf*				iBuffer;
-};
-
-#include <piprofiler/ProfilerGenericClassesUsr.h>
-#include <piprofiler/SamplerPluginInterface.inl>
-
-
-#endif // __SAMPLER_PLUGIN_INTERFACE__