remotecontrol/remotecontrolfw/server/inc/messagerecipients.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) 2007-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
 @internalComponent
20ac952a623c 201040_02
hgs
parents:
diff changeset
    19
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    20
20ac952a623c 201040_02
hgs
parents:
diff changeset
    21
#ifndef MESSAGERECIPIENTS_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    22
#define MESSAGERECIPIENTS_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    23
20ac952a623c 201040_02
hgs
parents:
diff changeset
    24
#include <e32base.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    25
#include <remcon/clientinfo.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
A list of clients a message with the given transaction ID was delivered to,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
that hasn't yet been responded to
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
NONSHARABLE_CLASS(CMessageRecipients): public CBase
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
	@return Ownership of a new CMessageRecipients object.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
	static CMessageRecipients* NewL();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
	Destructor.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
	~CMessageRecipients();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
	@return List of clients to which the message was delivered
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
	TSglQue<TClientInfo>& Clients();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
	@return Iterator over a list of clients to which the message was delivered.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
	@note Pointers returned by the iterator will be const TClientInfo*
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
	TClientInfoConstIter& ConstIter();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
	@return The transaction ID of the message that was delivered
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
	TUint& TransactionId();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
 	Removes and deletes the specified client from the list of clients this message was delivered to.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
 	Called when the client responds to the message
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
	void RemoveAndDestroyClient(const TClientInfo& aClientInfo);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
	TSglQueLink iLink;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
private:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
	Constructor
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
	CMessageRecipients();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
	TSglQue<TClientInfo> iClientInfo;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
	TSglQueIter<TClientInfo> iIter;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
	TClientInfoConstIter iConstIter;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
	TUint iTransactionId;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
A list of CMessageRecipients, for storing the list of messages that haven't yet
20ac952a623c 201040_02
hgs
parents:
diff changeset
    82
had a response sent to the bearer and which clients each was delivered to
20ac952a623c 201040_02
hgs
parents:
diff changeset
    83
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    84
NONSHARABLE_CLASS(CMessageRecipientsList): public CBase
20ac952a623c 201040_02
hgs
parents:
diff changeset
    85
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    86
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    87
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    88
	@return Ownership of a new CMessageRecipientsList object.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    89
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    90
	static CMessageRecipientsList* NewL();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    91
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    92
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    93
	Destructor.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    94
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    95
	~CMessageRecipientsList();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    96
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    97
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    98
	@return The list of messages and which client each was delivered to.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    99
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   100
	TSglQue<CMessageRecipients>& Messages();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   101
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   102
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   103
	@return Iterator over the list of messages
20ac952a623c 201040_02
hgs
parents:
diff changeset
   104
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   105
	TSglQueIter<CMessageRecipients>& Iter();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   106
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   107
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   108
	Removes and deletes a message from the message recipients list with a specified transaction ID
20ac952a623c 201040_02
hgs
parents:
diff changeset
   109
	Called when the response is sent to the bearer, or the last client has responded. 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   110
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   111
	void RemoveAndDestroyMessage(const TUint aTransactionId);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   112
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   113
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   114
	@return pointer to a CMessageRecipients object with a specified transaction ID, or NULL
20ac952a623c 201040_02
hgs
parents:
diff changeset
   115
	if one was not found
20ac952a623c 201040_02
hgs
parents:
diff changeset
   116
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   117
	CMessageRecipients* Message(TUint aTransactionId);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   118
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   119
private:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   120
20ac952a623c 201040_02
hgs
parents:
diff changeset
   121
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   122
	Constructor
20ac952a623c 201040_02
hgs
parents:
diff changeset
   123
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   124
	CMessageRecipientsList();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   125
20ac952a623c 201040_02
hgs
parents:
diff changeset
   126
	TSglQue<CMessageRecipients> iMessages;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   127
	TSglQueIter<CMessageRecipients> iIter;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   128
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   129
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   130
#endif // MESSAGERECIPIENTS_H