remotecontrol/avrcp/avrcpipc/src/remconqueuemessage.cpp
author jontanne
Thu, 14 Oct 2010 11:16:56 +0100
changeset 52 321a10f609ef
parent 51 20ac952a623c
permissions -rw-r--r--
Add USB HCTL to bt package
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
#include "remconqueuemessage.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    25
#include <bluetooth/logger.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
#ifdef __FLOG_ACTIVE
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
_LIT8(KLogComponent, LOG_COMPONENT_AVRCP_BEARER);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
#endif
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
EXPORT_C CRemConQueuedMessage* CRemConQueuedMessage::NewL(TUid aInterfaceUid
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
		,const TDesC8& aData
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
		,TInt aOperationId
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
		)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
	LOG_STATIC_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
	CRemConQueuedMessage* self = new(ELeave) CRemConQueuedMessage(
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
			aInterfaceUid
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
			,aOperationId
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
			);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
	CleanupStack::PushL(self);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
	self->ConstructL(aData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
	CleanupStack::Pop(self);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
	return self;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
CRemConQueuedMessage::CRemConQueuedMessage(TUid aInterfaceUid
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
		,TInt aOperationId
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
		)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
: iInterfaceUid(aInterfaceUid), iOperationId(aOperationId)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
	LOG_FUNC	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
void CRemConQueuedMessage::ConstructL(const TDesC8& aData)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
	iData.CreateL(aData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
EXPORT_C CRemConQueuedMessage::~CRemConQueuedMessage()
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
	LOG_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
	iData.Close();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
EXPORT_C const TDesC8& CRemConQueuedMessage::Data()
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
	return iData;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
EXPORT_C const CRemConQueuedMessage* TRemConMessageQueue::Find(
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
		TUid aInterfaceUid
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
		,TInt aOperationId
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
		)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
	CRemConQueuedMessage* request = NULL;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
	while (iIter)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
		request = iIter++;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
		if(request->iInterfaceUid == aInterfaceUid
20ac952a623c 201040_02
hgs
parents:
diff changeset
    82
		   && request->iOperationId == aOperationId
20ac952a623c 201040_02
hgs
parents:
diff changeset
    83
		   )
20ac952a623c 201040_02
hgs
parents:
diff changeset
    84
			{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    85
			return request;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    86
			}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    87
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    88
				
20ac952a623c 201040_02
hgs
parents:
diff changeset
    89
	return NULL;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    90
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    91
20ac952a623c 201040_02
hgs
parents:
diff changeset
    92
EXPORT_C TRemConMessageQueue::TRemConMessageQueue()
20ac952a623c 201040_02
hgs
parents:
diff changeset
    93
    :iQueue(_FOFF(CRemConQueuedMessage, iLink))
20ac952a623c 201040_02
hgs
parents:
diff changeset
    94
    , iIter(iQueue)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    95
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    96
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    97
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    98
20ac952a623c 201040_02
hgs
parents:
diff changeset
    99
EXPORT_C void TRemConMessageQueue::Reset()
20ac952a623c 201040_02
hgs
parents:
diff changeset
   100
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   101
	CRemConQueuedMessage* msg;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   102
	iIter.SetToFirst();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   103
	while (NULL != (msg = iIter++))
20ac952a623c 201040_02
hgs
parents:
diff changeset
   104
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   105
		iQueue.Remove(*msg);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   106
		delete msg;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   107
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   108
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   109
20ac952a623c 201040_02
hgs
parents:
diff changeset
   110
EXPORT_C void TRemConMessageQueue::AddLast(CRemConQueuedMessage& aMsg)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   111
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   112
	iQueue.AddLast(aMsg);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   113
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   114
20ac952a623c 201040_02
hgs
parents:
diff changeset
   115
EXPORT_C TBool TRemConMessageQueue::IsEmpty()
20ac952a623c 201040_02
hgs
parents:
diff changeset
   116
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   117
	return iQueue.IsEmpty();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   118
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   119
20ac952a623c 201040_02
hgs
parents:
diff changeset
   120
EXPORT_C CRemConQueuedMessage* TRemConMessageQueue::First() const
20ac952a623c 201040_02
hgs
parents:
diff changeset
   121
    {
20ac952a623c 201040_02
hgs
parents:
diff changeset
   122
    return iQueue.First();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   123
    }
20ac952a623c 201040_02
hgs
parents:
diff changeset
   124
20ac952a623c 201040_02
hgs
parents:
diff changeset
   125
EXPORT_C void TRemConMessageQueue::Remove(CRemConQueuedMessage& aMsg)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   126
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   127
	iQueue.Remove(aMsg);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   128
	}