|
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 // @file imsextn.h |
|
15 // Header file for IMS API |
|
16 // @internalTechnology |
|
17 // @prototype |
|
18 // |
|
19 |
|
20 #ifndef __IMSEXTN_H__ |
|
21 #define __IMSEXTN_H__ |
|
22 |
|
23 #include <e32std.h> |
|
24 #include <in_sock.h> |
|
25 #include <es_mbuf.h> |
|
26 #include <networking/qos_extension.h> |
|
27 |
|
28 /** |
|
29 This class contain the IMS Signalling Indicator flag for 3GPP R5 dedicated |
|
30 signalling PDP contexts |
|
31 |
|
32 Connection level APIs, such as RSubConnection, shall be extended to support |
|
33 dedicated PDP context for special charging and enhanced QoS. |
|
34 |
|
35 @internalTechnology |
|
36 @prototype |
|
37 */ |
|
38 class TImsParameter |
|
39 { |
|
40 public: |
|
41 /** |
|
42 Constructor |
|
43 */ |
|
44 IMPORT_C explicit TImsParameter(); |
|
45 |
|
46 /** |
|
47 Gets the IMS Signalling Indicator flag |
|
48 |
|
49 @return IMS Signalling Indicator flag |
|
50 */ |
|
51 IMPORT_C TBool GetIMSSigallingIndicator() const; |
|
52 |
|
53 /** |
|
54 Sets the IMS Signalling Indicator flag |
|
55 |
|
56 @param aIMSSignallingIndicator Value to which to set the IMS Signalling Indicator flag |
|
57 */ |
|
58 IMPORT_C void SetIMSSigallingIndicator(const TBool aIMSSignallingIndicator); |
|
59 |
|
60 protected: |
|
61 TBool iIMSSignallingIndicator; // IMS Signalling Indicator flag |
|
62 }; |
|
63 |
|
64 /** |
|
65 This is the IMS policy extension. The IMS policy can be extended by adding the |
|
66 CSubConIMSExtensionParamSet object at the client side |
|
67 |
|
68 @internalTechnology |
|
69 @prototype |
|
70 */ |
|
71 class CImsPolicy : public CExtensionBase |
|
72 { |
|
73 |
|
74 public: |
|
75 /** |
|
76 Two phase constructor. Creates a CImsPolicy object. |
|
77 |
|
78 @return A pointer to CImsPolicy object. |
|
79 @exception Leaves if no memory is available. |
|
80 */ |
|
81 IMPORT_C static CImsPolicy* NewL(); |
|
82 |
|
83 /** |
|
84 Destructor. |
|
85 */ |
|
86 IMPORT_C ~CImsPolicy(); |
|
87 |
|
88 /** |
|
89 Returns IMS policy extension in a descriptor. This is used by ipscpr. |
|
90 |
|
91 @return Descriptor that contains ims policy. |
|
92 */ |
|
93 IMPORT_C TDesC8& Data(); |
|
94 |
|
95 /** |
|
96 Parses a IMS policy extension given in a descriptor. This is used by ipscpr. |
|
97 |
|
98 @return KErrNone if aData contains a valid IMS policy extension, otherwise KErrGeneral. |
|
99 */ |
|
100 IMPORT_C TInt ParseMessage(const TDesC8& aData); |
|
101 |
|
102 /** |
|
103 Creates a CImsPolicy object. This is used by ipscpr. |
|
104 |
|
105 @return A pointer to CImsPolicy object. |
|
106 @exception Leaves if no memory is available. |
|
107 */ |
|
108 IMPORT_C CExtensionBase* CreateL(); |
|
109 |
|
110 /** |
|
111 Copies the parameters from aExtension object to this object. aExtension must be a |
|
112 CImsPolicy object. If some other extension is given as a parameter, KErrArgument is returned. |
|
113 |
|
114 @param aExtension A CImsPolicy object that is copied into this object. |
|
115 @return KErrNone, aExtension is a CImsPolicy object, otherwise KErrArgument. |
|
116 */ |
|
117 IMPORT_C TInt Copy(const CExtensionBase& aExtension); |
|
118 |
|
119 /** |
|
120 Sets the IMS QoS parameter set. |
|
121 |
|
122 @param aIms contains the Ims QoS parameter. |
|
123 */ |
|
124 IMPORT_C void SetImsParameter(const TImsParameter& aIms); |
|
125 |
|
126 /** |
|
127 Gets the IMS QoS parameter set. |
|
128 |
|
129 @param aIms IMS QoS parameter set will be copied to aIms. |
|
130 */ |
|
131 IMPORT_C void GetImsParameter(TImsParameter& aIms) const; |
|
132 |
|
133 protected: |
|
134 CImsPolicy(); |
|
135 void ConstructL(); |
|
136 |
|
137 private: |
|
138 TImsParameter iIms; // IMS QoS Extn parameter set |
|
139 }; |
|
140 |
|
141 #endif // __IMSEXTN_H__ |