remotecontrol/remotecontrolfw/converterplugin/public/remconconverterplugin.h
author hgs
Wed, 13 Oct 2010 16:20:29 +0300
changeset 51 20ac952a623c
permissions -rw-r--r--
201040_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
20ac952a623c 201040_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
20ac952a623c 201040_02
hgs
parents:
diff changeset
     2
// All rights reserved.
20ac952a623c 201040_02
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
20ac952a623c 201040_02
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
20ac952a623c 201040_02
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
20ac952a623c 201040_02
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
20ac952a623c 201040_02
hgs
parents:
diff changeset
     7
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
     8
// Initial Contributors:
20ac952a623c 201040_02
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    10
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    11
// Contributors:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    12
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    13
// Description:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    14
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    15
20ac952a623c 201040_02
hgs
parents:
diff changeset
    16
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    17
 @file
20ac952a623c 201040_02
hgs
parents:
diff changeset
    18
 @publishedPartner
20ac952a623c 201040_02
hgs
parents:
diff changeset
    19
 @released
20ac952a623c 201040_02
hgs
parents:
diff changeset
    20
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    21
20ac952a623c 201040_02
hgs
parents:
diff changeset
    22
#ifndef REMCONCONVERTERPLUGIN_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    23
#define REMCONCONVERTERPLUGIN_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    24
20ac952a623c 201040_02
hgs
parents:
diff changeset
    25
#include <e32base.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
#include <remcon/messagetype.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
The UID of the RemCon converter interface. Implementors of new converters are 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
implementing this interface. The converter interface is simply a means of 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
supplying implementations of the 'converter API' to RemCon. The converter API 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
may change over time, so this extension pattern is used.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
const TInt KRemConConverterInterfaceUid = 0x10205C43;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
Base class for RemCon converter plugins.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
class CRemConConverterPlugin : public CBase
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
	/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
	Constructor.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
	@param aImplementationUid The implemention UID.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
	@return Ownership of a new converter plugin.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
	IMPORT_C static CRemConConverterPlugin* NewL(TUid aImplementationId);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
	/** Destructor. */
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
	IMPORT_C ~CRemConConverterPlugin();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
	Called by RemCon server to get a pointer to an object which implements the 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
	converter API with UID aUid. This is a mechanism for allowing future 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
	change to the converter API without breaking BC in existing (non-updated) 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
	converter plugins.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
	virtual TAny* GetInterface(TUid aUid) = 0;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
protected:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
	/** Constructor
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
	@param aObserver To be notified of the completion of requests.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
	@param aImplementationId Identifier of the concrete implementation.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
	IMPORT_C CRemConConverterPlugin();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
private: // owned
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
	UID set by ECOM when the instance is created. Used when the instance is 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
	destroyed.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
	TUid iInstanceId;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
	/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
	Pad for BC-friendly future change.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
	TAny* iPad;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
#endif // REMCONCONVERTERPLUGIN_H