remotecontrol/remotecontrolfw/bearerplugin/public/remconbearerbulkobserver.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) 2008-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
20ac952a623c 201040_02
hgs
parents:
diff changeset
    18
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    19
 @file
20ac952a623c 201040_02
hgs
parents:
diff changeset
    20
 @internalTechnology
20ac952a623c 201040_02
hgs
parents:
diff changeset
    21
 @released
20ac952a623c 201040_02
hgs
parents:
diff changeset
    22
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    23
20ac952a623c 201040_02
hgs
parents:
diff changeset
    24
#ifndef REMCONBEARERBULKOBSERVER_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    25
#define REMCONBEARERBULKOBSERVER_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
#include <e32base.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
#include <remcon/messagetype.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
#include <remcon/clientid.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
class TRemConAddress;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
Interface presented by RemCon down to bulk bearers.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
The public methods are non-virtual and exported, so that they can be added to 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
without breaking BC for existing (non-rebuilt) bearers.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
class MRemConBearerBulkObserver
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
	/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
	Called when an incoming command from a remote is ready to be picked up by 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
	RemCon.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
	@param aAddr The address the command came from.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
	@return Error. If KErrNone, RemCon is committing to collecting the message 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
	using GetResponse. If non-KErrNone, the message will be dropped by the 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
	bearer.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
	IMPORT_C TInt NewCommand(const TRemConAddress& aAddr);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
	/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
	Called when an incoming command from a remote is ready to be picked up by 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
	RemCon.  This overload is used when the command is for a stateless
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
	interface and must be delivered to a particular client.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
	@param aAddr The address the command came from.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
	@param aClientId The client to deliver the command to.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
	@return Error. If KErrNone, RemCon is committing to collecting the message 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
	using GetResponse. If non-KErrNone, the message will be dropped by the 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
	bearer.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
	IMPORT_C TInt NewCommand(const TRemConAddress& aAddr, const TRemConClientId& aClient);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
	Called by a bearer when a new command has come in. RemCon returns a cookie 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
	(a transaction id), guaranteed to be unique, which the bearer may use for 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
	its own identification purposes.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
	@return A new transaction ID.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
	IMPORT_C TUint NewTransactionId();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
	Called by a bearer when a command is no longer valid and should be removed
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
	from RemCon's queues
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
	@param aTransactionId The transaction ID of the expired command
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
	IMPORT_C void CommandExpired(TUint aTransactionId);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
	Called by a bearer to select the client to which commands should be addressed.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
	@param aAddr	The address for received commands to be delivered to a specific client.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    82
	@param aClient	The client to which commands received from the given address should 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    83
					be delievered to.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    84
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    85
	IMPORT_C TInt SetAddressedClient(const TRemConAddress& aAddr, const TRemConClientId& aClient);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    86
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    87
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    88
	Called by a bearer to remove any addressing to particular clients for an address.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    89
	@param aAddr	The address of received commands that are no longer to be delivered to
20ac952a623c 201040_02
hgs
parents:
diff changeset
    90
					specified clients.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    91
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    92
	IMPORT_C TInt RemoveAddressing(const TRemConAddress& aAddr);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    93
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    94
private:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    95
	/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    96
	@see NewCommand.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    97
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    98
	virtual TInt MrcbboDoNewCommand(const TRemConAddress& aAddr) = 0;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    99
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   100
	/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   101
	@see NewCommand.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   102
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   103
	virtual TInt MrcbboDoNewCommand(const TRemConAddress& aAddr, const TRemConClientId& aClient) = 0;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   104
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   105
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   106
	@see TransactionId.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   107
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   108
	virtual TUint MrcbboDoNewTransactionId() = 0;	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   109
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   110
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   111
	@see CommandExpired.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   112
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   113
	virtual void MrcbboDoCommandExpired(TUint aTransactionId) = 0;	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   114
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   115
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   116
	@see SetAddressedClient.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   117
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   118
	virtual TInt MrcbboDoSetAddressedClient(const TRemConAddress& aAddr, const TRemConClientId& aClient) = 0;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   119
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   120
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   121
	@see RemoveAddressing.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   122
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   123
	virtual TInt MrcbboDoRemoveAddressing(const TRemConAddress& aAddr) = 0;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   124
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   125
20ac952a623c 201040_02
hgs
parents:
diff changeset
   126
#endif // REMCONBEARERBULKOBSERVER_H