|
1 /* |
|
2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Implementation for managing cached presentity group information. |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #include <ximpobjectcollection.h> |
|
20 #include <presentitygroupinfo.h> |
|
21 #include <ximpidentity.h> |
|
22 #include <ximpdatasubscriptionstate.h> |
|
23 #include <ximpstatus.h> |
|
24 |
|
25 #include "protocolpresencedatahostimp.h" |
|
26 #include "protocolpresentitygroupsdatahostimp.h" |
|
27 |
|
28 #include "presentitygroupmemberinfoimp.h" |
|
29 #include "ximpoperationbase.h" |
|
30 #include "ximprestrictedobjectcollectionimp.h" |
|
31 #include "ximpglobals.h" |
|
32 #include "ximpoperationfactory.h" |
|
33 #include "ximphost.h" |
|
34 #include "presencedatacacheimp.h" |
|
35 #include "presenceoperationdefs.h" |
|
36 #include "ximptrace.h" |
|
37 |
|
38 // --------------------------------------------------------------------------- |
|
39 // CProtocolPresentityGroupsDataHostImp::CProtocolPresentityGroupsDataHostImp() |
|
40 // --------------------------------------------------------------------------- |
|
41 // |
|
42 CProtocolPresentityGroupsDataHostImp::CProtocolPresentityGroupsDataHostImp( MXIMPHost& aHost ) |
|
43 :iHost( aHost ) |
|
44 { |
|
45 } |
|
46 |
|
47 |
|
48 // --------------------------------------------------------------------------- |
|
49 // CProtocolPresentityGroupsDataHostImp::ConstructL() |
|
50 // --------------------------------------------------------------------------- |
|
51 // |
|
52 void CProtocolPresentityGroupsDataHostImp::ConstructL() |
|
53 { |
|
54 } |
|
55 |
|
56 |
|
57 // --------------------------------------------------------------------------- |
|
58 // CProtocolPresentityGroupsDataHostImp::NewL() |
|
59 // --------------------------------------------------------------------------- |
|
60 // |
|
61 EXPORT_C CProtocolPresentityGroupsDataHostImp* CProtocolPresentityGroupsDataHostImp::NewL( MXIMPHost& aHost ) |
|
62 { |
|
63 CProtocolPresentityGroupsDataHostImp* self = new( ELeave ) CProtocolPresentityGroupsDataHostImp( aHost ); |
|
64 CleanupStack::PushL( self ); |
|
65 self->ConstructL(); |
|
66 CleanupStack::Pop( self ); |
|
67 return self; |
|
68 } |
|
69 |
|
70 // --------------------------------------------------------------------------- |
|
71 // Implement supported interface access. |
|
72 // --------------------------------------------------------------------------- |
|
73 // |
|
74 XIMPIMP_IF_BASE_GET_INTERFACE_BEGIN( CProtocolPresentityGroupsDataHostImp, |
|
75 MProtocolPresentityGroupsDataHost ) |
|
76 XIMPIMP_IF_BASE_GET_INTERFACE_END() |
|
77 |
|
78 |
|
79 XIMPIMP_IF_BASE_GET_CONST_INTERFACE_BEGIN( CProtocolPresentityGroupsDataHostImp, |
|
80 MProtocolPresentityGroupsDataHost ) |
|
81 XIMPIMP_IF_BASE_GET_INTERFACE_END() |
|
82 |
|
83 // --------------------------------------------------------------------------- |
|
84 // CProtocolPresentityGroupsDataHostImp::~CProtocolPresentityGroupsDataHostImp() |
|
85 // --------------------------------------------------------------------------- |
|
86 // |
|
87 CProtocolPresentityGroupsDataHostImp::~CProtocolPresentityGroupsDataHostImp() |
|
88 { |
|
89 } |
|
90 |
|
91 // --------------------------------------------------------------------------- |
|
92 // CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupListL |
|
93 // --------------------------------------------------------------------------- |
|
94 // |
|
95 TXIMPRequestId CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupListL( |
|
96 MXIMPObjectCollection* aGroupList ) |
|
97 { |
|
98 TRACE(_L("CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupListL") ); |
|
99 return iHost.AddNewOperationL( NPresenceOps::EPrHandlePresentityGroupList, aGroupList ); |
|
100 } |
|
101 |
|
102 // --------------------------------------------------------------------------- |
|
103 // CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupCreatedL |
|
104 // --------------------------------------------------------------------------- |
|
105 // |
|
106 TXIMPRequestId CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupCreatedL( |
|
107 MPresentityGroupInfo* aGroupInfo ) |
|
108 { |
|
109 TRACE(_L("CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupCreatedL") ); |
|
110 return iHost.AddNewOperationL( NPresenceOps::EPrHandlePresentityGroupCreated, aGroupInfo ); |
|
111 } |
|
112 |
|
113 // --------------------------------------------------------------------------- |
|
114 // CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupDeletedL |
|
115 // --------------------------------------------------------------------------- |
|
116 // |
|
117 TXIMPRequestId CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupDeletedL( |
|
118 MXIMPIdentity* aGroupId ) |
|
119 { |
|
120 TRACE(_L("CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupDeletedL") ); |
|
121 return iHost.AddNewOperationL( NPresenceOps::EPrHandlePresentityGroupDeleted, aGroupId ); |
|
122 } |
|
123 |
|
124 // --------------------------------------------------------------------------- |
|
125 // CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupDisplayNameUpdatedL |
|
126 // --------------------------------------------------------------------------- |
|
127 // |
|
128 TXIMPRequestId CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupDisplayNameUpdatedL( |
|
129 MPresentityGroupInfo* aGroupInfo ) |
|
130 { |
|
131 TRACE(_L("CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupDisplayNameUpdatedL") ); |
|
132 return iHost.AddNewOperationL( NPresenceOps::EPrHandlePresentityGroupDisplayNameUpdated, aGroupInfo ); |
|
133 } |
|
134 |
|
135 // --------------------------------------------------------------------------- |
|
136 // CProtocolPresentityGroupsDataHostImp::PresentityGroupDataSubscriptionState |
|
137 // --------------------------------------------------------------------------- |
|
138 // |
|
139 const MXIMPDataSubscriptionState& |
|
140 CProtocolPresentityGroupsDataHostImp::PresentityGroupListDataSubscriptionState() const |
|
141 { |
|
142 TRACE(_L("CProtocolPresentityGroupsDataHostImp::PresentityGroupListDataSubscriptionState") ); |
|
143 return iHost.PresenceDataAccess().PresenceDataCache().PresentityGroupListDataSubscriptionState(); |
|
144 } |
|
145 |
|
146 // --------------------------------------------------------------------------- |
|
147 // CProtocolPresentityGroupsDataHostImp::SetPresentityGroupDataSubscriptionStateL |
|
148 // --------------------------------------------------------------------------- |
|
149 // |
|
150 TXIMPRequestId CProtocolPresentityGroupsDataHostImp::SetPresentityGroupListDataSubscriptionStateL( |
|
151 MXIMPDataSubscriptionState* aSubscriptionState, |
|
152 MXIMPStatus* aStatus ) |
|
153 { |
|
154 TRACE(_L("CProtocolPresentityGroupsDataHostImp::SetPresentityGroupListDataSubscriptionStateL") ); |
|
155 return iHost.AddNewOperationL( NPresenceOps::EPrSetPresentityGroupListDataSubscriptionState, |
|
156 aSubscriptionState, aStatus ); |
|
157 } |
|
158 |
|
159 // --------------------------------------------------------------------------- |
|
160 // From MProtocolPresentityGroupsDataHost class. |
|
161 // CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupContentL |
|
162 // --------------------------------------------------------------------------- |
|
163 // |
|
164 TXIMPRequestId CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupContentL( |
|
165 MXIMPIdentity* aGroupId, MXIMPObjectCollection* aGroupMembers ) |
|
166 { |
|
167 TRACE(_L("CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupContentL") ); |
|
168 return iHost.AddNewOperationL( NPresenceOps::EPrHandlePresentityGroupContent, aGroupId, aGroupMembers ); |
|
169 } |
|
170 |
|
171 // --------------------------------------------------------------------------- |
|
172 // From MProtocolPresentityGroupsDataHost class. |
|
173 // CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupMemberAddedL |
|
174 // --------------------------------------------------------------------------- |
|
175 // |
|
176 TXIMPRequestId CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupMemberAddedL( |
|
177 MXIMPIdentity* aGroupId, MPresentityGroupMemberInfo* aGroupMember ) |
|
178 { |
|
179 TRACE(_L("CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupMemberAddedL") ); |
|
180 return iHost.AddNewOperationL( NPresenceOps::EPrHandlePresentityGroupMemberAdded, aGroupId, aGroupMember ); |
|
181 } |
|
182 |
|
183 // --------------------------------------------------------------------------- |
|
184 // From MProtocolPresentityGroupsDataHost class. |
|
185 // CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupMemberRemovedL |
|
186 // --------------------------------------------------------------------------- |
|
187 // |
|
188 TXIMPRequestId CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupMemberRemovedL( |
|
189 MXIMPIdentity* aGroupId, MXIMPIdentity* aGroupMemberId ) |
|
190 { |
|
191 TRACE(_L("CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupMemberRemovedL") ); |
|
192 CPresentityGroupMemberInfoImp* infoImp = CPresentityGroupMemberInfoImp::NewLC( |
|
193 *aGroupMemberId, KNullDesC ); |
|
194 TXIMPRequestId reqId = iHost.AddNewOperationL( |
|
195 NPresenceOps::EPrHandlePresentityGroupMemberRemoved, aGroupId, infoImp ); |
|
196 CleanupStack::Pop( infoImp ); |
|
197 delete aGroupMemberId; |
|
198 return reqId; |
|
199 } |
|
200 |
|
201 // --------------------------------------------------------------------------- |
|
202 // From MProtocolPresentityGroupsDataHost class. |
|
203 // CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupMemberUpdatedL |
|
204 // --------------------------------------------------------------------------- |
|
205 // |
|
206 TXIMPRequestId CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupMemberDisplayNameUpdatedL( |
|
207 MXIMPIdentity* aGroupId, MPresentityGroupMemberInfo* aGroupMember ) |
|
208 { |
|
209 TRACE(_L("CProtocolPresentityGroupsDataHostImp::HandlePresentityGroupMemberDisplayNameUpdatedL") ); |
|
210 return iHost.AddNewOperationL( NPresenceOps::EPrHandlePresentityGroupMemberDisplayNameUpdated, aGroupId, aGroupMember ); |
|
211 } |
|
212 |
|
213 // --------------------------------------------------------------------------- |
|
214 // CProtocolPresentityGroupsDataHostImp::PresentityGroupMemberDataSubscriptionState |
|
215 // --------------------------------------------------------------------------- |
|
216 // |
|
217 const MXIMPDataSubscriptionState& |
|
218 CProtocolPresentityGroupsDataHostImp::PresentityGroupContentDataSubscriptionState( |
|
219 const MXIMPIdentity& aGroupId ) const |
|
220 { |
|
221 TRACE(_L("CProtocolPresentityGroupsDataHostImp::PresentityGroupContentDataSubscriptionState") ); |
|
222 return iHost.PresenceDataAccess().PresenceDataCache().PresentityGroupContentDataSubscriptionState( aGroupId ); |
|
223 } |
|
224 |
|
225 // --------------------------------------------------------------------------- |
|
226 // CProtocolPresentityGroupsDataHostImp::SetPresentityGroupContentDataSubscriptionStateL |
|
227 // --------------------------------------------------------------------------- |
|
228 // |
|
229 TXIMPRequestId |
|
230 CProtocolPresentityGroupsDataHostImp::SetPresentityGroupContentDataSubscriptionStateL( |
|
231 MXIMPIdentity* aGroupId, |
|
232 MXIMPDataSubscriptionState* aSubscriptionState, |
|
233 MXIMPStatus* aStatus ) |
|
234 { |
|
235 TRACE(_L("CProtocolPresentityGroupsDataHostImp::SetPresentityGroupContentDataSubscriptionState") ); |
|
236 CXIMPRestrictedObjectCollectionImp* collection = CXIMPRestrictedObjectCollectionImp::NewLC( ETrue ); |
|
237 collection->AddOrReplaceTypeL( aGroupId ); |
|
238 collection->AddOrReplaceTypeL( aSubscriptionState ); |
|
239 collection->AddOrReplaceTypeL( aStatus ); |
|
240 TXIMPRequestId reqId = |
|
241 iHost.AddNewOperationL( NPresenceOps::EPrSetPresentityGroupContentDataSubscriptionState, |
|
242 collection ); |
|
243 CleanupStack::Pop( collection ); |
|
244 return reqId; |
|
245 } |
|
246 |
|
247 |
|
248 // End of file |