eapol/eapol_framework/eapol_symbian/am/common/symbian/EapMessageQueue.cpp
author hgs
Thu, 16 Sep 2010 13:07:04 +0300
changeset 49 43351a4f2da3
parent 34 ad1f037f1ac2
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2001-2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
34
hgs
parents: 26
diff changeset
    14
* Description:  Message queue for EAP-server and -clients.
26
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
/*
49
hgs
parents: 34
diff changeset
    19
* %version: 16 %
26
hgs
parents:
diff changeset
    20
*/
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include "EapMessageQueue.h"
hgs
parents:
diff changeset
    24
#include "eap_am_tools.h"
hgs
parents:
diff changeset
    25
#include "EapServerStrings.h"
hgs
parents:
diff changeset
    26
#include "eap_automatic_variable.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
EAP_FUNC_EXPORT EapMessageBuffer::EapMessageBuffer(abs_eap_am_tools_c * const tools)
hgs
parents:
diff changeset
    31
	: iTools(tools)
hgs
parents:
diff changeset
    32
	, iRequestType(EEapNone)
hgs
parents:
diff changeset
    33
	, iData(0)
hgs
parents:
diff changeset
    34
{
34
hgs
parents: 26
diff changeset
    35
	EAP_TRACE_DEBUG(
hgs
parents: 26
diff changeset
    36
		iTools,
hgs
parents: 26
diff changeset
    37
		TRACE_FLAGS_DEFAULT,
hgs
parents: 26
diff changeset
    38
		(EAPL("EapMessageBuffer::EapMessageBuffer(): this=0x%08x\n"),
hgs
parents: 26
diff changeset
    39
		this));
hgs
parents: 26
diff changeset
    40
hgs
parents: 26
diff changeset
    41
	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageBuffer::EapMessageBuffer()");
26
hgs
parents:
diff changeset
    42
}
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
EAP_FUNC_EXPORT EapMessageBuffer::~EapMessageBuffer()
hgs
parents:
diff changeset
    47
{
34
hgs
parents: 26
diff changeset
    48
	EAP_TRACE_DEBUG(
hgs
parents: 26
diff changeset
    49
		iTools,
hgs
parents: 26
diff changeset
    50
		TRACE_FLAGS_DEFAULT,
hgs
parents: 26
diff changeset
    51
		(EAPL("EapMessageBuffer::~EapMessageBuffer(): this=0x%08x, iData=0x%08x\n"),
hgs
parents: 26
diff changeset
    52
		this,
hgs
parents: 26
diff changeset
    53
		iData));
hgs
parents: 26
diff changeset
    54
hgs
parents: 26
diff changeset
    55
	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageBuffer::~EapMessageBuffer()");
hgs
parents: 26
diff changeset
    56
26
hgs
parents:
diff changeset
    57
	iRequestType = EEapNone;
hgs
parents:
diff changeset
    58
	delete iData;
hgs
parents:
diff changeset
    59
	iData = 0;
hgs
parents:
diff changeset
    60
}
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
EAP_FUNC_EXPORT TInt EapMessageBuffer::CopyData(TEapRequests message, const void * const data, const TUint length)
hgs
parents:
diff changeset
    65
{
hgs
parents:
diff changeset
    66
	EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
    67
		iTools,
hgs
parents:
diff changeset
    68
		TRACE_FLAGS_DEFAULT,
34
hgs
parents: 26
diff changeset
    69
		(EAPL("EapMessageBuffer::CopyData(): this=0x%08x, iData=0x%08x, message=%d, data=0x%08x, length=%d\n"),
hgs
parents: 26
diff changeset
    70
		this,
hgs
parents: 26
diff changeset
    71
		iData,
26
hgs
parents:
diff changeset
    72
		message,
hgs
parents:
diff changeset
    73
		data,
hgs
parents:
diff changeset
    74
		length));
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageBuffer::CopyData()");
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
	iRequestType = message;
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
	TUint buffer_size = length;
hgs
parents:
diff changeset
    81
	if (buffer_size == 0)
hgs
parents:
diff changeset
    82
	{
34
hgs
parents: 26
diff changeset
    83
		// Allocate at least one byte.
hgs
parents: 26
diff changeset
    84
		++buffer_size;
26
hgs
parents:
diff changeset
    85
	}
hgs
parents:
diff changeset
    86
34
hgs
parents: 26
diff changeset
    87
	delete iData;
26
hgs
parents:
diff changeset
    88
	iData = HBufC8::New(buffer_size);
hgs
parents:
diff changeset
    89
34
hgs
parents: 26
diff changeset
    90
	EAP_TRACE_DEBUG(
hgs
parents: 26
diff changeset
    91
		iTools,
hgs
parents: 26
diff changeset
    92
		TRACE_FLAGS_DEFAULT,
hgs
parents: 26
diff changeset
    93
		(EAPL("EapMessageBuffer::CopyData(): this=0x%08x, iData=0x%08x\n"),
hgs
parents: 26
diff changeset
    94
		this,
hgs
parents: 26
diff changeset
    95
		iData));
hgs
parents: 26
diff changeset
    96
26
hgs
parents:
diff changeset
    97
	if (iData == 0)
hgs
parents:
diff changeset
    98
	{
hgs
parents:
diff changeset
    99
		EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   100
			iTools,
hgs
parents:
diff changeset
   101
			TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   102
			(EAPL("ERROR: EapMessageBuffer::CopyData(): iData == 0\n")));
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
		return KErrNoMemory;
hgs
parents:
diff changeset
   105
	}
hgs
parents:
diff changeset
   106
	else
hgs
parents:
diff changeset
   107
	{
hgs
parents:
diff changeset
   108
		if (data != 0
hgs
parents:
diff changeset
   109
		&& length > 0ul)
hgs
parents:
diff changeset
   110
		{
hgs
parents:
diff changeset
   111
			EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   112
				iTools,
hgs
parents:
diff changeset
   113
				TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   114
				(EAPL("EapMessageBuffer::CopyData(): copies data\n")));
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
			TPtr8 aDataPtr = iData->Des();
hgs
parents:
diff changeset
   117
			aDataPtr.Copy(reinterpret_cast<const unsigned char*>(data), length);
hgs
parents:
diff changeset
   118
		}
hgs
parents:
diff changeset
   119
		else
hgs
parents:
diff changeset
   120
		{
hgs
parents:
diff changeset
   121
			EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   122
				iTools,
hgs
parents:
diff changeset
   123
				TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   124
				(EAPL("EapMessageBuffer::CopyData(): set length zero\n")));
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
			iData->Des().SetLength(0ul);
hgs
parents:
diff changeset
   127
		}
hgs
parents:
diff changeset
   128
	}
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
	EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   131
		iTools,
hgs
parents:
diff changeset
   132
		TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   133
		(EAPL("EapMessageBuffer::CopyData(): ends\n")));
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
	return KErrNone;
hgs
parents:
diff changeset
   136
}
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
EAP_FUNC_EXPORT HBufC8 * EapMessageBuffer::GetData() const
hgs
parents:
diff changeset
   141
{
hgs
parents:
diff changeset
   142
	return iData;
hgs
parents:
diff changeset
   143
}
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
EAP_FUNC_EXPORT TEapRequests EapMessageBuffer::GetRequestType() const
hgs
parents:
diff changeset
   148
{
hgs
parents:
diff changeset
   149
	return iRequestType;
hgs
parents:
diff changeset
   150
}
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   153
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   154
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
EAP_FUNC_EXPORT EapMessageQueue::EapMessageQueue(abs_eap_am_tools_c * const tools)
hgs
parents:
diff changeset
   157
	: iTools(tools)
hgs
parents:
diff changeset
   158
{
34
hgs
parents: 26
diff changeset
   159
	EAP_TRACE_DEBUG(
hgs
parents: 26
diff changeset
   160
		iTools,
hgs
parents: 26
diff changeset
   161
		TRACE_FLAGS_DEFAULT,
hgs
parents: 26
diff changeset
   162
		(EAPL("EapMessageQueue::EapMessageQueue(): this=0x%08x, iEapMessageQueue.Count()=%d\n"),
hgs
parents: 26
diff changeset
   163
		this,
hgs
parents: 26
diff changeset
   164
		iEapMessageQueue.Count()));
hgs
parents: 26
diff changeset
   165
hgs
parents: 26
diff changeset
   166
	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::EapMessageQueue()");
hgs
parents: 26
diff changeset
   167
26
hgs
parents:
diff changeset
   168
}
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
EAP_FUNC_EXPORT EapMessageQueue::~EapMessageQueue()
hgs
parents:
diff changeset
   173
{
34
hgs
parents: 26
diff changeset
   174
	EAP_TRACE_DEBUG(
hgs
parents: 26
diff changeset
   175
		iTools,
hgs
parents: 26
diff changeset
   176
		TRACE_FLAGS_DEFAULT,
hgs
parents: 26
diff changeset
   177
		(EAPL("EapMessageQueue::~EapMessageQueue(): this=0x%08x, iEapMessageQueue.Count()=%d\n"),
hgs
parents: 26
diff changeset
   178
		this,
hgs
parents: 26
diff changeset
   179
		iEapMessageQueue.Count()));
hgs
parents: 26
diff changeset
   180
hgs
parents: 26
diff changeset
   181
	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::~EapMessageQueue()");
hgs
parents: 26
diff changeset
   182
hgs
parents: 26
diff changeset
   183
	TInt aCount = iEapMessageQueue.Count();
hgs
parents: 26
diff changeset
   184
hgs
parents: 26
diff changeset
   185
	while (aCount > 0)
hgs
parents: 26
diff changeset
   186
	{
hgs
parents: 26
diff changeset
   187
		EAP_TRACE_DEBUG(
hgs
parents: 26
diff changeset
   188
			iTools,
hgs
parents: 26
diff changeset
   189
			TRACE_FLAGS_DEFAULT,
hgs
parents: 26
diff changeset
   190
			(EAPL("EapMessageQueue::~EapMessageQueue(): Removes iEapMessageQueue[0].iRequestType=%d=%s, iEapMessageQueue.Count()=%d\n"),
hgs
parents: 26
diff changeset
   191
			iEapMessageQueue[0]->GetRequestType(),
hgs
parents: 26
diff changeset
   192
			EapServerStrings::GetEapRequestsString(iEapMessageQueue[0]->GetRequestType()),
hgs
parents: 26
diff changeset
   193
			iEapMessageQueue.Count()));
hgs
parents: 26
diff changeset
   194
hgs
parents: 26
diff changeset
   195
		delete iEapMessageQueue[0];
hgs
parents: 26
diff changeset
   196
		iEapMessageQueue.Remove(0);
hgs
parents: 26
diff changeset
   197
hgs
parents: 26
diff changeset
   198
		aCount = iEapMessageQueue.Count();
hgs
parents: 26
diff changeset
   199
	}
hgs
parents: 26
diff changeset
   200
26
hgs
parents:
diff changeset
   201
	iEapMessageQueue.Close();
hgs
parents:
diff changeset
   202
}
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   205
hgs
parents:
diff changeset
   206
EAP_FUNC_EXPORT TInt EapMessageQueue::AddMessage(TEapRequests message, const void * const data, const TUint length)
hgs
parents:
diff changeset
   207
{
hgs
parents:
diff changeset
   208
	EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   209
		iTools,
hgs
parents:
diff changeset
   210
		TRACE_FLAGS_DEFAULT,
49
hgs
parents: 34
diff changeset
   211
		(EAPL("EapMessageQueue::AddMessage(): this=0x%08x, message=%d=%s, data=0x%08x, length=%d, iEapMessageQueue.Count()=%d\n"),
34
hgs
parents: 26
diff changeset
   212
		this,
26
hgs
parents:
diff changeset
   213
		message,
49
hgs
parents: 34
diff changeset
   214
		EapServerStrings::GetEapRequestsString(message),
26
hgs
parents:
diff changeset
   215
		data,
hgs
parents:
diff changeset
   216
		length,
hgs
parents:
diff changeset
   217
		iEapMessageQueue.Count()));
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::AddMessage()");
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
	EapMessageBuffer * const buffer = new EapMessageBuffer(iTools);
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
	if (buffer == 0)
hgs
parents:
diff changeset
   224
	{
hgs
parents:
diff changeset
   225
		EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   226
			iTools,
hgs
parents:
diff changeset
   227
			TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   228
			(EAPL("ERROR: EapMessageQueue::AddMessage(): buffer == 0\n")));
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
		return KErrNoMemory;
hgs
parents:
diff changeset
   231
	}
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
	TInt error = buffer->CopyData(message, data, length);
hgs
parents:
diff changeset
   234
	if (error != KErrNone)
hgs
parents:
diff changeset
   235
	{
hgs
parents:
diff changeset
   236
		EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   237
			iTools,
hgs
parents:
diff changeset
   238
			TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   239
			(EAPL("ERROR: EapMessageQueue::AddMessage(): buffer->CopyData() failed = %d\n"),
hgs
parents:
diff changeset
   240
			error));
hgs
parents:
diff changeset
   241
hgs
parents:
diff changeset
   242
		delete buffer;
hgs
parents:
diff changeset
   243
hgs
parents:
diff changeset
   244
		return error;
hgs
parents:
diff changeset
   245
	}
hgs
parents:
diff changeset
   246
hgs
parents:
diff changeset
   247
	error = iEapMessageQueue.Append(buffer);
hgs
parents:
diff changeset
   248
	if (error != KErrNone)
hgs
parents:
diff changeset
   249
	{
hgs
parents:
diff changeset
   250
		EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   251
			iTools,
hgs
parents:
diff changeset
   252
			TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   253
			(EAPL("ERROR: EapMessageQueue::AddMessage(): iEapMessageQueue.Append() failed = %d\n"),
hgs
parents:
diff changeset
   254
			error));
hgs
parents:
diff changeset
   255
hgs
parents:
diff changeset
   256
		delete buffer;
hgs
parents:
diff changeset
   257
	}
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
	return error;
hgs
parents:
diff changeset
   260
}
hgs
parents:
diff changeset
   261
hgs
parents:
diff changeset
   262
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   263
hgs
parents:
diff changeset
   264
EAP_FUNC_EXPORT EapMessageBuffer * EapMessageQueue::GetFirstMessage()
hgs
parents:
diff changeset
   265
{
hgs
parents:
diff changeset
   266
	EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   267
		iTools,
hgs
parents:
diff changeset
   268
		TRACE_FLAGS_DEFAULT,
34
hgs
parents: 26
diff changeset
   269
		(EAPL("EapMessageQueue::GetFirstMessage(): this=0x%08x\n"),
hgs
parents: 26
diff changeset
   270
		this));
26
hgs
parents:
diff changeset
   271
hgs
parents:
diff changeset
   272
	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::GetFirstMessage()");
hgs
parents:
diff changeset
   273
hgs
parents:
diff changeset
   274
	TInt aCount = iEapMessageQueue.Count();
hgs
parents:
diff changeset
   275
	if (aCount > 0)
hgs
parents:
diff changeset
   276
	{
hgs
parents:
diff changeset
   277
		EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   278
			iTools,
hgs
parents:
diff changeset
   279
			TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   280
			(EAPL("EapMessageQueue::GetFirstMessage(): iEapMessageQueue[0].iRequestType=%d=%s, iEapMessageQueue.Count()=%d\n"),
hgs
parents:
diff changeset
   281
			iEapMessageQueue[0]->GetRequestType(),
hgs
parents:
diff changeset
   282
			EapServerStrings::GetEapRequestsString(iEapMessageQueue[0]->GetRequestType()),
hgs
parents:
diff changeset
   283
			iEapMessageQueue.Count()));
hgs
parents:
diff changeset
   284
hgs
parents:
diff changeset
   285
		return iEapMessageQueue[0];
hgs
parents:
diff changeset
   286
	}
hgs
parents:
diff changeset
   287
	else
hgs
parents:
diff changeset
   288
	{
hgs
parents:
diff changeset
   289
		EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   290
			iTools,
hgs
parents:
diff changeset
   291
			TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   292
			(EAPL("EapMessageQueue::GetFirstMessage(): Empty array\n")));
hgs
parents:
diff changeset
   293
		return 0;
hgs
parents:
diff changeset
   294
	}
hgs
parents:
diff changeset
   295
}
hgs
parents:
diff changeset
   296
hgs
parents:
diff changeset
   297
//----------------------------------------------------------------------------
hgs
parents:
diff changeset
   298
hgs
parents:
diff changeset
   299
EAP_FUNC_EXPORT TInt EapMessageQueue::DeleteFirstMessage()
hgs
parents:
diff changeset
   300
{
hgs
parents:
diff changeset
   301
	EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   302
		iTools,
hgs
parents:
diff changeset
   303
		TRACE_FLAGS_DEFAULT,
34
hgs
parents: 26
diff changeset
   304
		(EAPL("EapMessageQueue::DeleteFirstMessage(): this=0x%08x\n"),
hgs
parents: 26
diff changeset
   305
		this));
26
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::DeleteFirstMessage()");
hgs
parents:
diff changeset
   308
hgs
parents:
diff changeset
   309
	TInt aCount = iEapMessageQueue.Count();
hgs
parents:
diff changeset
   310
	if (aCount > 0)
hgs
parents:
diff changeset
   311
	{
hgs
parents:
diff changeset
   312
		EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   313
			iTools,
hgs
parents:
diff changeset
   314
			TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   315
			(EAPL("EapMessageQueue::DeleteFirstMessage(): iEapMessageQueue[0].iRequestType=%d=%s, iEapMessageQueue.Count()=%d\n"),
hgs
parents:
diff changeset
   316
			iEapMessageQueue[0]->GetRequestType(),
hgs
parents:
diff changeset
   317
			EapServerStrings::GetEapRequestsString(iEapMessageQueue[0]->GetRequestType()),
hgs
parents:
diff changeset
   318
			iEapMessageQueue.Count()));
hgs
parents:
diff changeset
   319
hgs
parents:
diff changeset
   320
		delete iEapMessageQueue[0];
hgs
parents:
diff changeset
   321
		iEapMessageQueue.Remove(0);
hgs
parents:
diff changeset
   322
	}
hgs
parents:
diff changeset
   323
	else
hgs
parents:
diff changeset
   324
	{
hgs
parents:
diff changeset
   325
		EAP_TRACE_DEBUG(
hgs
parents:
diff changeset
   326
			iTools,
hgs
parents:
diff changeset
   327
			TRACE_FLAGS_DEFAULT,
hgs
parents:
diff changeset
   328
			(EAPL("EapMessageQueue::DeleteFirstMessage(): Empty array\n")));
hgs
parents:
diff changeset
   329
	}
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
	return KErrNone;
hgs
parents:
diff changeset
   332
}
hgs
parents:
diff changeset
   333
hgs
parents:
diff changeset
   334
//----------------------------------------------------------------------------
49
hgs
parents: 34
diff changeset
   335
hgs
parents: 34
diff changeset
   336
EAP_FUNC_EXPORT TInt EapMessageQueue::DeleteFirstMessage(const EapMessageBuffer * const verify_message)
hgs
parents: 34
diff changeset
   337
{
hgs
parents: 34
diff changeset
   338
	EAP_TRACE_DEBUG(
hgs
parents: 34
diff changeset
   339
		iTools,
hgs
parents: 34
diff changeset
   340
		TRACE_FLAGS_DEFAULT,
hgs
parents: 34
diff changeset
   341
		(EAPL("EapMessageQueue::DeleteFirstMessage(0x%08x): this=0x%08x\n"),
hgs
parents: 34
diff changeset
   342
		verify_message,
hgs
parents: 34
diff changeset
   343
		this));
hgs
parents: 34
diff changeset
   344
hgs
parents: 34
diff changeset
   345
	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::DeleteFirstMessage(verify_message)");
hgs
parents: 34
diff changeset
   346
hgs
parents: 34
diff changeset
   347
	TInt aCount = iEapMessageQueue.Count();
hgs
parents: 34
diff changeset
   348
	if (aCount > 0)
hgs
parents: 34
diff changeset
   349
	{
hgs
parents: 34
diff changeset
   350
		EAP_TRACE_DEBUG(
hgs
parents: 34
diff changeset
   351
			iTools,
hgs
parents: 34
diff changeset
   352
			TRACE_FLAGS_DEFAULT,
hgs
parents: 34
diff changeset
   353
			(EAPL("EapMessageQueue::DeleteFirstMessage(): iEapMessageQueue[0].iRequestType=%d=%s, iEapMessageQueue.Count()=%d, iEapMessageQueue[0]=0x%08x, verify_message=0x%08x\n"),
hgs
parents: 34
diff changeset
   354
			iEapMessageQueue[0]->GetRequestType(),
hgs
parents: 34
diff changeset
   355
			EapServerStrings::GetEapRequestsString(iEapMessageQueue[0]->GetRequestType()),
hgs
parents: 34
diff changeset
   356
			iEapMessageQueue.Count(),
hgs
parents: 34
diff changeset
   357
			iEapMessageQueue[0],
hgs
parents: 34
diff changeset
   358
			verify_message));
hgs
parents: 34
diff changeset
   359
hgs
parents: 34
diff changeset
   360
		if (iEapMessageQueue[0] == verify_message)
hgs
parents: 34
diff changeset
   361
		{
hgs
parents: 34
diff changeset
   362
			delete iEapMessageQueue[0];
hgs
parents: 34
diff changeset
   363
			iEapMessageQueue.Remove(0);
hgs
parents: 34
diff changeset
   364
		}
hgs
parents: 34
diff changeset
   365
		else
hgs
parents: 34
diff changeset
   366
		{
hgs
parents: 34
diff changeset
   367
			EAP_TRACE_DEBUG(
hgs
parents: 34
diff changeset
   368
				iTools,
hgs
parents: 34
diff changeset
   369
				TRACE_FLAGS_DEFAULT,
hgs
parents: 34
diff changeset
   370
				(EAPL("WARNING: EapMessageQueue::DeleteFirstMessage(0x%08x): this=0x%08x, does not delete other message\n"),
hgs
parents: 34
diff changeset
   371
				verify_message,
hgs
parents: 34
diff changeset
   372
				this));
hgs
parents: 34
diff changeset
   373
		}
hgs
parents: 34
diff changeset
   374
	}
hgs
parents: 34
diff changeset
   375
	else
hgs
parents: 34
diff changeset
   376
	{
hgs
parents: 34
diff changeset
   377
		EAP_TRACE_DEBUG(
hgs
parents: 34
diff changeset
   378
			iTools,
hgs
parents: 34
diff changeset
   379
			TRACE_FLAGS_DEFAULT,
hgs
parents: 34
diff changeset
   380
			(EAPL("EapMessageQueue::DeleteFirstMessage(): Empty array\n")));
hgs
parents: 34
diff changeset
   381
	}
hgs
parents: 34
diff changeset
   382
hgs
parents: 34
diff changeset
   383
	return KErrNone;
hgs
parents: 34
diff changeset
   384
}
hgs
parents: 34
diff changeset
   385
hgs
parents: 34
diff changeset
   386
//----------------------------------------------------------------------------
26
hgs
parents:
diff changeset
   387
// end
hgs
parents:
diff changeset
   388