realtimenetprots/sipfw/ClientResolver/Server/src/CSIPCRResponseQueue.cpp
changeset 0 307788aac0a8
equal deleted inserted replaced
-1:000000000000 0:307788aac0a8
       
     1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Name          : CSIPCRResponseQueue.cpp
       
    15 // Part of       : SIP Client Resolver
       
    16 // Version       : 1.0
       
    17 //
       
    18 
       
    19 
       
    20 
       
    21 // INCLUDES
       
    22 #include "CSIPCRResponseQueue.h"
       
    23 
       
    24 // -----------------------------------------------------------------------------
       
    25 // CSIPCRResponseQueue::CSIPCRResponseQueue
       
    26 // -----------------------------------------------------------------------------
       
    27 //
       
    28 CSIPCRResponseQueue::CSIPCRResponseQueue ()
       
    29 	{
       
    30     iResponseItems.Reset ();
       
    31 	}	
       
    32 
       
    33 // -----------------------------------------------------------------------------
       
    34 // CSIPCRResponseQueue::~CSIPCRResponseQueue
       
    35 // -----------------------------------------------------------------------------
       
    36 //
       
    37 CSIPCRResponseQueue::~CSIPCRResponseQueue ()
       
    38     {
       
    39    	iResponseItems.ResetAndDestroy();
       
    40     }
       
    41 
       
    42 // -----------------------------------------------------------------------------
       
    43 // CSIPCRResponseQueue::IsEmpty
       
    44 // -----------------------------------------------------------------------------
       
    45 //
       
    46 TBool CSIPCRResponseQueue::IsEmpty () const
       
    47     {
       
    48 	return (iResponseItems.Count () == 0); 
       
    49     }
       
    50 
       
    51 // -----------------------------------------------------------------------------
       
    52 // CSIPCRResponseQueue::First
       
    53 // -----------------------------------------------------------------------------
       
    54 //
       
    55 CSIPCRResponseItem& CSIPCRResponseQueue::First ()
       
    56     {
       
    57     __ASSERT_ALWAYS (iResponseItems.Count () > 0, 
       
    58                      User::Panic(KNullDesC, KErrGeneral));
       
    59     return *(iResponseItems[0]);
       
    60     }
       
    61 
       
    62 // -----------------------------------------------------------------------------
       
    63 // CSIPCRResponseQueue::AddLast()
       
    64 // -----------------------------------------------------------------------------
       
    65 //
       
    66 TInt CSIPCRResponseQueue::AddLast  (const CSIPCRResponseItem* aItem)
       
    67     {
       
    68  	return iResponseItems.Append (aItem);
       
    69     }
       
    70 
       
    71 // -----------------------------------------------------------------------------
       
    72 // CSIPCRResponseQueue::RemoveFirst
       
    73 // -----------------------------------------------------------------------------
       
    74 //
       
    75 void CSIPCRResponseQueue::RemoveFirst  ()
       
    76     {
       
    77     if (iResponseItems.Count () > 0) 
       
    78         {
       
    79         CSIPCRResponseItem* item = iResponseItems[0];
       
    80         iResponseItems.Remove (0);
       
    81         delete item;
       
    82         }
       
    83     }
       
    84 
       
    85 // -----------------------------------------------------------------------------
       
    86 // CSIPCRResponseQueue::RemoveByRequestId
       
    87 // -----------------------------------------------------------------------------
       
    88 //
       
    89 void CSIPCRResponseQueue::RemoveByRequestId (TUint32 aRequestId)
       
    90     {
       
    91     for (TInt i=iResponseItems.Count()-1; i >= 0; i--)
       
    92         {
       
    93         CSIPCRResponseItem* item = iResponseItems[i];
       
    94         if (aRequestId == item->RequestId())
       
    95             {
       
    96             iResponseItems.Remove(i);
       
    97             delete item;
       
    98             }
       
    99         }
       
   100     }
       
   101     
       
   102 // -----------------------------------------------------------------------------
       
   103 // CSIPCRResponseQueue::RemoveAll
       
   104 // -----------------------------------------------------------------------------
       
   105 //    
       
   106 void CSIPCRResponseQueue::RemoveAll ()
       
   107     {
       
   108     iResponseItems.ResetAndDestroy();
       
   109     }
       
   110 
       
   111 // End of File