baseconnectionproviders/refscpr/inc/ReferenceSCPR_subconparams.h
author hgs
Mon, 06 Sep 2010 13:49:23 +0100
changeset 72 ae47d0499bee
parent 50 afebdb533a85
permissions -rw-r--r--
201033_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50
afebdb533a85 201025_01
hgs
parents:
diff changeset
     1
// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
afebdb533a85 201025_01
hgs
parents:
diff changeset
     2
// All rights reserved.
afebdb533a85 201025_01
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
afebdb533a85 201025_01
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
afebdb533a85 201025_01
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
afebdb533a85 201025_01
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
afebdb533a85 201025_01
hgs
parents:
diff changeset
     7
//
afebdb533a85 201025_01
hgs
parents:
diff changeset
     8
// Initial Contributors:
afebdb533a85 201025_01
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    10
//
afebdb533a85 201025_01
hgs
parents:
diff changeset
    11
// Contributors:
afebdb533a85 201025_01
hgs
parents:
diff changeset
    12
//
afebdb533a85 201025_01
hgs
parents:
diff changeset
    13
// Description:
afebdb533a85 201025_01
hgs
parents:
diff changeset
    14
// Reference_subconparams.h
afebdb533a85 201025_01
hgs
parents:
diff changeset
    15
// Header file for the Reference (example) SubConnection Parameter Extension Set.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    16
// 
afebdb533a85 201025_01
hgs
parents:
diff changeset
    17
//
afebdb533a85 201025_01
hgs
parents:
diff changeset
    18
afebdb533a85 201025_01
hgs
parents:
diff changeset
    19
/**
afebdb533a85 201025_01
hgs
parents:
diff changeset
    20
 @file
afebdb533a85 201025_01
hgs
parents:
diff changeset
    21
 @internalComponent
afebdb533a85 201025_01
hgs
parents:
diff changeset
    22
*/
afebdb533a85 201025_01
hgs
parents:
diff changeset
    23
afebdb533a85 201025_01
hgs
parents:
diff changeset
    24
#ifndef __REFERENCE_SUBCONPARAMS_H__
afebdb533a85 201025_01
hgs
parents:
diff changeset
    25
#define __REFERENCE_SUBCONPARAMS_H__
afebdb533a85 201025_01
hgs
parents:
diff changeset
    26
afebdb533a85 201025_01
hgs
parents:
diff changeset
    27
#include <es_sock.h>
afebdb533a85 201025_01
hgs
parents:
diff changeset
    28
afebdb533a85 201025_01
hgs
parents:
diff changeset
    29
//The ECOM plugin identifier for this SubConnection parameter extension.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    30
//See the assisting *.rss file.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    31
const TInt KSubConReferenceParamsUid = 0x102738C4;
afebdb533a85 201025_01
hgs
parents:
diff changeset
    32
//The sub-identifier for CSubConReferenceParamSet extension parameter set.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    33
const TInt KSubConReferenceParamsType = 1;
afebdb533a85 201025_01
hgs
parents:
diff changeset
    34
afebdb533a85 201025_01
hgs
parents:
diff changeset
    35
afebdb533a85 201025_01
hgs
parents:
diff changeset
    36
afebdb533a85 201025_01
hgs
parents:
diff changeset
    37
class CSubConReferenceParamSet : public CSubConExtensionParameterSet
afebdb533a85 201025_01
hgs
parents:
diff changeset
    38
/** 
afebdb533a85 201025_01
hgs
parents:
diff changeset
    39
 An example/reference extension set of SubConnection Parameters.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    40
 
afebdb533a85 201025_01
hgs
parents:
diff changeset
    41
 A typical client application wishing to use this extension set would
afebdb533a85 201025_01
hgs
parents:
diff changeset
    42
 look like this:
afebdb533a85 201025_01
hgs
parents:
diff changeset
    43
 ====================================================================
afebdb533a85 201025_01
hgs
parents:
diff changeset
    44
 void foo()
afebdb533a85 201025_01
hgs
parents:
diff changeset
    45
   {
afebdb533a85 201025_01
hgs
parents:
diff changeset
    46
    ...
afebdb533a85 201025_01
hgs
parents:
diff changeset
    47
    //Instantiate a parameter bundle - a generic container for subconnection
afebdb533a85 201025_01
hgs
parents:
diff changeset
    48
    //parameter sets.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    49
	RSubConParameterBundle subconnParamBundle;
afebdb533a85 201025_01
hgs
parents:
diff changeset
    50
	
afebdb533a85 201025_01
hgs
parents:
diff changeset
    51
    //Since the bundle is about to hold heap-objects, must push onto
afebdb533a85 201025_01
hgs
parents:
diff changeset
    52
    //the cleanup stack.	
afebdb533a85 201025_01
hgs
parents:
diff changeset
    53
	CleanupClosePushL(subconnParams);
afebdb533a85 201025_01
hgs
parents:
diff changeset
    54
afebdb533a85 201025_01
hgs
parents:
diff changeset
    55
    //Instantiate a family - a subcontainer within a bundle. The subcontainer
afebdb533a85 201025_01
hgs
parents:
diff changeset
    56
    //should hold QoS subconnection parameter sets.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    57
	CSubConParameterFamily* family = CSubConParameterFamily::NewL(subconnParamBundle, KSubConQoSFamily);
afebdb533a85 201025_01
hgs
parents:
diff changeset
    58
afebdb533a85 201025_01
hgs
parents:
diff changeset
    59
	//Specific parameter sets can be instantiated in either of the three modes (designating their semantics):
afebdb533a85 201025_01
hgs
parents:
diff changeset
    60
	//	enum TParameterSetType
afebdb533a85 201025_01
hgs
parents:
diff changeset
    61
    //   {
afebdb533a85 201025_01
hgs
parents:
diff changeset
    62
    //   ERequested = 0, //parameters requested by the application
afebdb533a85 201025_01
hgs
parents:
diff changeset
    63
    //   EAcceptable = 1,//parameters the application can accept (minimum)
afebdb533a85 201025_01
hgs
parents:
diff changeset
    64
	//	 EGranted = 2    //parameters granted by the network.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    65
    //   }; (see ES_SOCK.H)
afebdb533a85 201025_01
hgs
parents:
diff changeset
    66
    //Consequently the bundle would usually contain ERequested and EAcceptable (or at least ERequested)
afebdb533a85 201025_01
hgs
parents:
diff changeset
    67
    //parameter sets.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    68
    
afebdb533a85 201025_01
hgs
parents:
diff changeset
    69
    //Instantiating the ERequested Reference Extension:
afebdb533a85 201025_01
hgs
parents:
diff changeset
    70
	CSubConReferenceParamSet* subConRefRequestedParSet = CSubConReferenceParamSet::NewL(*family, CSubConParameterFamily::ERequested);
afebdb533a85 201025_01
hgs
parents:
diff changeset
    71
afebdb533a85 201025_01
hgs
parents:
diff changeset
    72
    //Instantiating the EAccepted Reference Extension:
afebdb533a85 201025_01
hgs
parents:
diff changeset
    73
	CSubConExtensionParameterSet* subConRefAcceptedParSet = CSubConReferenceParamSet::NewL(*family, CSubConParameterFamily::EAccepted);
afebdb533a85 201025_01
hgs
parents:
diff changeset
    74
        
afebdb533a85 201025_01
hgs
parents:
diff changeset
    75
    //At this point subconnParamBundle holds 2 instances (ERequested and EAcceptable) of CSubConReferenceParamSet.
afebdb533a85 201025_01
hgs
parents:
diff changeset
    76
    
afebdb533a85 201025_01
hgs
parents:
diff changeset
    77
   }
afebdb533a85 201025_01
hgs
parents:
diff changeset
    78
 ====================================================================
afebdb533a85 201025_01
hgs
parents:
diff changeset
    79
afebdb533a85 201025_01
hgs
parents:
diff changeset
    80
@publishedAll
afebdb533a85 201025_01
hgs
parents:
diff changeset
    81
@released since v9.2 
afebdb533a85 201025_01
hgs
parents:
diff changeset
    82
*/
afebdb533a85 201025_01
hgs
parents:
diff changeset
    83
{
afebdb533a85 201025_01
hgs
parents:
diff changeset
    84
public:
afebdb533a85 201025_01
hgs
parents:
diff changeset
    85
	inline static CSubConReferenceParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
afebdb533a85 201025_01
hgs
parents:
diff changeset
    86
	inline static CSubConReferenceParamSet* NewL();
afebdb533a85 201025_01
hgs
parents:
diff changeset
    87
afebdb533a85 201025_01
hgs
parents:
diff changeset
    88
	inline CSubConReferenceParamSet();
afebdb533a85 201025_01
hgs
parents:
diff changeset
    89
afebdb533a85 201025_01
hgs
parents:
diff changeset
    90
	inline TInt   GetDummyTIntParameter() const;
afebdb533a85 201025_01
hgs
parents:
diff changeset
    91
	inline const TName& GetDummyTNameParameter() const;	
afebdb533a85 201025_01
hgs
parents:
diff changeset
    92
	inline void   SetDummyTIntParameter(TInt aDummyTIntParameter);
afebdb533a85 201025_01
hgs
parents:
diff changeset
    93
	inline void   SetDummyTNameParameter(const TName& iDummyName);	
afebdb533a85 201025_01
hgs
parents:
diff changeset
    94
afebdb533a85 201025_01
hgs
parents:
diff changeset
    95
protected:
afebdb533a85 201025_01
hgs
parents:
diff changeset
    96
afebdb533a85 201025_01
hgs
parents:
diff changeset
    97
	DATA_VTABLE
afebdb533a85 201025_01
hgs
parents:
diff changeset
    98
afebdb533a85 201025_01
hgs
parents:
diff changeset
    99
protected:
afebdb533a85 201025_01
hgs
parents:
diff changeset
   100
	TInt	iDummyTIntParameter;
afebdb533a85 201025_01
hgs
parents:
diff changeset
   101
	TName	iDummyName;
afebdb533a85 201025_01
hgs
parents:
diff changeset
   102
	};
afebdb533a85 201025_01
hgs
parents:
diff changeset
   103
afebdb533a85 201025_01
hgs
parents:
diff changeset
   104
afebdb533a85 201025_01
hgs
parents:
diff changeset
   105
afebdb533a85 201025_01
hgs
parents:
diff changeset
   106
afebdb533a85 201025_01
hgs
parents:
diff changeset
   107
afebdb533a85 201025_01
hgs
parents:
diff changeset
   108
class CReferenceSubConnExtensionParamsFactory : public CBase
afebdb533a85 201025_01
hgs
parents:
diff changeset
   109
/** Factory used to create instances of the Reference SubConnection Parameter Extension Sets.
afebdb533a85 201025_01
hgs
parents:
diff changeset
   110
afebdb533a85 201025_01
hgs
parents:
diff changeset
   111
@internalComponent
afebdb533a85 201025_01
hgs
parents:
diff changeset
   112
@released since v9.2 
afebdb533a85 201025_01
hgs
parents:
diff changeset
   113
*/
afebdb533a85 201025_01
hgs
parents:
diff changeset
   114
	{
afebdb533a85 201025_01
hgs
parents:
diff changeset
   115
public:
afebdb533a85 201025_01
hgs
parents:
diff changeset
   116
	static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
afebdb533a85 201025_01
hgs
parents:
diff changeset
   117
	};
afebdb533a85 201025_01
hgs
parents:
diff changeset
   118
afebdb533a85 201025_01
hgs
parents:
diff changeset
   119
#include <networking/reference_subconparams.inl>
afebdb533a85 201025_01
hgs
parents:
diff changeset
   120
afebdb533a85 201025_01
hgs
parents:
diff changeset
   121
#endif // __REFERENCE_SUBCONPARAMS_H__