networkcontrol/ipcprshim/inc/shimdatatransfer.h
author hgs
Tue, 29 Jun 2010 19:20:22 +0530
changeset 37 052078dda061
permissions -rw-r--r--
201025_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37
052078dda061 201025_01
hgs
parents:
diff changeset
     1
/**
052078dda061 201025_01
hgs
parents:
diff changeset
     2
* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
052078dda061 201025_01
hgs
parents:
diff changeset
     3
* All rights reserved.
052078dda061 201025_01
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
052078dda061 201025_01
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
052078dda061 201025_01
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
052078dda061 201025_01
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
052078dda061 201025_01
hgs
parents:
diff changeset
     8
*
052078dda061 201025_01
hgs
parents:
diff changeset
     9
* Initial Contributors:
052078dda061 201025_01
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
052078dda061 201025_01
hgs
parents:
diff changeset
    11
*
052078dda061 201025_01
hgs
parents:
diff changeset
    12
* Contributors:
052078dda061 201025_01
hgs
parents:
diff changeset
    13
*
052078dda061 201025_01
hgs
parents:
diff changeset
    14
* Description:
052078dda061 201025_01
hgs
parents:
diff changeset
    15
*
052078dda061 201025_01
hgs
parents:
diff changeset
    16
*/
052078dda061 201025_01
hgs
parents:
diff changeset
    17
052078dda061 201025_01
hgs
parents:
diff changeset
    18
052078dda061 201025_01
hgs
parents:
diff changeset
    19
052078dda061 201025_01
hgs
parents:
diff changeset
    20
/**
052078dda061 201025_01
hgs
parents:
diff changeset
    21
 @file SHIMDATATRANSFER.H
052078dda061 201025_01
hgs
parents:
diff changeset
    22
 @internalComponent
052078dda061 201025_01
hgs
parents:
diff changeset
    23
*/
052078dda061 201025_01
hgs
parents:
diff changeset
    24
052078dda061 201025_01
hgs
parents:
diff changeset
    25
#if !defined(__SHIMDATATRANSFER_H__)
052078dda061 201025_01
hgs
parents:
diff changeset
    26
#define __SHIMDATATRANSFER_H__
052078dda061 201025_01
hgs
parents:
diff changeset
    27
052078dda061 201025_01
hgs
parents:
diff changeset
    28
#include <e32def.h>
052078dda061 201025_01
hgs
parents:
diff changeset
    29
#include <e32base.h>
052078dda061 201025_01
hgs
parents:
diff changeset
    30
#include "ss_datatransfer.h"
052078dda061 201025_01
hgs
parents:
diff changeset
    31
052078dda061 201025_01
hgs
parents:
diff changeset
    32
class CConnectionProvdBase;
052078dda061 201025_01
hgs
parents:
diff changeset
    33
class CNifManSubConnectionShim;
052078dda061 201025_01
hgs
parents:
diff changeset
    34
class CConnDataTransferShim : public CConnDataTransfer
052078dda061 201025_01
hgs
parents:
diff changeset
    35
	{
052078dda061 201025_01
hgs
parents:
diff changeset
    36
public:
052078dda061 201025_01
hgs
parents:
diff changeset
    37
	CConnDataTransferShim(CNifManSubConnectionShim& aSubConnectionProviderShim);
052078dda061 201025_01
hgs
parents:
diff changeset
    38
	~CConnDataTransferShim();
052078dda061 201025_01
hgs
parents:
diff changeset
    39
	
052078dda061 201025_01
hgs
parents:
diff changeset
    40
public:
052078dda061 201025_01
hgs
parents:
diff changeset
    41
	//up-calls from the CNifManSubConnectionShim
052078dda061 201025_01
hgs
parents:
diff changeset
    42
	TInt NotifyDataTransferred(TUint aUplinkVolume, TUint aDownlinkVolume);
052078dda061 201025_01
hgs
parents:
diff changeset
    43
	TInt NotifyDataSent(TUint aUplinkVolume);
052078dda061 201025_01
hgs
parents:
diff changeset
    44
	TInt NotifyDataReceived(TUint aDownlinkVolume);
052078dda061 201025_01
hgs
parents:
diff changeset
    45
052078dda061 201025_01
hgs
parents:
diff changeset
    46
protected:
052078dda061 201025_01
hgs
parents:
diff changeset
    47
	//down-calls clients requests
052078dda061 201025_01
hgs
parents:
diff changeset
    48
	virtual TInt DoDataTransferred(TUint& aUplinkVolume, TUint& aDownlinkVolume);
052078dda061 201025_01
hgs
parents:
diff changeset
    49
	virtual TInt DoDataTransferredCancel();
052078dda061 201025_01
hgs
parents:
diff changeset
    50
	virtual TInt DoDataSentNotificationRequest(TUint aRequestedGranularity, TUint aRequestedNotificationVolume);
052078dda061 201025_01
hgs
parents:
diff changeset
    51
	virtual TInt DoDataSentNotificationCancel();
052078dda061 201025_01
hgs
parents:
diff changeset
    52
	virtual TInt DoDataReceivedNotificationRequest(TUint aRequestedGranularity, TUint aRequestedNotificationVolume);
052078dda061 201025_01
hgs
parents:
diff changeset
    53
	virtual TInt DoDataReceivedNotificationCancel();
052078dda061 201025_01
hgs
parents:
diff changeset
    54
052078dda061 201025_01
hgs
parents:
diff changeset
    55
protected:
052078dda061 201025_01
hgs
parents:
diff changeset
    56
	TInt CalculateNewUplinkGranularity(TUint aRequestedGranularity);
052078dda061 201025_01
hgs
parents:
diff changeset
    57
	TInt CalculateNewDownlinkGranularity(TUint aRequestedGranularity);
052078dda061 201025_01
hgs
parents:
diff changeset
    58
052078dda061 201025_01
hgs
parents:
diff changeset
    59
	TInt SetNextUplinkGranularity();
052078dda061 201025_01
hgs
parents:
diff changeset
    60
	TInt SetNextDownlinkGranularity();
052078dda061 201025_01
hgs
parents:
diff changeset
    61
052078dda061 201025_01
hgs
parents:
diff changeset
    62
	TInt SetUplinkGranularity(TUint aRequestedGranularity);
052078dda061 201025_01
hgs
parents:
diff changeset
    63
	TInt SetDownlinkGranularity(TUint aRequestedGranularity);
052078dda061 201025_01
hgs
parents:
diff changeset
    64
052078dda061 201025_01
hgs
parents:
diff changeset
    65
protected:
052078dda061 201025_01
hgs
parents:
diff changeset
    66
	static TInt CalculateNewGranularity(TInt aRequestedGranularity, TUint aCurrentGranularity, RArray<TUint>& aGranularities, TUint& aNewGranularity);
052078dda061 201025_01
hgs
parents:
diff changeset
    67
052078dda061 201025_01
hgs
parents:
diff changeset
    68
private:
052078dda061 201025_01
hgs
parents:
diff changeset
    69
	CNifManSubConnectionShim& iSubConnectionProviderShim;
052078dda061 201025_01
hgs
parents:
diff changeset
    70
	
052078dda061 201025_01
hgs
parents:
diff changeset
    71
	RArray<TUint> iUplinkGranularities;		// ordered lists of deltas for the granularities
052078dda061 201025_01
hgs
parents:
diff changeset
    72
	RArray<TUint> iDownlinkGranularities;
052078dda061 201025_01
hgs
parents:
diff changeset
    73
052078dda061 201025_01
hgs
parents:
diff changeset
    74
	TUint iCurrentUplinkGranularity;		// the aggregate notification granularity calculated from all the CConnection requests
052078dda061 201025_01
hgs
parents:
diff changeset
    75
	TUint iCurrentDownlinkGranularity;
052078dda061 201025_01
hgs
parents:
diff changeset
    76
	};
052078dda061 201025_01
hgs
parents:
diff changeset
    77
	
052078dda061 201025_01
hgs
parents:
diff changeset
    78
#endif	// __SHIMDATATRANSFER_H__