89 aServiceID = ( (++iUndefinedNextCode) | KAbstrackServiceTypeMask ); |
89 aServiceID = ( (++iUndefinedNextCode) | KAbstrackServiceTypeMask ); |
90 } |
90 } |
91 break; |
91 break; |
92 default: |
92 default: |
93 { |
93 { |
94 __FLOG(_L8("CMTPDataCodeGenerator::IncServiceIDResource - Service Type not supported")); |
94 OstTrace0( TRACE_NORMAL, CMTPDATACODEGENERATOR_INCSERVICEIDRESOURCE, "CMTPDataCodeGenerator::IncServiceIDResource - Service Type not supported" ); |
95 } |
95 } |
96 } |
96 } |
97 __FLOG(_L8("CMTPDataCodeGenerator::IncServiceIDResource - Exit")); |
97 |
|
98 OstTraceFunctionExit0( CMTPDATACODEGENERATOR_INCSERVICEIDRESOURCE_EXIT); |
98 return KErrNone; |
99 return KErrNone; |
99 } |
100 } |
100 |
101 |
101 void CMTPDataCodeGenerator::DecServiceIDResource() |
102 void CMTPDataCodeGenerator::DecServiceIDResource() |
102 { |
103 { |
103 __FLOG(_L8("CMTPDataCodeGenerator::DecServiceIDResource - Entry")); |
104 OstTraceFunctionEntry0( CMTPDATACODEGENERATOR_DECSERVICEIDRESOURCE_ENTRY ); |
104 iUndefinedNextCode--; |
105 iUndefinedNextCode--; |
105 __FLOG(_L8("CMTPDataCodeGenerator::DecServiceIDResource - Exit")); |
106 OstTraceFunctionExit0( CMTPDATACODEGENERATOR_DECSERVICEIDRESOURCE_EXIT ); |
106 } |
107 } |
107 |
108 |
108 TBool CMTPDataCodeGenerator::IsValidServiceType( const TUint aServiceType ) const |
109 TBool CMTPDataCodeGenerator::IsValidServiceType( const TUint aServiceType ) const |
109 { |
110 { |
110 return ( (EMTPServiceTypeNormal == aServiceType) || (EMTPServiceTypeAbstract == aServiceType) ); |
111 return ( (EMTPServiceTypeNormal == aServiceType) || (EMTPServiceTypeAbstract == aServiceType) ); |
111 } |
112 } |
112 |
113 |
113 TInt CMTPDataCodeGenerator::AllocateServiceID(const TMTPTypeGuid& aPGUID, const TUint aServiceType, TUint& aServiceID ) |
114 TInt CMTPDataCodeGenerator::AllocateServiceID(const TMTPTypeGuid& aPGUID, const TUint aServiceType, TUint& aServiceID ) |
114 { |
115 { |
115 __FLOG(_L8("CMTPDataCodeGenerator::AllocateServiceID - Entry")); |
116 OstTraceFunctionEntry0( CMTPDATACODEGENERATOR_ALLOCATESERVICEID_ENTRY ); |
116 |
117 |
117 if( !IsValidServiceType(aServiceType) ) |
118 if( !IsValidServiceType(aServiceType) ) |
|
119 { |
|
120 OstTraceFunctionExit0( CMTPDATACODEGENERATOR_ALLOCATESERVICEID_EXIT ); |
118 return KErrArgument; |
121 return KErrArgument; |
119 |
122 } |
|
123 |
120 TInt err(KErrNone); |
124 TInt err(KErrNone); |
121 TUint retID (KInvliadServiceID); |
125 TUint retID (KInvliadServiceID); |
122 if( iSingletons.ServiceMgr().IsSupportedService(aPGUID) ) |
126 if( iSingletons.ServiceMgr().IsSupportedService(aPGUID) ) |
123 { |
127 { |
124 if( iSingletons.ServiceMgr().ServiceTypeOfSupportedService(aPGUID) != aServiceType ) |
128 if( iSingletons.ServiceMgr().ServiceTypeOfSupportedService(aPGUID) != aServiceType ) |
|
129 { |
|
130 OstTraceFunctionExit0( DUP1_CMTPDATACODEGENERATOR_ALLOCATESERVICEID_EXIT ); |
125 return KErrArgument; |
131 return KErrArgument; |
126 |
132 } |
|
133 |
127 err = iSingletons.ServiceMgr().GetServiceId(aPGUID , retID); |
134 err = iSingletons.ServiceMgr().GetServiceId(aPGUID , retID); |
128 if( KErrNone != err ) |
135 if( KErrNone != err ) |
129 { |
136 { |
130 if((err = IncServiceIDResource( aServiceType, retID )) != KErrNone) |
137 if((err = IncServiceIDResource( aServiceType, retID )) != KErrNone) |
|
138 { |
|
139 OstTraceFunctionExit0( DUP2_CMTPDATACODEGENERATOR_ALLOCATESERVICEID_EXIT ); |
131 return err; |
140 return err; |
132 |
141 } |
|
142 |
133 err = iSingletons.ServiceMgr().EnableService( aPGUID, retID ); |
143 err = iSingletons.ServiceMgr().EnableService( aPGUID, retID ); |
134 if( KErrNone != err ) |
144 if( KErrNone != err ) |
135 { |
145 { |
136 DecServiceIDResource(); |
146 DecServiceIDResource(); |
|
147 OstTraceFunctionExit0( DUP3_CMTPDATACODEGENERATOR_ALLOCATESERVICEID_EXIT ); |
137 return err; |
148 return err; |
138 } |
149 } |
139 } |
150 } |
140 |
151 |
141 } |
152 } |
142 else |
153 else |
143 { |
154 { |
144 if((err = IncServiceIDResource( aServiceType, retID )) != KErrNone) |
155 if((err = IncServiceIDResource( aServiceType, retID )) != KErrNone) |
|
156 { |
|
157 OstTraceFunctionExit0( DUP4_CMTPDATACODEGENERATOR_ALLOCATESERVICEID_EXIT ); |
145 return err; |
158 return err; |
|
159 } |
146 } |
160 } |
147 |
161 |
148 aServiceID = retID; |
162 aServiceID = retID; |
149 iSingletons.ServiceMgr().InsertServiceId( retID ); |
163 iSingletons.ServiceMgr().InsertServiceId( retID ); |
150 |
164 |
151 __FLOG(_L8("CMTPDataCodeGenerator::AllocateServiceID - Exit")); |
165 OstTraceFunctionExit0( DUP5_CMTPDATACODEGENERATOR_ALLOCATESERVICEID_EXIT ); |
152 return KErrNone; |
166 return KErrNone; |
153 } |
167 } |
154 |
168 |
155 TInt CMTPDataCodeGenerator::AllocateServicePropertyCode( const TMTPTypeGuid& aServicePGUID, const TMTPTypeGuid& aPKNamespace, const TUint aPKID, TUint16& aServicePropertyCode ) |
169 TInt CMTPDataCodeGenerator::AllocateServicePropertyCode( const TMTPTypeGuid& aServicePGUID, const TMTPTypeGuid& aPKNamespace, const TUint aPKID, TUint16& aServicePropertyCode ) |
156 { |
170 { |
157 __FLOG(_L8("CMTPDataCodeGenerator::AllocateServicePropertyCode - Entry")); |
171 OstTraceFunctionEntry0( CMTPDATACODEGENERATOR_ALLOCATESERVICEPROPERTYCODE_ENTRY ); |
158 |
172 |
159 TUint retID = KInvliadU16DataCode; |
173 TUint retID = KInvliadU16DataCode; |
160 if( iSingletons.ServiceMgr().IsSupportedService(aServicePGUID) ) |
174 if( iSingletons.ServiceMgr().IsSupportedService(aServicePGUID) ) |
161 { |
175 { |
162 TInt err = iSingletons.ServiceMgr().GetServicePropertyCode( aServicePGUID, aPKNamespace, aPKID, retID ); |
176 TInt err = iSingletons.ServiceMgr().GetServicePropertyCode( aServicePGUID, aPKNamespace, aPKID, retID ); |
163 if( KErrNone != err ) |
177 if( KErrNone != err ) |
|
178 { |
|
179 OstTraceFunctionExit0( CMTPDATACODEGENERATOR_ALLOCATESERVICEPROPERTYCODE_EXIT ); |
164 return err; |
180 return err; |
165 |
181 } |
|
182 |
166 if(retID == KInvliadU16DataCode) |
183 if(retID == KInvliadU16DataCode) |
167 { |
184 { |
168 if ( iUndefinedNextCode >= KUndenfinedEndCode ) |
185 if ( iUndefinedNextCode >= KUndenfinedEndCode ) |
|
186 { |
|
187 OstTraceFunctionExit0( DUP1_CMTPDATACODEGENERATOR_ALLOCATESERVICEPROPERTYCODE_EXIT ); |
169 return KErrOverflow; |
188 return KErrOverflow; |
|
189 } |
170 |
190 |
171 retID = ++iUndefinedNextCode; |
191 retID = ++iUndefinedNextCode; |
172 iSingletons.ServiceMgr().SetServicePropertyCode( aServicePGUID, aPKNamespace, aPKID, retID); |
192 iSingletons.ServiceMgr().SetServicePropertyCode( aServicePGUID, aPKNamespace, aPKID, retID); |
173 } |
193 } |
174 } |
194 } |
175 else |
195 else |
176 { |
196 { |
177 if ( iUndefinedNextCode >= KUndenfinedEndCode ) |
197 if ( iUndefinedNextCode >= KUndenfinedEndCode ) |
|
198 { |
|
199 OstTraceFunctionExit0( DUP2_CMTPDATACODEGENERATOR_ALLOCATESERVICEPROPERTYCODE_EXIT ); |
178 return KErrOverflow; |
200 return KErrOverflow; |
|
201 } |
|
202 |
179 |
203 |
180 retID = ++iUndefinedNextCode; |
204 retID = ++iUndefinedNextCode; |
181 } |
205 } |
182 |
206 |
183 aServicePropertyCode = retID; |
207 aServicePropertyCode = retID; |
184 |
208 |
185 __FLOG(_L8("CMTPDataCodeGenerator::AllocateServicePropertyCode - Exit")); |
209 OstTraceFunctionExit0( DUP3_CMTPDATACODEGENERATOR_ALLOCATESERVICEPROPERTYCODE_EXIT ); |
186 return KErrNone; |
210 return KErrNone; |
187 } |
211 } |
188 |
212 |
189 TInt CMTPDataCodeGenerator::AllocateServiceFormatCode( const TMTPTypeGuid& aServicePGUID, const TMTPTypeGuid& aGUID, TUint16& aServiceFormatCode ) |
213 TInt CMTPDataCodeGenerator::AllocateServiceFormatCode( const TMTPTypeGuid& aServicePGUID, const TMTPTypeGuid& aGUID, TUint16& aServiceFormatCode ) |
190 { |
214 { |
191 __FLOG(_L8("CMTPServiceConfig::AllocateServiceFormatCode - Entry")); |
215 OstTraceFunctionEntry0( CMTPDATACODEGENERATOR_ALLOCATESERVICEFORMATCODE_ENTRY ); |
192 |
216 |
193 TUint retID = KInvliadU16DataCode; |
217 TUint retID = KInvliadU16DataCode; |
194 if( iSingletons.ServiceMgr().IsSupportedService(aServicePGUID) ) |
218 if( iSingletons.ServiceMgr().IsSupportedService(aServicePGUID) ) |
195 { |
219 { |
196 TInt err = iSingletons.ServiceMgr().GetServiceFormatCode( aServicePGUID, aGUID, retID ); |
220 TInt err = iSingletons.ServiceMgr().GetServiceFormatCode( aServicePGUID, aGUID, retID ); |
197 if( KErrNone != err ) |
221 if( KErrNone != err ) |
|
222 { |
|
223 OstTraceFunctionExit0( CMTPDATACODEGENERATOR_ALLOCATESERVICEFORMATCODE_EXIT ); |
198 return err; |
224 return err; |
199 |
225 } |
|
226 |
200 if(retID == KInvliadU16DataCode) |
227 if(retID == KInvliadU16DataCode) |
201 { |
228 { |
202 if ( iVendorExtFormatCode > EMTPFormatCodeVendorExtDynamicEnd ) |
229 if ( iVendorExtFormatCode > EMTPFormatCodeVendorExtDynamicEnd ) |
|
230 { |
|
231 OstTraceFunctionExit0( DUP1_CMTPDATACODEGENERATOR_ALLOCATESERVICEFORMATCODE_EXIT ); |
203 return KErrOverflow; |
232 return KErrOverflow; |
|
233 } |
204 |
234 |
205 retID = ++iVendorExtFormatCode; |
235 retID = ++iVendorExtFormatCode; |
206 iSingletons.ServiceMgr().SetServiceFormatCode( aServicePGUID, aGUID, retID); |
236 iSingletons.ServiceMgr().SetServiceFormatCode( aServicePGUID, aGUID, retID); |
207 } |
237 } |
208 } |
238 } |
209 else |
239 else |
210 { |
240 { |
211 if ( iVendorExtFormatCode > EMTPFormatCodeVendorExtDynamicEnd ) |
241 if ( iVendorExtFormatCode > EMTPFormatCodeVendorExtDynamicEnd ) |
|
242 { |
|
243 OstTraceFunctionExit0( DUP2_CMTPDATACODEGENERATOR_ALLOCATESERVICEFORMATCODE_EXIT ); |
212 return KErrOverflow; |
244 return KErrOverflow; |
213 |
245 } |
|
246 |
214 retID = ++iVendorExtFormatCode; |
247 retID = ++iVendorExtFormatCode; |
215 } |
248 } |
216 |
249 |
217 aServiceFormatCode = retID; |
250 aServiceFormatCode = retID; |
218 |
251 |
219 __FLOG(_L8("CMTPServiceConfig::AllocateServiceFormatCode - Exit")); |
252 |
|
253 OstTraceFunctionExit0( DUP3_CMTPDATACODEGENERATOR_ALLOCATESERVICEFORMATCODE_EXIT ); |
220 return KErrNone; |
254 return KErrNone; |
221 } |
255 } |
222 |
256 |
223 TInt CMTPDataCodeGenerator::AllocateServiceMethodFormatCode( const TMTPTypeGuid& aServicePGUID, const TMTPTypeGuid& aGUID, TUint16& aMethodFormatCode ) |
257 TInt CMTPDataCodeGenerator::AllocateServiceMethodFormatCode( const TMTPTypeGuid& aServicePGUID, const TMTPTypeGuid& aGUID, TUint16& aMethodFormatCode ) |
224 { |
258 { |
225 __FLOG(_L8("CMTPDataCodeGenerator::AllocateServiceMethodFormatCode - Entry")); |
259 OstTraceFunctionEntry0( CMTPDATACODEGENERATOR_ALLOCATESERVICEMETHODFORMATCODE_ENTRY ); |
226 |
260 |
227 TUint retID = KInvliadU16DataCode; |
261 TUint retID = KInvliadU16DataCode; |
228 if( iSingletons.ServiceMgr().IsSupportedService(aServicePGUID) ) |
262 if( iSingletons.ServiceMgr().IsSupportedService(aServicePGUID) ) |
229 { |
263 { |
230 TInt err = iSingletons.ServiceMgr().GetServiceMethodCode( aServicePGUID, aGUID, retID ); |
264 TInt err = iSingletons.ServiceMgr().GetServiceMethodCode( aServicePGUID, aGUID, retID ); |
231 if( KErrNone != err ) |
265 if( KErrNone != err ) |
|
266 { |
|
267 OstTraceFunctionExit0( CMTPDATACODEGENERATOR_ALLOCATESERVICEMETHODFORMATCODE_EXIT ); |
232 return err; |
268 return err; |
233 |
269 } |
|
270 |
234 if(retID == KInvliadU16DataCode) |
271 if(retID == KInvliadU16DataCode) |
235 { |
272 { |
236 if ( iUndefinedNextCode > KUndenfinedEndCode ) |
273 if ( iUndefinedNextCode > KUndenfinedEndCode ) |
|
274 { |
|
275 OstTraceFunctionExit0( DUP1_CMTPDATACODEGENERATOR_ALLOCATESERVICEMETHODFORMATCODE_EXIT ); |
237 return KErrOverflow; |
276 return KErrOverflow; |
|
277 } |
238 |
278 |
239 retID = ++iUndefinedNextCode; |
279 retID = ++iUndefinedNextCode; |
240 iSingletons.ServiceMgr().SetServiceMethodCode( aServicePGUID, aGUID, retID); |
280 iSingletons.ServiceMgr().SetServiceMethodCode( aServicePGUID, aGUID, retID); |
241 } |
281 } |
242 } |
282 } |
243 else |
283 else |
244 { |
284 { |
245 if ( iUndefinedNextCode > KUndenfinedEndCode ) |
285 if ( iUndefinedNextCode > KUndenfinedEndCode ) |
|
286 { |
|
287 OstTraceFunctionExit0( DUP2_CMTPDATACODEGENERATOR_ALLOCATESERVICEMETHODFORMATCODE_EXIT ); |
246 return KErrOverflow; |
288 return KErrOverflow; |
247 |
289 } |
|
290 |
248 retID = ++iUndefinedNextCode; |
291 retID = ++iUndefinedNextCode; |
249 } |
292 } |
250 |
293 |
251 aMethodFormatCode = retID; |
294 aMethodFormatCode = retID; |
252 |
295 |
253 __FLOG(_L8("CMTPDataCodeGenerator::AllocateServiceMethodFormatCode - Exit")); |
296 OstTraceFunctionExit0( DUP3_CMTPDATACODEGENERATOR_ALLOCATESERVICEMETHODFORMATCODE_EXIT ); |
254 return KErrNone; |
297 return KErrNone; |
255 } |
298 } |
256 |
299 |
257 |
300 |
258 |
301 |