installationservices/swi/inc/swiobserverplugin.h
changeset 0 ba25891c3a9e
equal deleted inserted replaced
-1:000000000000 0:ba25891c3a9e
       
     1 /*
       
     2 * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 * Interface definition for SWI Observer ECOM plug-in.
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 /**
       
    21  @file
       
    22  @internalTechnology
       
    23  @released
       
    24 */
       
    25  
       
    26  #ifndef SWIOBSERVERPLUGIN_H
       
    27  #define SWIOBSERVERPLUGIN_H
       
    28  
       
    29  #include <e32base.h>
       
    30  #include <ecom/ecom.h>
       
    31  
       
    32  #include <swi/swiobcommon.h>
       
    33  #include <swi/swiobservedinfo.h>
       
    34  
       
    35  namespace Swi
       
    36  	{
       
    37 	/**
       
    38 		Abstract base class for a SWI Observer ECOM plug-in.
       
    39 			
       
    40 		SWI Observer plug-ins are primarily	responsible for submitting SWI event 
       
    41 		notifications to the related system server asynchronously. This
       
    42 		interface allows components to register their interest in SWI events.
       
    43 		System servers which wish to register to the SWI Observer implement
       
    44 		a concrete class derived from this abstract class.
       
    45 	 */
       
    46 	 class CSwiObserverPlugin : public CActive
       
    47 	 	{
       
    48 	 public:
       
    49 	 	IMPORT_C static CSwiObserverPlugin* NewL( const TUid& aImplementationId);
       
    50 	 		
       
    51 	 	virtual void StartL(RFs& aFs) = 0;
       
    52 	 	virtual void NextObservedHeaderL(const CObservationHeader& aHeader, TRequestStatus& aStatus) = 0;	
       
    53 	 	virtual void NextObservedDataL(const CObservationData& aData, TInt aFilterIndex, TRequestStatus& aStatus) = 0;	
       
    54 	 	virtual void FinalizeL(TRequestStatus& aStatus) = 0;
       
    55 	 	virtual CObservationFilter* GetFilterL() const = 0;
       
    56 	 		
       
    57 	 	IMPORT_C virtual TInt GetExtension(TUint aExtensionId, TAny*& a0, TAny* a1);
       
    58 	 		
       
    59 	 	IMPORT_C ~CSwiObserverPlugin();
       
    60 	 	
       
    61 	 protected:
       
    62 	 	IMPORT_C CSwiObserverPlugin();
       
    63 	 	IMPORT_C virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
       
    64 	 		
       
    65 	 private:
       
    66 		TUid iDtor_ID_Key;		// Required by ECOM
       
    67 		TAny* iReserved;
       
    68 	 	};
       
    69 	 	
       
    70 	 /** Hosting the SWI Observer Plugin Interface UID. */	
       
    71 	 const TUid KUidSwiObserverPluginInterface = {0x10283724};
       
    72 	 		
       
    73  	} // End of namespace Swi
       
    74  
       
    75  #endif
       
    76  
       
    77