| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Wed, 13 Oct 2010 16:17:27 +0300 | |
| branch | RCL_3 | 
| changeset 75 | c1029e558ef5 | 
| parent 0 | af10295192d8 | 
| permissions | -rw-r--r-- | 
| 0 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 1 | // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 2 | // All rights reserved. | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 3 | // This component and the accompanying materials are made available | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 4 | // under the terms of "Eclipse Public License v1.0" | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 5 | // which accompanies this distribution, and is available | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 6 | // at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 7 | // | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 8 | // Initial Contributors: | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 9 | // Nokia Corporation - initial contribution. | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 10 | // | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 11 | // Contributors: | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 12 | // | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 13 | // Description: | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 14 | // DHCP IP6 Message sender header file | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 15 | // | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 16 | // | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 17 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 18 | /** | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 19 | @file DHCPIP6MsgSender.h | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 20 | */ | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 21 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 22 | #ifndef DHCPIP6MSGSENDER_H | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 23 | #define DHCPIP6MSGSENDER_H | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 24 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 25 | #include "MsgSender.h" | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 26 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 27 | const TInt KIP6RndMin = -KMicrosecondsInSecs / 1000; | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 28 | const TInt KIP6RndMax = KMicrosecondsInSecs / 1000; | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 29 | const TInt KIP6MaxSecs = 0xFF; | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 30 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 31 | class CDHCPIP6MessageSender : public CMessageSender | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 32 | 	{
 | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 33 | public: | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 34 | CDHCPIP6MessageSender( MMSListener* aMMSListener, RSocket& aSocket, TTime *aTaskStart, const TUint aFamily); | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 35 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 36 | void SetListener( MMSListener* aMMSListener ); | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 37 | MMSListener* EventListener() const; | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 38 | void SetMaxRetryTimeout( TInt aSeconds ); | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 39 | void SetMaxRetryCount( TInt aCount ); | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 40 | void SetMaxRetryDuration( TInt aSeconds ); | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 41 | void SetInitialRetryTimeout( TInt aSeconds ); | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 42 | void SetFirstSendDelay( TInt aSeconds ); | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 43 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 44 | protected: | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 45 | virtual TBool SendingContinues() const; | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 46 | virtual TBool CalculateDelay(); | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 47 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 48 | protected: | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 49 | TDhcpRnd iXid; | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 50 | //the following values are stored in microsecods | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 51 | TInt iInitialRetryTimeout; //initial timeout between two subsequent retransmission | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 52 | TInt iMaxRetryTimeout; //max timeout between two subsequent retransmission | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 53 | TInt iMaxRetryCount; //upper limit of the number of times to retransmit the message | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 54 | TInt iMaxRetryDuration; //upper limit of the time to retransmit the message | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 55 | //if iMaxRetryDuration == MAX_INT than the retransmission ends | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 56 | //when RT > MRT || RC > MRC | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 57 | TInt iFirstSendDelay; | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 58 | }; | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 59 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 60 | inline CDHCPIP6MessageSender::CDHCPIP6MessageSender( MMSListener* aMMSListener, RSocket& aSocket, TTime *aTaskStartedAtCopy, const TUint aFamily) : | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 61 | CMessageSender( aMMSListener, aSocket, aTaskStartedAtCopy, aFamily ), | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 62 | iMaxRetryTimeout( static_cast<TInt>(KWaitForResponseTime) ), | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 63 | iMaxRetryCount( INT_MAX ), | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 64 | iMaxRetryDuration( INT_MAX ) | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 65 |       {
 | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 66 | } | 
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 67 | |
| 
af10295192d8
Revision: 201004
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 68 | #endif |