eapol/eapol_framework/eapol_symbian/am/common/symbian/EapMessageQueue.cpp
changeset 34 ad1f037f1ac2
parent 26 9abfd4f00d37
child 49 43351a4f2da3
equal deleted inserted replaced
31:372d2d6c5cf9 34:ad1f037f1ac2
     9 * Initial Contributors:
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description:  EAP and WLAN authentication protocols.
    14 * Description:  Message queue for EAP-server and -clients.
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 /*
    18 /*
    19 * %version: 11 %
    19 * %version: 14 %
    20 */
    20 */
    21 
    21 
    22 
    22 
    23 #include "EapMessageQueue.h"
    23 #include "EapMessageQueue.h"
    24 #include "eap_am_tools.h"
    24 #include "eap_am_tools.h"
    30 EAP_FUNC_EXPORT EapMessageBuffer::EapMessageBuffer(abs_eap_am_tools_c * const tools)
    30 EAP_FUNC_EXPORT EapMessageBuffer::EapMessageBuffer(abs_eap_am_tools_c * const tools)
    31 	: iTools(tools)
    31 	: iTools(tools)
    32 	, iRequestType(EEapNone)
    32 	, iRequestType(EEapNone)
    33 	, iData(0)
    33 	, iData(0)
    34 {
    34 {
       
    35 	EAP_TRACE_DEBUG(
       
    36 		iTools,
       
    37 		TRACE_FLAGS_DEFAULT,
       
    38 		(EAPL("EapMessageBuffer::EapMessageBuffer(): this=0x%08x\n"),
       
    39 		this));
       
    40 
       
    41 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageBuffer::EapMessageBuffer()");
    35 }
    42 }
    36 
    43 
    37 //----------------------------------------------------------------------------
    44 //----------------------------------------------------------------------------
    38 
    45 
    39 EAP_FUNC_EXPORT EapMessageBuffer::~EapMessageBuffer()
    46 EAP_FUNC_EXPORT EapMessageBuffer::~EapMessageBuffer()
    40 {
    47 {
       
    48 	EAP_TRACE_DEBUG(
       
    49 		iTools,
       
    50 		TRACE_FLAGS_DEFAULT,
       
    51 		(EAPL("EapMessageBuffer::~EapMessageBuffer(): this=0x%08x, iData=0x%08x\n"),
       
    52 		this,
       
    53 		iData));
       
    54 
       
    55 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageBuffer::~EapMessageBuffer()");
       
    56 
    41 	iRequestType = EEapNone;
    57 	iRequestType = EEapNone;
    42 	delete iData;
    58 	delete iData;
    43 	iData = 0;
    59 	iData = 0;
    44 }
    60 }
    45 
    61 
    48 EAP_FUNC_EXPORT TInt EapMessageBuffer::CopyData(TEapRequests message, const void * const data, const TUint length)
    64 EAP_FUNC_EXPORT TInt EapMessageBuffer::CopyData(TEapRequests message, const void * const data, const TUint length)
    49 {
    65 {
    50 	EAP_TRACE_DEBUG(
    66 	EAP_TRACE_DEBUG(
    51 		iTools,
    67 		iTools,
    52 		TRACE_FLAGS_DEFAULT,
    68 		TRACE_FLAGS_DEFAULT,
    53 		(EAPL("EapMessageBuffer::CopyData(): message=%d, data=0x%08x, length=%d\n"),
    69 		(EAPL("EapMessageBuffer::CopyData(): this=0x%08x, iData=0x%08x, message=%d, data=0x%08x, length=%d\n"),
       
    70 		this,
       
    71 		iData,
    54 		message,
    72 		message,
    55 		data,
    73 		data,
    56 		length));
    74 		length));
    57 
    75 
    58 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageBuffer::CopyData()");
    76 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageBuffer::CopyData()");
    60 	iRequestType = message;
    78 	iRequestType = message;
    61 
    79 
    62 	TUint buffer_size = length;
    80 	TUint buffer_size = length;
    63 	if (buffer_size == 0)
    81 	if (buffer_size == 0)
    64 	{
    82 	{
    65 		buffer_size = 1;
    83 		// Allocate at least one byte.
    66 	}
    84 		++buffer_size;
    67 
    85 	}
       
    86 
       
    87 	delete iData;
    68 	iData = HBufC8::New(buffer_size);
    88 	iData = HBufC8::New(buffer_size);
       
    89 
       
    90 	EAP_TRACE_DEBUG(
       
    91 		iTools,
       
    92 		TRACE_FLAGS_DEFAULT,
       
    93 		(EAPL("EapMessageBuffer::CopyData(): this=0x%08x, iData=0x%08x\n"),
       
    94 		this,
       
    95 		iData));
    69 
    96 
    70 	if (iData == 0)
    97 	if (iData == 0)
    71 	{
    98 	{
    72 		EAP_TRACE_DEBUG(
    99 		EAP_TRACE_DEBUG(
    73 			iTools,
   100 			iTools,
   127 //----------------------------------------------------------------------------
   154 //----------------------------------------------------------------------------
   128 
   155 
   129 EAP_FUNC_EXPORT EapMessageQueue::EapMessageQueue(abs_eap_am_tools_c * const tools)
   156 EAP_FUNC_EXPORT EapMessageQueue::EapMessageQueue(abs_eap_am_tools_c * const tools)
   130 	: iTools(tools)
   157 	: iTools(tools)
   131 {
   158 {
       
   159 	EAP_TRACE_DEBUG(
       
   160 		iTools,
       
   161 		TRACE_FLAGS_DEFAULT,
       
   162 		(EAPL("EapMessageQueue::EapMessageQueue(): this=0x%08x, iEapMessageQueue.Count()=%d\n"),
       
   163 		this,
       
   164 		iEapMessageQueue.Count()));
       
   165 
       
   166 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::EapMessageQueue()");
       
   167 
   132 }
   168 }
   133 
   169 
   134 //----------------------------------------------------------------------------
   170 //----------------------------------------------------------------------------
   135 
   171 
   136 EAP_FUNC_EXPORT EapMessageQueue::~EapMessageQueue()
   172 EAP_FUNC_EXPORT EapMessageQueue::~EapMessageQueue()
   137 {
   173 {
   138     DeleteFirstMessage();
   174 	EAP_TRACE_DEBUG(
       
   175 		iTools,
       
   176 		TRACE_FLAGS_DEFAULT,
       
   177 		(EAPL("EapMessageQueue::~EapMessageQueue(): this=0x%08x, iEapMessageQueue.Count()=%d\n"),
       
   178 		this,
       
   179 		iEapMessageQueue.Count()));
       
   180 
       
   181 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::~EapMessageQueue()");
       
   182 
       
   183 	TInt aCount = iEapMessageQueue.Count();
       
   184 
       
   185 	while (aCount > 0)
       
   186 	{
       
   187 		EAP_TRACE_DEBUG(
       
   188 			iTools,
       
   189 			TRACE_FLAGS_DEFAULT,
       
   190 			(EAPL("EapMessageQueue::~EapMessageQueue(): Removes iEapMessageQueue[0].iRequestType=%d=%s, iEapMessageQueue.Count()=%d\n"),
       
   191 			iEapMessageQueue[0]->GetRequestType(),
       
   192 			EapServerStrings::GetEapRequestsString(iEapMessageQueue[0]->GetRequestType()),
       
   193 			iEapMessageQueue.Count()));
       
   194 
       
   195 		delete iEapMessageQueue[0];
       
   196 		iEapMessageQueue.Remove(0);
       
   197 
       
   198 		aCount = iEapMessageQueue.Count();
       
   199 	}
       
   200 
   139 	iEapMessageQueue.Close();
   201 	iEapMessageQueue.Close();
   140 }
   202 }
   141 
   203 
   142 //----------------------------------------------------------------------------
   204 //----------------------------------------------------------------------------
   143 
   205 
   144 EAP_FUNC_EXPORT TInt EapMessageQueue::AddMessage(TEapRequests message, const void * const data, const TUint length)
   206 EAP_FUNC_EXPORT TInt EapMessageQueue::AddMessage(TEapRequests message, const void * const data, const TUint length)
   145 {
   207 {
   146 	EAP_TRACE_DEBUG(
   208 	EAP_TRACE_DEBUG(
   147 		iTools,
   209 		iTools,
   148 		TRACE_FLAGS_DEFAULT,
   210 		TRACE_FLAGS_DEFAULT,
   149 		(EAPL("EapMessageQueue::AddMessage(): message=%d, data=0x%08x, length=%d, iEapMessageQueue.Count()=%d\n"),
   211 		(EAPL("EapMessageQueue::AddMessage(): this=0x%08x, message=%d, data=0x%08x, length=%d, iEapMessageQueue.Count()=%d\n"),
       
   212 		this,
   150 		message,
   213 		message,
   151 		data,
   214 		data,
   152 		length,
   215 		length,
   153 		iEapMessageQueue.Count()));
   216 		iEapMessageQueue.Count()));
   154 
   217 
   188 			TRACE_FLAGS_DEFAULT,
   251 			TRACE_FLAGS_DEFAULT,
   189 			(EAPL("ERROR: EapMessageQueue::AddMessage(): iEapMessageQueue.Append() failed = %d\n"),
   252 			(EAPL("ERROR: EapMessageQueue::AddMessage(): iEapMessageQueue.Append() failed = %d\n"),
   190 			error));
   253 			error));
   191 
   254 
   192 		delete buffer;
   255 		delete buffer;
   193 
       
   194 		return error;
       
   195 	}
   256 	}
   196 
   257 
   197 	return error;
   258 	return error;
   198 }
   259 }
   199 
   260 
   202 EAP_FUNC_EXPORT EapMessageBuffer * EapMessageQueue::GetFirstMessage()
   263 EAP_FUNC_EXPORT EapMessageBuffer * EapMessageQueue::GetFirstMessage()
   203 {
   264 {
   204 	EAP_TRACE_DEBUG(
   265 	EAP_TRACE_DEBUG(
   205 		iTools,
   266 		iTools,
   206 		TRACE_FLAGS_DEFAULT,
   267 		TRACE_FLAGS_DEFAULT,
   207 		(EAPL("EapMessageQueue::GetFirstMessage()\n")));
   268 		(EAPL("EapMessageQueue::GetFirstMessage(): this=0x%08x\n"),
       
   269 		this));
   208 
   270 
   209 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::GetFirstMessage()");
   271 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::GetFirstMessage()");
   210 
   272 
   211 	TInt aCount = iEapMessageQueue.Count();
   273 	TInt aCount = iEapMessageQueue.Count();
   212 	if (aCount > 0)
   274 	if (aCount > 0)
   236 EAP_FUNC_EXPORT TInt EapMessageQueue::DeleteFirstMessage()
   298 EAP_FUNC_EXPORT TInt EapMessageQueue::DeleteFirstMessage()
   237 {
   299 {
   238 	EAP_TRACE_DEBUG(
   300 	EAP_TRACE_DEBUG(
   239 		iTools,
   301 		iTools,
   240 		TRACE_FLAGS_DEFAULT,
   302 		TRACE_FLAGS_DEFAULT,
   241 		(EAPL("EapMessageQueue::DeleteFirstMessage()\n")));
   303 		(EAPL("EapMessageQueue::DeleteFirstMessage(): this=0x%08x\n"),
       
   304 		this));
   242 
   305 
   243 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::DeleteFirstMessage()");
   306 	EAP_TRACE_RETURN_STRING(iTools, "returns: EapMessageQueue::DeleteFirstMessage()");
   244 
   307 
   245 	TInt aCount = iEapMessageQueue.Count();
   308 	TInt aCount = iEapMessageQueue.Count();
   246 	if (aCount > 0)
   309 	if (aCount > 0)