S60UIExampleInitialContainer.inc
上传用户:laixiong
上传日期:2007-03-11
资源大小:2994k
文件大小:1685k
源码类别:

Symbian

开发平台:

C/C++

  1. {
  2. return aLock=((aLock==ETwelveOClock) ? EOneOClock : (TTimerLockSpec)((TInt)aLock+1));
  3. }
  4. inline TTimerLockSpec operator++(TTimerLockSpec &aLock, TInt)
  5. {
  6. TTimerLockSpec l=aLock;
  7. aLock=((aLock==ETwelveOClock) ? EOneOClock : (TTimerLockSpec)((TInt)aLock+1));
  8. return l;
  9. }
  10. inline const TUidType& TCheckedUid::UidType() const
  11.     {return(iType);}
  12. template <class T>
  13. void _DeleteArray(T** aBegin,T** aEnd)
  14. {for (;;) if (aBegin<aEnd) delete *aBegin++; else return;}
  15. template <class T>
  16. struct _ArrayUtil
  17. {
  18. static inline void Delete(T* aBegin,T* aEnd,CBase*)
  19. {::_DeleteArray((CBase**)aBegin,(CBase**)aEnd);}
  20. static inline void Delete(T* aBegin,T* aEnd,TAny*)
  21. {::_DeleteArray(aBegin,aEnd);}
  22. static inline void Delete(T* aArray,TInt aCount)
  23. {Delete(aArray,aArray+aCount,*aArray);}
  24. };
  25. __declspec(dllexport) void PanicTFixedArray();
  26. template <class T,TInt S>
  27. inline TFixedArray<T,S>::TFixedArray()
  28. {}
  29. template <class T,TInt S>
  30. inline void TFixedArray<T,S>::Copy(const T* aList,TInt aLength)
  31. #line 4529
  32. {(void)((TUint(aLength)<=TUint(S))||(PanicTFixedArray(),0)) ;Mem::Copy(iRep,aList,aLength*sizeof(T));}
  33. template <class T,TInt S>
  34. inline TFixedArray<T,S>::TFixedArray(const T* aList,TInt aLength)
  35. #line 4547
  36. {Copy(aList,aLength);}
  37. template <class T,TInt S>
  38. inline void TFixedArray<T,S>::Reset()
  39. {Mem::FillZ(iRep,sizeof(iRep));}
  40. template <class T,TInt S>
  41. inline TInt TFixedArray<T,S>::Count() const
  42. #line 4572
  43. {return S;}
  44. template <class T,TInt S>
  45. inline TInt TFixedArray<T,S>::Length() const
  46. {return sizeof(T);}
  47. template <class T,TInt S>
  48. inline TBool TFixedArray<T,S>::InRange(TInt aIndex)
  49. {return TUint(aIndex)<S;}
  50. template <class T,TInt S>
  51. inline T& TFixedArray<T,S>::operator[](TInt aIndex)
  52. #line 4610
  53. {(void)((InRange(aIndex))||(PanicTFixedArray(),0)) ;return iRep[aIndex];}
  54. template <class T,TInt S>
  55. inline const T& TFixedArray<T,S>::operator[](TInt aIndex) const
  56. #line 4630
  57. {return (const_cast<ThisClass&>(*this)) [aIndex];}
  58. template <class T,TInt S>
  59. inline T& TFixedArray<T,S>::At(TInt aIndex)
  60. #line 4649
  61. {(void)((InRange(aIndex))||(PanicTFixedArray(),0)) ;return iRep[aIndex];}
  62. template <class T,TInt S>
  63. inline const T& TFixedArray<T,S>::At(TInt aIndex) const
  64. #line 4669
  65. {return (const_cast<ThisClass&>(*this)) .At(aIndex);}
  66. template <class T,TInt S>
  67. inline T* TFixedArray<T,S>::Begin()
  68. {return &iRep[0];}
  69. template <class T,TInt S>
  70. inline T* TFixedArray<T,S>::End()
  71. {return &iRep[S];}
  72. template <class T,TInt S>
  73. inline const T* TFixedArray<T,S>::Begin() const
  74. {return &iRep[0];}
  75. template <class T,TInt S>
  76. inline const T* TFixedArray<T,S>::End() const
  77. {return &iRep[S];}
  78. template <class T,TInt S>
  79. inline TInt TFixedArray<T,S>::CountFunctionR(const CBase*)
  80. {return S;}
  81. template <class T,TInt S>
  82. inline const TAny* TFixedArray<T,S>::AtFunctionR(const CBase* aThis,TInt aIndex)
  83. {return &(reinterpret_cast<const ThisClass&>(*aThis)) [aIndex];}
  84. template <class T,TInt S>
  85. inline TArray<T> TFixedArray<T,S>::Array() const
  86. {return TArray<T>(CountFunctionR,AtFunctionR,(reinterpret_cast<const CBase*>(this)) );}
  87. template <class T,TInt S>
  88. inline void TFixedArray<T,S>::DeleteAll()
  89. #line 4759
  90. {_ArrayUtil<T>::Delete(iRep,S);}
  91. inline RHeap* User::SwitchHeap(RAllocator* aHeap)
  92. { return (RHeap*)SwitchAllocator(aHeap); }
  93. inline RHeap& User::Heap()
  94. { return (RHeap&)Allocator(); }
  95. inline TBool User::CreatorHasCapability(TCapability aCapability, const char* aDiagnostic)
  96. {
  97. return DoCreatorHasCapability(aCapability, aDiagnostic);
  98. }
  99. inline TBool User::CreatorHasCapability(TCapability aCapability1, TCapability aCapability2, const char* aDiagnostic)
  100. {
  101. return DoCreatorHasCapability(aCapability1, aCapability2, aDiagnostic);
  102. }
  103. #line 4833
  104. inline void TSecurityInfo::SetToCurrentInfo()
  105. { new (this) TSecurityInfo(RProcess()); }
  106. inline void TSecurityInfo::Set(RProcess aProcess)
  107. { new (this) TSecurityInfo(aProcess); }
  108. inline void TSecurityInfo::Set(RThread aThread)
  109. { new (this) TSecurityInfo(aThread); }
  110. inline void TSecurityInfo::Set(RMessagePtr2 aMsgPtr)
  111. { new (this) TSecurityInfo(aMsgPtr); }
  112. #line 4869
  113. inline TBool TSecurityPolicy::CheckPolicy(RProcess aProcess, const char* aDiagnostic) const
  114. {
  115. return DoCheckPolicy(aProcess, aDiagnostic);
  116. }
  117. #line 4892
  118. inline TBool TSecurityPolicy::CheckPolicy(RThread aThread, const char* aDiagnostic) const
  119. {
  120. return DoCheckPolicy(aThread, aDiagnostic);
  121. }
  122. #line 4914
  123. inline TBool TSecurityPolicy::CheckPolicy(RMessagePtr2 aMsgPtr, const char* aDiagnostic) const
  124. {
  125. return DoCheckPolicy(aMsgPtr, aDiagnostic);
  126. }
  127. #line 4938
  128. inline TBool TSecurityPolicy::CheckPolicy(RMessagePtr2 aMsgPtr, TSecurityInfo& aMissing, const char* aDiagnostic) const
  129. {
  130. return DoCheckPolicy(aMsgPtr, aMissing, aDiagnostic);
  131. }
  132. #line 4958
  133. inline TBool TSecurityPolicy::CheckPolicyCreator(const char* aDiagnostic) const
  134. {
  135. return DoCheckPolicyCreator(aDiagnostic);
  136. }
  137. inline TBool TStaticSecurityPolicy::CheckPolicy(RProcess aProcess, const char* aDiagnostic) const
  138. {
  139. return (&(*this))->CheckPolicy(aProcess, aDiagnostic);
  140. }
  141. inline TBool TStaticSecurityPolicy::CheckPolicy(RThread aThread, const char* aDiagnostic) const
  142. {
  143. return (&(*this))->CheckPolicy(aThread, aDiagnostic);
  144. }
  145. inline TBool TStaticSecurityPolicy::CheckPolicy(RMessagePtr2 aMsgPtr, const char* aDiagnostic) const
  146. {
  147. return (&(*this))->CheckPolicy(aMsgPtr, aDiagnostic);
  148. }
  149. inline TBool TStaticSecurityPolicy::CheckPolicy(RMessagePtr2 aMsgPtr, TSecurityInfo& aMissing, const char* aDiagnostic) const
  150. {
  151. return (&(*this))->CheckPolicy(aMsgPtr, aMissing, aDiagnostic);
  152. }
  153. inline TBool TStaticSecurityPolicy::CheckPolicyCreator(const char* aDiagnostic) const
  154. {
  155. return (&(*this))->CheckPolicyCreator(aDiagnostic);
  156. }
  157. #line 5241
  158. template <class T>
  159. inline void RPointerArray<T>::AppendL(const T* anEntry)
  160. { User::LeaveIfError(Append(anEntry));}
  161. #line 5262
  162. template <class T>
  163. inline void RPointerArray<T>::InsertL(const T* anEntry, TInt aPos)
  164. { User::LeaveIfError(Insert(anEntry,aPos)); }
  165. #line 5282
  166. template <class T>
  167. inline TInt RPointerArray<T>::FindL(const T* anEntry) const
  168. { return User::LeaveIfError(Find(anEntry));}
  169. #line 5306
  170. template <class T>
  171. inline TInt RPointerArray<T>::FindL(const T* anEntry, TIdentityRelation<T> anIdentity) const
  172. { return User::LeaveIfError(Find(anEntry, anIdentity));}
  173. #line 5324
  174. template <class T>
  175. inline TInt RPointerArray<T>::FindInAddressOrderL(const T* anEntry) const
  176. { return User::LeaveIfError(FindInAddressOrder(anEntry));}
  177. #line 5347
  178. template <class T>
  179. inline TInt RPointerArray<T>::FindInOrderL(const T* anEntry, TLinearOrder<T> anOrder) const
  180. { return User::LeaveIfError(FindInOrder(anEntry, anOrder));}
  181. #line 5370
  182. template <class T>
  183. inline void RPointerArray<T>::FindInAddressOrderL(const T* anEntry, TInt& anIndex) const
  184. { User::LeaveIfError(FindInAddressOrder(anEntry, anIndex)); }
  185. #line 5398
  186. template <class T>
  187. inline void RPointerArray<T>::FindInOrderL(const T* anEntry, TInt& anIndex, TLinearOrder<T> anOrder) const
  188. { User::LeaveIfError(FindInOrder(anEntry, anIndex, anOrder)); }
  189. #line 5430
  190. template <class T>
  191. inline TInt RPointerArray<T>::SpecificFindInAddressOrderL(const T* anEntry, TInt aMode) const
  192. { return User::LeaveIfError(SpecificFindInAddressOrder(anEntry, aMode));}
  193. #line 5466
  194. template <class T>
  195. inline TInt RPointerArray<T>::SpecificFindInOrderL(const T* anEntry, TLinearOrder<T> anOrder, TInt aMode) const
  196. { return User::LeaveIfError(SpecificFindInOrder(anEntry, anOrder, aMode));}
  197. #line 5504
  198. template <class T>
  199. inline void RPointerArray<T>::SpecificFindInAddressOrderL(const T* anEntry, TInt& anIndex, TInt aMode) const
  200. { User::LeaveIfError(SpecificFindInAddressOrder(anEntry, anIndex, aMode)); }
  201. #line 5546
  202. template <class T>
  203. inline void RPointerArray<T>::SpecificFindInOrderL(const T* anEntry, TInt& anIndex, TLinearOrder<T> anOrder, TInt aMode) const
  204. { User::LeaveIfError(SpecificFindInOrder(anEntry, anIndex, anOrder, aMode)); }
  205. #line 5564
  206. template <class T>
  207. inline void RPointerArray<T>::InsertInAddressOrderL(const T* anEntry)
  208. { User::LeaveIfError(InsertInAddressOrder(anEntry)); }
  209. #line 5592
  210. template <class T>
  211. inline void RPointerArray<T>::InsertInOrderL(const T* anEntry, TLinearOrder<T> anOrder)
  212. { User::LeaveIfError(InsertInOrder(anEntry, anOrder)); }
  213. #line 5614
  214. template <class T>
  215. inline void RPointerArray<T>::InsertInAddressOrderAllowRepeatsL(const T* anEntry)
  216. { User::LeaveIfError(InsertInAddressOrderAllowRepeats(anEntry)); }
  217. #line 5639
  218. template <class T>
  219. inline void RPointerArray<T>::InsertInOrderAllowRepeatsL(const T* anEntry, TLinearOrder<T> anOrder)
  220. { User::LeaveIfError(InsertInOrderAllowRepeats(anEntry, anOrder)); }
  221. #line 5656
  222. template <class T>
  223. inline void RPointerArray<T>::ReserveL(TInt aCount)
  224. { User::LeaveIfError(RPointerArrayBase::DoReserve(aCount)); }
  225. #line 5673
  226. inline void RPointerArray<TAny>::AppendL(const TAny* anEntry)
  227. { User::LeaveIfError(Append(anEntry));}
  228. #line 5693
  229. inline void RPointerArray<TAny>::InsertL(const TAny* anEntry, TInt aPos)
  230. { User::LeaveIfError(Insert(anEntry,aPos)); }
  231. #line 5712
  232. inline TInt RPointerArray<TAny>::FindL(const TAny* anEntry) const
  233. { return User::LeaveIfError(Find(anEntry));}
  234. #line 5729
  235. inline TInt RPointerArray<TAny>::FindInAddressOrderL(const TAny* anEntry) const
  236. { return User::LeaveIfError(FindInAddressOrder(anEntry));}
  237. #line 5751
  238. inline void RPointerArray<TAny>::FindInAddressOrderL(const TAny* anEntry, TInt& anIndex) const
  239. { User::LeaveIfError(FindInAddressOrder(anEntry, anIndex)); }
  240. #line 5782
  241. inline TInt RPointerArray<TAny>::SpecificFindInAddressOrderL(const TAny* anEntry, TInt aMode) const
  242. { return User::LeaveIfError(SpecificFindInAddressOrder(anEntry, aMode));}
  243. #line 5819
  244. inline void RPointerArray<TAny>::SpecificFindInAddressOrderL(const TAny* anEntry, TInt& anIndex, TInt aMode) const
  245. { User::LeaveIfError(SpecificFindInAddressOrder(anEntry, anIndex, aMode)); }
  246. #line 5835
  247. inline void RPointerArray<TAny>::InsertInAddressOrderL(const TAny* anEntry)
  248. { User::LeaveIfError(InsertInAddressOrder(anEntry)); }
  249. #line 5856
  250. inline void RPointerArray<TAny>::InsertInAddressOrderAllowRepeatsL(const TAny* anEntry)
  251. { User::LeaveIfError(InsertInAddressOrderAllowRepeats(anEntry)); }
  252. #line 5869
  253. template <class T>
  254. inline void RArray<T>::AppendL(const T& anEntry)
  255. { User::LeaveIfError(Append(anEntry));}
  256. #line 5890
  257. template <class T>
  258. inline void RArray<T>::InsertL(const T& anEntry, TInt aPos)
  259. { User::LeaveIfError(Insert(anEntry, aPos));}
  260. #line 5912
  261. template <class T>
  262. inline TInt RArray<T>::FindL(const T& anEntry) const
  263. { return User::LeaveIfError(Find(anEntry));}
  264. #line 5937
  265. template <class T>
  266. inline TInt RArray<T>::FindL(const T& anEntry, TIdentityRelation<T> anIdentity) const
  267. { return User::LeaveIfError(Find(anEntry, anIdentity));}
  268. #line 5956
  269. template <class T>
  270. inline TInt RArray<T>::FindInSignedKeyOrderL(const T& anEntry) const
  271. { return User::LeaveIfError(FindInSignedKeyOrder(anEntry));}
  272. #line 5975
  273. template <class T>
  274. inline TInt RArray<T>::FindInUnsignedKeyOrderL(const T& anEntry) const
  275. { return User::LeaveIfError(FindInUnsignedKeyOrder(anEntry));}
  276. #line 5997
  277. template <class T>
  278. inline TInt RArray<T>::FindInOrderL(const T& anEntry, TLinearOrder<T> anOrder) const
  279. { return User::LeaveIfError(FindInOrder(anEntry, anOrder));}
  280. #line 6018
  281. template <class T>
  282. inline void RArray<T>::FindInSignedKeyOrderL(const T& anEntry, TInt& anIndex) const
  283. { User::LeaveIfError(FindInSignedKeyOrder(anEntry, anIndex));}
  284. #line 6039
  285. template <class T>
  286. inline void RArray<T>::FindInUnsignedKeyOrderL(const T& anEntry, TInt& anIndex) const
  287. { User::LeaveIfError(FindInUnsignedKeyOrder(anEntry, anIndex));}
  288. #line 6063
  289. template <class T>
  290. inline void RArray<T>::FindInOrderL(const T& anEntry, TInt& anIndex, TLinearOrder<T> anOrder) const
  291. { User::LeaveIfError(FindInOrder(anEntry, anIndex, anOrder));}
  292. #line 6096
  293. template <class T>
  294. inline TInt RArray<T>::SpecificFindInSignedKeyOrderL(const T& anEntry, TInt aMode) const
  295. { return User::LeaveIfError(SpecificFindInSignedKeyOrder(anEntry, aMode));}
  296. #line 6130
  297. template <class T>
  298. inline TInt RArray<T>::SpecificFindInUnsignedKeyOrderL(const T& anEntry, TInt aMode) const
  299. { return User::LeaveIfError(SpecificFindInUnsignedKeyOrder(anEntry, aMode));}
  300. #line 6166
  301. template <class T>
  302. inline TInt RArray<T>::SpecificFindInOrderL(const T& anEntry, TLinearOrder<T> anOrder, TInt aMode) const
  303. { return User::LeaveIfError(SpecificFindInOrder(anEntry, anOrder, aMode));}
  304. #line 6207
  305. template <class T>
  306. inline void RArray<T>::SpecificFindInSignedKeyOrderL(const T& anEntry, TInt& anIndex, TInt aMode) const
  307. { User::LeaveIfError(SpecificFindInSignedKeyOrder(anEntry, anIndex, aMode));}
  308. #line 6246
  309. template <class T>
  310. inline void RArray<T>::SpecificFindInUnsignedKeyOrderL(const T& anEntry, TInt& anIndex, TInt aMode) const
  311. { User::LeaveIfError(SpecificFindInUnsignedKeyOrder(anEntry, anIndex, aMode));}
  312. #line 6288
  313. template <class T>
  314. inline void RArray<T>::SpecificFindInOrderL(const T& anEntry, TInt& anIndex, TLinearOrder<T> anOrder, TInt aMode) const
  315. { User::LeaveIfError(SpecificFindInOrder(anEntry, anIndex, anOrder, aMode));}
  316. #line 6309
  317. template <class T>
  318. inline void RArray<T>::InsertInSignedKeyOrderL(const T& anEntry)
  319. { User::LeaveIfError(InsertInSignedKeyOrder(anEntry));}
  320. #line 6329
  321. template <class T>
  322. inline void RArray<T>::InsertInUnsignedKeyOrderL(const T& anEntry)
  323. { User::LeaveIfError(InsertInUnsignedKeyOrder(anEntry));}
  324. #line 6355
  325. template <class T>
  326. inline void RArray<T>::InsertInOrderL(const T& anEntry, TLinearOrder<T> anOrder)
  327. { User::LeaveIfError(InsertInOrder(anEntry, anOrder));}
  328. #line 6378
  329. template <class T>
  330. inline void RArray<T>::InsertInSignedKeyOrderAllowRepeatsL(const T& anEntry)
  331. { User::LeaveIfError(InsertInSignedKeyOrderAllowRepeats(anEntry));}
  332. #line 6401
  333. template <class T>
  334. inline void RArray<T>::InsertInUnsignedKeyOrderAllowRepeatsL(const T& anEntry)
  335. { User::LeaveIfError(InsertInUnsignedKeyOrderAllowRepeats(anEntry));}
  336. #line 6427
  337. template <class T>
  338. inline void RArray<T>::InsertInOrderAllowRepeatsL(const T& anEntry, TLinearOrder<T> anOrder)
  339. { User::LeaveIfError(InsertInOrderAllowRepeats(anEntry, anOrder));}
  340. #line 6444
  341. template <class T>
  342. inline void RArray<T>::ReserveL(TInt aCount)
  343. { User::LeaveIfError(RArrayBase::DoReserve(aCount)); }
  344. #line 6460
  345. inline void RArray<TInt>::AppendL(TInt anEntry)
  346. { User::LeaveIfError(Append(anEntry));}
  347. #line 6479
  348. inline void RArray<TInt>::InsertL(TInt anEntry, TInt aPos)
  349. { User::LeaveIfError(Insert(anEntry, aPos));}
  350. #line 6497
  351. inline TInt RArray<TInt>::FindL(TInt anEntry) const
  352. { return User::LeaveIfError(Find(anEntry));}
  353. #line 6514
  354. inline TInt RArray<TInt>::FindInOrderL(TInt anEntry) const
  355. { return User::LeaveIfError(FindInOrder(anEntry));}
  356. #line 6535
  357. inline void RArray<TInt>::FindInOrderL(TInt anEntry, TInt& anIndex) const
  358. { User::LeaveIfError(FindInOrder(anEntry, anIndex));}
  359. #line 6566
  360. inline TInt RArray<TInt>::SpecificFindInOrderL(TInt anEntry, TInt aMode) const
  361. { return User::LeaveIfError(SpecificFindInOrder(anEntry, aMode));}
  362. #line 6603
  363. inline void RArray<TInt>::SpecificFindInOrderL(TInt anEntry, TInt& anIndex, TInt aMode) const
  364. { User::LeaveIfError(SpecificFindInOrder(anEntry, anIndex, aMode));}
  365. #line 6623
  366. inline void RArray<TInt>::InsertInOrderL(TInt anEntry)
  367. { User::LeaveIfError(InsertInOrder(anEntry));}
  368. #line 6645
  369. inline void RArray<TInt>::InsertInOrderAllowRepeatsL(TInt anEntry)
  370. { User::LeaveIfError(InsertInOrderAllowRepeats(anEntry));}
  371. #line 6661
  372. inline void RArray<TInt>::ReserveL(TInt aCount)
  373. { User::LeaveIfError(RPointerArrayBase::DoReserve(aCount)); }
  374. #line 6676
  375. inline void RArray<TUint>::AppendL(TUint anEntry)
  376. { User::LeaveIfError(Append(anEntry));}
  377. #line 6696
  378. inline void RArray<TUint>::InsertL(TUint anEntry, TInt aPos)
  379. { User::LeaveIfError(Insert(anEntry, aPos));}
  380. #line 6713
  381. inline TInt RArray<TUint>::FindL(TUint anEntry) const
  382. { return User::LeaveIfError(Find(anEntry));}
  383. #line 6731
  384. inline TInt RArray<TUint>::FindInOrderL(TUint anEntry) const
  385. { return User::LeaveIfError(FindInOrder(anEntry));}
  386. #line 6755
  387. inline void RArray<TUint>::FindInOrderL(TUint anEntry, TInt& anIndex) const
  388. { User::LeaveIfError(FindInOrder(anEntry, anIndex));}
  389. #line 6786
  390. inline TInt RArray<TUint>::SpecificFindInOrderL(TUint anEntry, TInt aMode) const
  391. { return User::LeaveIfError(SpecificFindInOrder(anEntry, aMode));}
  392. #line 6822
  393. inline void RArray<TUint>::SpecificFindInOrderL(TUint anEntry, TInt& anIndex, TInt aMode) const
  394. { User::LeaveIfError(SpecificFindInOrder(anEntry, anIndex, aMode));}
  395. #line 6842
  396. inline void RArray<TUint>::InsertInOrderL(TUint anEntry)
  397. { User::LeaveIfError(InsertInOrder(anEntry));}
  398. #line 6864
  399. inline void RArray<TUint>::InsertInOrderAllowRepeatsL(TUint anEntry)
  400. { User::LeaveIfError(InsertInOrderAllowRepeats(anEntry));}
  401. #line 6880
  402. inline void RArray<TUint>::ReserveL(TInt aCount)
  403. { User::LeaveIfError(RPointerArrayBase::DoReserve(aCount)); }
  404. #line 6891
  405. inline void RMessagePtr2::SetProcessPriorityL(TProcessPriority aPriority) const
  406. { User::LeaveIfError(SetProcessPriority(aPriority));}
  407. #line 6903
  408. inline void RMessagePtr2::ClientL(RThread& aClient, TOwnerType aOwnerType) const
  409. { User::LeaveIfError(Client(aClient, aOwnerType));}
  410. inline TBool RMessagePtr2::HasCapability(TCapability aCapability, const char* aDiagnostic) const
  411. {
  412. return DoHasCapability(aCapability, aDiagnostic);
  413. }
  414. inline void RMessagePtr2::HasCapabilityL(TCapability aCapability, const char* aDiagnosticMessage) const
  415. {
  416. if (!HasCapability(aCapability, aDiagnosticMessage))
  417. {
  418. User::Leave(KErrPermissionDenied);
  419. }
  420. }
  421. inline TBool RMessagePtr2::HasCapability(TCapability aCapability1, TCapability aCapability2, const char* aDiagnostic) const
  422. {
  423. return DoHasCapability(aCapability1, aCapability2, aDiagnostic);
  424. }
  425. inline void RMessagePtr2::HasCapabilityL(TCapability aCapability1, TCapability aCapability2, const char* aDiagnosticMessage) const
  426. {
  427. if (!HasCapability(aCapability1, aCapability2, aDiagnosticMessage))
  428. {
  429. User::Leave(KErrPermissionDenied);
  430. }
  431. }
  432. #line 6995
  433. inline TInt RThread::RenameMe(const TDesC& aName)
  434. { return User::RenameThread(aName); }
  435. inline TInt RProcess::RenameMe(const TDesC& aName)
  436. { return User::RenameProcess(aName); }
  437. #line 7044
  438. extern "C" bool __uncaught_exception(void);
  439. namespace std {
  440. inline bool uncaught_exception(void) { return ::__uncaught_exception(); }
  441. }
  442. #line 4892 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32std.h" /* stack depth 3 */
  443. #line 10 "C:\Symbian\9.1\S60_3rd\epoc32\include\coecntrl.h" /* stack depth 2 */
  444. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32base.h" /* stack depth 3 */
  445. #line 13
  446. class CBase
  447. #line 42
  448. {
  449. public:
  450. inline CBase() {}
  451. __declspec(dllexport) virtual ~CBase();
  452. inline TAny* operator new(TUint aSize, TAny* aBase) throw() ;
  453. inline TAny* operator new(TUint aSize) throw() ;
  454. inline TAny* operator new(TUint aSize, TLeave);
  455. inline TAny* operator new(TUint aSize, TUint aExtraSize) throw() ;
  456. inline TAny* operator new(TUint aSize, TLeave, TUint aExtraSize);
  457. __declspec(dllexport) static void Delete(CBase* aPtr);
  458. protected:
  459. __declspec(dllexport) virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
  460. private:
  461. CBase(const CBase&);
  462. CBase& operator=(const CBase&);
  463. private:
  464. };
  465. class CBufBase : public CBase
  466. #line 86
  467. {
  468. public:
  469. __declspec(dllexport) ~CBufBase();
  470. inline TInt Size() const;
  471. __declspec(dllexport) void Reset();
  472. __declspec(dllexport) void Read(TInt aPos,TDes8& aDes) const;
  473. __declspec(dllexport) void Read(TInt aPos,TDes8& aDes,TInt aLength) const;
  474. __declspec(dllexport) void Read(TInt aPos,TAny* aPtr,TInt aLength) const;
  475. __declspec(dllexport) void Write(TInt aPos,const TDesC8& aDes);
  476. __declspec(dllexport) void Write(TInt aPos,const TDesC8& aDes,TInt aLength);
  477. __declspec(dllexport) void Write(TInt aPos,const TAny* aPtr,TInt aLength);
  478. __declspec(dllexport) void InsertL(TInt aPos,const TDesC8& aDes);
  479. __declspec(dllexport) void InsertL(TInt aPos,const TDesC8& aDes,TInt aLength);
  480. __declspec(dllexport) void InsertL(TInt aPos,const TAny* aPtr,TInt aLength);
  481. __declspec(dllexport) void ExpandL(TInt aPos,TInt aLength);
  482. __declspec(dllexport) void ResizeL(TInt aSize);
  483. #line 117
  484.     virtual void Compress()=0;
  485. #line 131
  486. virtual void Delete(TInt aPos,TInt aLength)=0;
  487. #line 147
  488. virtual TPtr8 Ptr(TInt aPos)=0;
  489. #line 168
  490. virtual TPtr8 BackPtr(TInt aPos)=0;
  491. private:
  492. virtual void DoInsertL(TInt aPos,const TAny* aPtr,TInt aLength)=0;
  493. protected:
  494. __declspec(dllexport) CBufBase(TInt anExpandSize);
  495. protected:
  496. TInt iSize;
  497. TInt iExpandSize;
  498. };
  499. class CBufFlat : public CBufBase
  500. #line 195
  501. {
  502. public:
  503. __declspec(dllexport) ~CBufFlat();
  504. __declspec(dllexport) static CBufFlat* NewL(TInt anExpandSize);
  505. inline TInt Capacity() const;
  506. __declspec(dllexport) void SetReserveL(TInt aSize);
  507. __declspec(dllexport) void Compress();
  508. __declspec(dllexport) void Delete(TInt aPos,TInt aLength);
  509. __declspec(dllexport) TPtr8 Ptr(TInt aPos);
  510. __declspec(dllexport) TPtr8 BackPtr(TInt aPos);
  511. protected:
  512. __declspec(dllexport) CBufFlat(TInt anExpandSize);
  513. private:
  514. __declspec(dllexport) void DoInsertL(TInt aPos,const TAny* aPtr,TInt aLength);
  515. private:
  516. TInt iMaxSize;
  517. TUint8* iPtr;
  518. };
  519. class TBufSegLink;
  520. class CBufSeg : public CBufBase
  521. #line 238
  522. {
  523. public:
  524. __declspec(dllexport) ~CBufSeg();
  525. __declspec(dllexport) static CBufSeg* NewL(TInt anExpandSize);
  526.     __declspec(dllexport) void Compress();
  527. __declspec(dllexport) void Delete(TInt aPos,TInt aLength);
  528. __declspec(dllexport) TPtr8 Ptr(TInt aPos);
  529. __declspec(dllexport) TPtr8 BackPtr(TInt aPos);
  530. protected:
  531. __declspec(dllexport) CBufSeg(TInt anExpandSize);
  532. void InsertIntoSegment(TBufSegLink* aSeg,TInt anOffset,const TAny* aPtr,TInt aLength);
  533. void DeleteFromSegment(TBufSegLink* aSeg,TInt anOffset,TInt aLength);
  534. void FreeSegment(TBufSegLink* aSeg);
  535.     void SetSBO(TInt aPos);
  536. void AllocSegL(TBufSegLink* aSeg,TInt aNumber);
  537. private:
  538. __declspec(dllexport) void DoInsertL(TInt aPos,const TAny* aPtr,TInt aLength);
  539. private:
  540.     TDblQue<TBufSegLink> iQue;
  541. TBufSegLink* iSeg;
  542. TInt iBase;
  543. TInt iOffset;
  544. };
  545. class TKeyArrayFix : public TKey
  546. #line 289
  547. {
  548. public:
  549. __declspec(dllexport) TKeyArrayFix(TInt anOffset,TKeyCmpText aType);
  550. __declspec(dllexport) TKeyArrayFix(TInt anOffset,TKeyCmpText aType,TInt aLength);
  551. __declspec(dllexport) TKeyArrayFix(TInt anOffset,TKeyCmpNumeric aType);
  552. protected:
  553. __declspec(dllexport) virtual void Set(CBufBase* aBase,TInt aRecordLength);
  554. __declspec(dllexport) TAny* At(TInt anIndex) const;
  555. protected:
  556. TInt iRecordLength;
  557. CBufBase* iBase;
  558. friend class CArrayFixBase;
  559. };
  560. typedef CBufBase*(*TBufRep)(TInt anExpandSize);
  561. class CArrayFixBase : public CBase
  562. #line 319
  563. {
  564. public:
  565. __declspec(dllexport) ~CArrayFixBase();
  566. inline TInt Count() const;
  567. inline TInt Length() const;
  568. __declspec(dllexport) void Compress();
  569. __declspec(dllexport) void Reset();
  570. __declspec(dllexport) TInt Sort(TKeyArrayFix& aKey);
  571. __declspec(dllexport) TAny* At(TInt anIndex) const;
  572. __declspec(dllexport) TAny* End(TInt anIndex) const;
  573. __declspec(dllexport) TAny* Back(TInt anIndex) const;
  574. __declspec(dllexport) void Delete(TInt anIndex);
  575. __declspec(dllexport) void Delete(TInt anIndex,TInt aCount);
  576. __declspec(dllexport) TAny* ExpandL(TInt anIndex);
  577. __declspec(dllexport) TInt Find(const TAny* aPtr,TKeyArrayFix& aKey,TInt& anIndex) const;
  578. __declspec(dllexport) TInt FindIsq(const TAny* aPtr,TKeyArrayFix& aKey,TInt& anIndex) const;
  579. __declspec(dllexport) void InsertL(TInt anIndex,const TAny* aPtr);
  580. __declspec(dllexport) void InsertL(TInt anIndex,const TAny* aPtr,TInt aCount);
  581. __declspec(dllexport) TInt InsertIsqL(const TAny* aPtr,TKeyArrayFix& aKey);
  582. __declspec(dllexport) TInt InsertIsqAllowDuplicatesL(const TAny* aPtr,TKeyArrayFix& aKey);
  583. __declspec(dllexport) void ResizeL(TInt aCount,const TAny* aPtr);
  584. protected:
  585. __declspec(dllexport) CArrayFixBase(TBufRep aRep,TInt aRecordLength,TInt aGranularity);
  586. __declspec(dllexport) void InsertRepL(TInt anIndex,const TAny* aPtr,TInt aReplicas);
  587. __declspec(dllexport) void SetKey(TKeyArrayFix& aKey) const;
  588. __declspec(dllexport) void SetReserveFlatL(TInt aCount);
  589. __declspec(dllexport) static TInt CountR(const CBase* aPtr);
  590. __declspec(dllexport) static const TAny* AtR(const CBase* aPtr,TInt anIndex);
  591. private:
  592. TInt iCount;
  593. TInt iGranularity;
  594. TInt iLength;
  595. TBufRep iCreateRep;
  596. CBufBase* iBase;
  597. };
  598. template <class T>
  599. class CArrayFix : public CArrayFixBase
  600. #line 370
  601. {
  602. public:
  603. inline CArrayFix(TBufRep aRep,TInt aGranularity);
  604. inline const T& operator[](TInt anIndex) const;
  605. inline T& operator[](TInt anIndex);
  606. inline const T& At(TInt anIndex) const;
  607. inline const T* End(TInt anIndex) const;
  608. inline const T* Back(TInt anIndex) const;
  609. inline T& At(TInt anIndex);
  610. inline T* End(TInt anIndex);
  611. inline T* Back(TInt anIndex);
  612. inline void AppendL(const T& aRef);
  613. inline void AppendL(const T* aPtr,TInt aCount);
  614. inline void AppendL(const T& aRef,TInt aReplicas);
  615. inline T& ExpandL(TInt anIndex);
  616. inline T& ExtendL();
  617. inline TInt Find(const T& aRef,TKeyArrayFix& aKey,TInt& anIndex) const;
  618. inline TInt FindIsq(const T& aRef,TKeyArrayFix& aKey,TInt& anIndex) const;
  619. inline void InsertL(TInt anIndex,const T& aRef);
  620. inline void InsertL(TInt anIndex,const T* aPtr,TInt aCount);
  621. inline void InsertL(TInt anIndex,const T& aRef,TInt aReplicas);
  622. inline TInt InsertIsqL(const T& aRef,TKeyArrayFix& aKey);
  623. inline TInt InsertIsqAllowDuplicatesL(const T& aRef,TKeyArrayFix& aKey);
  624. inline void ResizeL(TInt aCount);
  625. inline void ResizeL(TInt aCount,const T& aRef);
  626. inline const TArray<T> Array() const;
  627. };
  628. template<> class CArrayFix<TAny> : public CArrayFixBase
  629. #line 413
  630. {
  631. public:
  632. inline CArrayFix(TBufRep aRep,TInt aRecordLength,TInt aGranularity);
  633. inline const TAny* At(TInt anIndex) const;
  634. inline const TAny* End(TInt anIndex) const;
  635. inline const TAny* Back(TInt anIndex) const;
  636. inline TAny* At(TInt anIndex);
  637. inline TAny* End(TInt anIndex);
  638. inline TAny* Back(TInt anIndex);
  639. inline void AppendL(const TAny* aPtr);
  640. inline void AppendL(const TAny* aPtr,TInt aCount);
  641. inline TAny* ExtendL();
  642. };
  643. template <class T>
  644. class CArrayFixFlat : public CArrayFix<T>
  645. #line 452
  646. {
  647. public:
  648. inline explicit CArrayFixFlat(TInt aGranularity);
  649. inline void SetReserveL(TInt aCount);
  650. };
  651. template<> class CArrayFixFlat<TAny> : public CArrayFix<TAny>
  652. #line 479
  653. {
  654. public:
  655. inline CArrayFixFlat(TInt aRecordLength,TInt aGranularity);
  656. inline void SetReserveL(TInt aCount);
  657. };
  658. template<> class CArrayFixFlat<TInt> : public CArrayFix<TInt>
  659. #line 498
  660. {
  661. public:
  662. __declspec(dllexport) explicit CArrayFixFlat(TInt aGranularity);
  663. __declspec(dllexport) ~CArrayFixFlat();
  664. inline void SetReserveL(TInt aCount);
  665. };
  666. template<> class CArrayFixFlat<TUid> : public CArrayFix<TUid>
  667. #line 518
  668. {
  669. public:
  670. __declspec(dllexport) explicit CArrayFixFlat(TInt aGranularity);
  671. __declspec(dllexport) ~CArrayFixFlat();
  672. inline void SetReserveL(TInt aCount);
  673. };
  674. template <class T>
  675. class CArrayFixSeg : public CArrayFix<T>
  676. #line 545
  677. {
  678. public:
  679. inline explicit CArrayFixSeg(TInt aGranularity);
  680. };
  681. template<> class CArrayFixSeg<TAny> : public CArrayFix<TAny>
  682. #line 571
  683. {
  684. public:
  685. inline CArrayFixSeg(TInt aRecordLength,TInt aGranularity);
  686. };
  687. template <class T>
  688. class CArrayPtr : public CArrayFix<T*>
  689. #line 591
  690. {
  691. public:
  692. inline CArrayPtr(TBufRep aRep,TInt aGranularity);
  693.     void ResetAndDestroy();
  694. };
  695. template <class T>
  696. class CArrayPtrFlat : public CArrayPtr<T>
  697. #line 624
  698. {
  699. public:
  700. inline explicit CArrayPtrFlat(TInt aGranularity);
  701. inline void SetReserveL(TInt aCount);
  702. };
  703. template <class T>
  704. class CArrayPtrSeg : public CArrayPtr<T>
  705. #line 652
  706. {
  707. public:
  708. inline explicit CArrayPtrSeg(TInt aGranularity);
  709. };
  710. class TKeyArrayVar : public TKey
  711. #line 689
  712. {
  713. public:
  714. __declspec(dllexport) TKeyArrayVar(TInt anOffset,TKeyCmpText aType);
  715. __declspec(dllexport) TKeyArrayVar(TInt anOffset,TKeyCmpText aType,TInt aLength);
  716. __declspec(dllexport) TKeyArrayVar(TInt anOffset,TKeyCmpNumeric aType);
  717. protected:
  718. __declspec(dllexport) virtual void Set(CBufBase* aBase);
  719. __declspec(dllexport) TAny* At(TInt anIndex) const;
  720. protected:
  721. CBufBase* iBase;
  722. friend class CArrayVarBase;
  723. };
  724. class CArrayVarBase : public CBase
  725. #line 718
  726. {
  727. public:
  728. __declspec(dllexport) ~CArrayVarBase();
  729. inline TInt Count() const;
  730. __declspec(dllexport) TInt Length(TInt anIndex) const;
  731. __declspec(dllexport) void Compress();
  732. __declspec(dllexport) void Reset();
  733. __declspec(dllexport) TInt Sort(TKeyArrayVar& aKey);
  734. __declspec(dllexport) TAny* At(TInt anIndex) const;
  735. __declspec(dllexport) void Delete(TInt anIndex);
  736. __declspec(dllexport) void Delete(TInt anIndex,TInt aCount);
  737. __declspec(dllexport) TAny* ExpandL(TInt anIndex,TInt aLength);
  738. __declspec(dllexport) TInt Find(const TAny* aPtr,TKeyArrayVar& aKey,TInt& anIndex) const;
  739. __declspec(dllexport) TInt FindIsq(const TAny* aPtr,TKeyArrayVar& aKey,TInt& anIndex) const;
  740. __declspec(dllexport) void InsertL(TInt anIndex,const TAny* aPtr,TInt aLength);
  741. __declspec(dllexport) TInt InsertIsqL(const TAny* aPtr,TInt aLength,TKeyArrayVar& aKey);
  742. __declspec(dllexport) TInt InsertIsqAllowDuplicatesL(const TAny* aPtr,TInt aLength,TKeyArrayVar& aKey);
  743. protected:
  744. __declspec(dllexport) CArrayVarBase(TBufRep aRep,TInt aGranularity);
  745. __declspec(dllexport) void SetKey(TKeyArrayVar& aKey) const;
  746. __declspec(dllexport) static TInt CountR(const CBase* aPtr);
  747. __declspec(dllexport) static const TAny* AtR(const CBase* aPtr,TInt anIndex);
  748. private:
  749. TInt iCount;
  750. TInt iGranularity;
  751. TBufRep iCreateRep;
  752. CBufBase* iBase;
  753. };
  754. template <class T>
  755. class CArrayVar : public CArrayVarBase
  756. #line 762
  757. {
  758. public:
  759. inline CArrayVar(TBufRep aRep,TInt aGranularity);
  760. inline const T& operator[](TInt anIndex) const;
  761. inline T& operator[](TInt anIndex);
  762. inline const T& At(TInt anIndex) const;
  763. inline T& At(TInt anIndex);
  764. inline void AppendL(const T& aRef,TInt aLength);
  765. inline T& ExpandL(TInt anIndex,TInt aLength);
  766. inline T& ExtendL(TInt aLength);
  767. inline TInt Find(const T& aRef,TKeyArrayVar& aKey,TInt& anIndex) const;
  768. inline TInt FindIsq(const T& aRef,TKeyArrayVar& aKey,TInt& anIndex) const;
  769. inline void InsertL(TInt anIndex,const T& aRef,TInt aLength);
  770. inline TInt InsertIsqL(const T& aRef,TInt aLength,TKeyArrayVar& aKey);
  771.   inline TInt InsertIsqAllowDuplicatesL(const T& aRef,TInt aLength,TKeyArrayVar& aKey);
  772. inline const TArray<T> Array() const;
  773. };
  774. template<> class CArrayVar<TAny> : public CArrayVarBase
  775. #line 799
  776. {
  777. public:
  778. inline CArrayVar(TBufRep aRep,TInt aGranularity);
  779. inline const TAny* At(TInt anIndex) const;
  780. inline TAny* At(TInt anIndex);
  781. inline void AppendL(const TAny* aPtr,TInt aLength);
  782. inline TAny* ExtendL(TInt aLength);
  783. };
  784. template <class T>
  785. class CArrayVarFlat : public CArrayVar<T>
  786. #line 828
  787. {
  788. public:
  789. inline explicit CArrayVarFlat(TInt aGranularity);
  790. };
  791. template <class T>
  792. class CArrayVarSeg : public CArrayVar<T>
  793. #line 853
  794. {
  795. public:
  796. inline explicit CArrayVarSeg(TInt aGranularity);
  797. };
  798. class TKeyArrayPak : public TKeyArrayVar
  799. #line 890
  800. {
  801. public:
  802. __declspec(dllexport) TKeyArrayPak(TInt anOffset,TKeyCmpText aType);
  803. __declspec(dllexport) TKeyArrayPak(TInt anOffset,TKeyCmpText aType,TInt aLength);
  804. __declspec(dllexport) TKeyArrayPak(TInt anOffset,TKeyCmpNumeric aType);
  805. protected:
  806. __declspec(dllexport) virtual void Set(CBufBase* aBase);
  807. __declspec(dllexport) TAny* At(TInt anIndex) const;
  808. private:
  809. TInt iCacheIndex;
  810. TInt iCacheOffset;
  811. friend class CArrayPakBase;
  812. };
  813. class CArrayPakBase : public CBase
  814. #line 916
  815. {
  816. public:
  817. __declspec(dllexport) ~CArrayPakBase();
  818. inline TInt Count() const;
  819. __declspec(dllexport) TInt Length(TInt anIndex) const;
  820. __declspec(dllexport) void Compress();
  821. __declspec(dllexport) void Reset();
  822. __declspec(dllexport) void SortL(TKeyArrayVar& aKey);
  823. __declspec(dllexport) TAny* At(TInt anIndex) const;
  824. __declspec(dllexport) void Delete(TInt anIndex);
  825. __declspec(dllexport) void Delete(TInt anIndex,TInt aCount);
  826. __declspec(dllexport) TAny* ExpandL(TInt anIndex,TInt aLength);
  827. __declspec(dllexport) TInt Find(const TAny* aPtr,TKeyArrayPak& aKey,TInt& anIndex) const;
  828. __declspec(dllexport) TInt FindIsq(const TAny* aPtr,TKeyArrayPak& aKey,TInt& anIndex) const;
  829. __declspec(dllexport) void InsertL(TInt anIndex,const TAny* aPtr,TInt aLength);
  830. __declspec(dllexport) TInt InsertIsqL(const TAny* aPtr,TInt aLength,TKeyArrayPak& aKey);
  831. __declspec(dllexport) TInt InsertIsqAllowDuplicatesL(const TAny* aPtr,TInt aLength,TKeyArrayPak& aKey);
  832. protected:
  833. __declspec(dllexport) CArrayPakBase(TBufRep aRep,TInt aGranularity);
  834. __declspec(dllexport) void SetKey(TKeyArrayPak& aKey) const;
  835. __declspec(dllexport) TInt GetOffset(TInt anIndex) const;
  836. __declspec(dllexport) void BuildVarArrayL(CArrayVarFlat<TAny> *& aVarFlat);
  837. __declspec(dllexport) static TInt CountR(const CBase* aPtr);
  838. __declspec(dllexport) static const TAny* AtR(const CBase* aPtr,TInt anIndex);
  839. private:
  840. TInt iCount;
  841. TInt iGranularity;
  842. TBufRep iCreateRep;
  843. CBufBase* iBase;
  844. TInt iCacheIndex;
  845. TInt iCacheOffset;
  846. };
  847. template <class T>
  848. class CArrayPak : public CArrayPakBase
  849. #line 964
  850. {
  851. public:
  852. inline CArrayPak(TBufRep aRep,TInt aGranularity);
  853. inline const T& operator[](TInt anIndex) const;
  854. inline T& operator[](TInt anIndex);
  855. inline const T& At(TInt anIndex) const;
  856. inline T& At(TInt anIndex);
  857. inline void AppendL(const T& aRef,TInt aLength);
  858. inline T& ExpandL(TInt anIndex,TInt aLength);
  859. inline T& ExtendL(TInt aLength);
  860. inline TInt Find(const T& aRef,TKeyArrayPak& aKey,TInt& anIndex) const;
  861. inline TInt FindIsq(const T& aRef,TKeyArrayPak& aKey,TInt& anIndex) const;
  862. inline void InsertL(TInt anIndex,const T& aRef,TInt aLength);
  863. inline TInt InsertIsqL(const T& aRef,TInt aLength,TKeyArrayPak& aKey);
  864. inline TInt InsertIsqAllowDuplicatesL(const T& aRef,TInt aLength,TKeyArrayPak& aKey);
  865. inline const TArray<T> Array() const;
  866. };
  867. template<> class CArrayPak<TAny> : public CArrayPakBase
  868. #line 1001
  869. {
  870. public:
  871. inline CArrayPak(TBufRep aRep,TInt aGranularity);
  872. inline const TAny* At(TInt anIndex) const;
  873. inline TAny* At(TInt anIndex);
  874. inline void AppendL(const TAny* aPtr,TInt aLength);
  875. inline TAny* ExtendL(TInt aLength);
  876. };
  877. template <class T>
  878. class CArrayPakFlat : public CArrayPak<T>
  879. #line 1029
  880. {
  881. public:
  882. inline explicit CArrayPakFlat(TInt aGranularity);
  883. };
  884. class CObjectCon;
  885. class CObject : public CBase
  886. #line 1055
  887. {
  888. public:
  889. __declspec(dllexport) CObject();
  890. __declspec(dllexport) ~CObject();
  891. __declspec(dllexport) virtual TInt Open();
  892. __declspec(dllexport) virtual void Close();
  893. __declspec(dllexport) virtual TName Name() const;
  894. __declspec(dllexport) virtual TFullName FullName() const;
  895. __declspec(dllexport) TInt SetName(const TDesC* aName);
  896. __declspec(dllexport) void SetNameL(const TDesC* aName);
  897. inline CObject* Owner() const;
  898. inline void SetOwner(CObject* anOwner);
  899. inline TInt AccessCount() const;
  900. protected:
  901. __declspec(dllexport) virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
  902. protected:
  903. inline TInt UniqueID() const;
  904. inline void Inc();
  905. inline void Dec();
  906. private:
  907. TInt iAccessCount;
  908. CObject* iOwner;
  909. CObjectCon* iContainer;
  910. HBufC* iName;
  911. TAny* iSpare1;
  912. TAny* iSpare2;
  913. friend class CObjectCon;
  914. friend class CObjectIx;
  915. public: void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const ;
  916. };
  917. struct TObjectDataStr
  918. {
  919. TInt16 instance;
  920. TInt16 uniqueID;
  921. };
  922. struct SObjectIxRec
  923. {
  924. union
  925. {
  926. TObjectDataStr str;
  927. TInt nextEmpty;
  928. };
  929. CObject* obj;
  930. };
  931. class CObjectIx : public CBase
  932. #line 1129
  933. {
  934. public:
  935. enum {
  936.          ENoClose=KHandleNoClose,
  937.          ELocalHandle=KHandleFlagLocal
  938.          };
  939. public:
  940. __declspec(dllexport) static CObjectIx* NewL();
  941. __declspec(dllexport) ~CObjectIx();
  942. __declspec(dllexport) TInt AddL(CObject* anObj);
  943. __declspec(dllexport) void Remove(TInt aHandle);
  944. __declspec(dllexport) CObject* At(TInt aHandle,TInt aUniqueID);
  945. __declspec(dllexport) CObject* At(TInt aHandle);
  946. __declspec(dllexport) CObject* AtL(TInt aHandle,TInt aUniqueID);
  947. __declspec(dllexport) CObject* AtL(TInt aHandle);
  948. __declspec(dllexport) TInt At(const CObject* anObject) const;
  949. __declspec(dllexport) TInt Count(CObject* anObject) const;
  950. __declspec(dllexport) CObject* operator[](TInt anIndex);
  951. inline TInt Count() const;
  952. inline TInt ActiveCount() const;
  953. protected:
  954. __declspec(dllexport) CObjectIx();
  955. private:
  956. void UpdateState();
  957. private:
  958. TInt iNumEntries;
  959. TInt iHighWaterMark;
  960. TInt iAllocated;
  961. TInt iNextInstance;
  962. SObjectIxRec *iObjects;
  963. TInt iFree;
  964. TInt iUpdateDisabled;
  965. TAny* iSpare1;
  966. TAny* iSpare2;
  967. };
  968. inline TBool IsLocalHandle(TInt aHandle)
  969. {return(aHandle&CObjectIx::ELocalHandle);}
  970. inline void SetLocalHandle(TInt &aHandle)
  971. {aHandle|=CObjectIx::ELocalHandle;}
  972. inline void UnSetLocalHandle(TInt &aHandle)
  973. {aHandle&=(~CObjectIx::ELocalHandle);}
  974. class CObjectCon : public CBase
  975. #line 1208
  976. {
  977. protected:
  978. enum {ENotOwnerID};
  979. public:
  980. __declspec(dllexport) static CObjectCon* NewL();
  981. __declspec(dllexport) ~CObjectCon();
  982. __declspec(dllexport) void Remove(CObject* anObj);
  983. __declspec(dllexport) void AddL(CObject* anObj);
  984. __declspec(dllexport) CObject* operator[](TInt anIndex);
  985. __declspec(dllexport) CObject* At(TInt aFindHandle) const;
  986. __declspec(dllexport) CObject* AtL(TInt aFindHandle) const;
  987. __declspec(dllexport) TInt CheckUniqueFullName(const CObject* anOwner,const TDesC& aName) const;
  988. __declspec(dllexport) TInt CheckUniqueFullName(const CObject* anObject) const;
  989. __declspec(dllexport) TInt FindByName(TInt& aFindHandle,const TDesC& aMatch,TName& aName) const;
  990. __declspec(dllexport) TInt FindByFullName(TInt& aFindHandle,const TDesC& aMatch,TFullName& aFullName) const;
  991. inline TInt UniqueID() const;
  992. inline TInt Count() const;
  993. protected:
  994. __declspec(dllexport) CObjectCon(TInt aUniqueID);
  995. TBool NamesMatch(const CObject* anObject, const CObject* aCurrentObject) const;
  996. TBool NamesMatch(const CObject* anObject, const TName& anObjectName, const CObject* aCurrentObject) const;
  997. public:
  998. TInt iUniqueID;
  999. private:
  1000. TInt iCount;
  1001. TInt iAllocated;
  1002. CObject** iObjects;
  1003. TAny* iSpare1;
  1004. TAny* iSpare2;
  1005. friend class CObjectConIx;
  1006. };
  1007. class CObjectConIx : public CBase
  1008. #line 1264
  1009. {
  1010. public:
  1011. __declspec(dllexport) static CObjectConIx* NewL();
  1012. __declspec(dllexport) ~CObjectConIx();
  1013. __declspec(dllexport) CObjectCon* Lookup(TInt aFindHandle) const;
  1014. __declspec(dllexport) CObjectCon* CreateL();
  1015. __declspec(dllexport) void Remove(CObjectCon* aCon);
  1016. protected:
  1017. __declspec(dllexport) CObjectConIx();
  1018. __declspec(dllexport) void CreateContainerL(CObjectCon*& anObject);
  1019. private:
  1020. TInt iCount;
  1021. TInt iAllocated;
  1022. TInt iNextUniqueID;
  1023. CObjectCon** iContainers;
  1024. TAny* iSpare1;
  1025. TAny* iSpare2;
  1026. };
  1027. class CBitMapAllocator : public CBase
  1028. {
  1029. public:
  1030. __declspec(dllexport) static CBitMapAllocator* New(TInt aSize);
  1031. __declspec(dllexport) static CBitMapAllocator* NewL(TInt aSize);
  1032. __declspec(dllexport) ~CBitMapAllocator();
  1033. __declspec(dllexport) TInt Alloc();
  1034. __declspec(dllexport) TInt AllocFrom(TInt aPos);
  1035. __declspec(dllexport) TInt Alloc(TInt aCount, TInt& aConsecutive);
  1036. __declspec(dllexport) TInt AllocAligned(TInt anAlignment);
  1037. __declspec(dllexport) TInt AllocAlignedBlock(TInt anAlignment);
  1038. __declspec(dllexport) TInt AllocFromTop();
  1039. __declspec(dllexport) TInt AllocFromTopFrom(TInt aPos);
  1040. __declspec(dllexport) void AllocAt(TInt aPos);
  1041. __declspec(dllexport) void AllocAt(TInt aPos, TInt aCount);
  1042. __declspec(dllexport) TBool IsFree(TInt aPos);
  1043. __declspec(dllexport) TBool IsFree(TInt aPos, TInt aCount);
  1044. __declspec(dllexport) void Free(TInt aPos);
  1045. __declspec(dllexport) void Free(TInt aPos, TInt aCount);
  1046. __declspec(dllexport) TInt Avail();
  1047. __declspec(dllexport) TInt Size();
  1048. __declspec(dllexport) TInt ExtractRamPages(TInt aConsecutive,TInt& aPageNo);
  1049. protected:
  1050. __declspec(dllexport) CBitMapAllocator(TInt aSize,TInt aLength);
  1051. protected:
  1052. TInt iAvail;
  1053. TInt iSize;
  1054. TInt iLength;
  1055. TUint iMap[1];
  1056. };
  1057. class TCleanupStackItem;
  1058. #line 1334
  1059. typedef void (*TCleanupOperation)(TAny*);
  1060. class TCleanupItem
  1061. #line 1350
  1062. {
  1063. public:
  1064. inline TCleanupItem(TCleanupOperation anOperation);
  1065. inline TCleanupItem(TCleanupOperation anOperation,TAny* aPtr);
  1066. private:
  1067. TCleanupOperation iOperation;
  1068. TAny* iPtr;
  1069. friend class TCleanupStackItem;
  1070. };
  1071. class CCleanup : public CBase
  1072. #line 1373
  1073. {
  1074. public:
  1075. __declspec(dllexport) static CCleanup* New();
  1076. __declspec(dllexport) static CCleanup* NewL();
  1077. __declspec(dllexport) ~CCleanup();
  1078. __declspec(dllexport) void NextLevel();
  1079. __declspec(dllexport) void PreviousLevel();
  1080. __declspec(dllexport) void PushL(TAny* aPtr);
  1081. __declspec(dllexport) void PushL(CBase* anObject);
  1082. __declspec(dllexport) void PushL(TCleanupItem anItem);
  1083. __declspec(dllexport) void Pop();
  1084. __declspec(dllexport) void Pop(TInt aCount);
  1085. __declspec(dllexport) void PopAll();
  1086. __declspec(dllexport) void PopAndDestroy();
  1087. __declspec(dllexport) void PopAndDestroy(TInt aCount);
  1088. __declspec(dllexport) void PopAndDestroyAll();
  1089. __declspec(dllexport) void Check(TAny* aExpectedItem);
  1090. protected:
  1091. __declspec(dllexport) void DoPop(TInt aCount,TBool aDestroy);
  1092. __declspec(dllexport) void DoPopAll(TBool aDestroy);
  1093. protected:
  1094. __declspec(dllexport) CCleanup();
  1095. protected:
  1096. TCleanupStackItem* iBase;
  1097. TCleanupStackItem* iTop;
  1098. TCleanupStackItem* iNext;
  1099. };
  1100. class TCleanupTrapHandler : public TTrapHandler
  1101. #line 1427
  1102. {
  1103. public:
  1104. TCleanupTrapHandler();
  1105. virtual void Trap();
  1106. virtual void UnTrap();
  1107. virtual void Leave(TInt aValue);
  1108. inline CCleanup& Cleanup();
  1109. private:
  1110. CCleanup* iCleanup;
  1111. friend class CTrapCleanup;
  1112. };
  1113. template <class T>
  1114. class TAutoClose
  1115. #line 1454
  1116. {
  1117. public:
  1118. inline ~TAutoClose();
  1119. inline void PushL();
  1120. inline void Pop();
  1121. private:
  1122. static void Close(TAny *aObj);
  1123. public:
  1124. T iObj;
  1125. };
  1126. class CTrapCleanup : public CBase
  1127. #line 1481
  1128. {
  1129. public:
  1130. __declspec(dllexport) static CTrapCleanup* New();
  1131. __declspec(dllexport) ~CTrapCleanup();
  1132. protected:
  1133. __declspec(dllexport) CTrapCleanup();
  1134. private:
  1135. TCleanupTrapHandler iHandler;
  1136. TTrapHandler* iOldHandler;
  1137. };
  1138. class CCirBufBase : public CBase
  1139. #line 1507
  1140. {
  1141. public:
  1142. __declspec(dllexport) ~CCirBufBase();
  1143. inline TInt Count() const;
  1144. inline TInt Length() const;
  1145. __declspec(dllexport) void SetLengthL(TInt aLength);
  1146. __declspec(dllexport) void Reset();
  1147. protected:
  1148. __declspec(dllexport) CCirBufBase(TInt aSize);
  1149. __declspec(dllexport) TInt DoAdd(const TUint8* aPtr);
  1150. __declspec(dllexport) TInt DoAdd(const TUint8* aPtr,TInt aCount);
  1151. __declspec(dllexport) TInt DoRemove(TUint8* aPtr);
  1152. __declspec(dllexport) TInt DoRemove(TUint8* aPtr,TInt aCount);
  1153. protected:
  1154. TInt iCount;
  1155. TInt iSize;
  1156. TInt iLength;
  1157. TUint8* iPtr;
  1158. TUint8* iPtrE;
  1159. TUint8* iHead;
  1160. TUint8* iTail;
  1161. };
  1162. template <class T>
  1163. class CCirBuf : public CCirBufBase
  1164. {
  1165. public:
  1166. inline CCirBuf();
  1167. inline TInt Add(const T* aPtr);
  1168. inline TInt Add(const T* aPtr,TInt aCount);
  1169. inline TInt Remove(T* aPtr);
  1170. inline TInt Remove(T* aPtr,TInt aCount);
  1171. };
  1172. class CCirBuffer : public CCirBuf<TUint8>
  1173. #line 1566
  1174. {
  1175. public:
  1176. __declspec(dllexport) CCirBuffer();
  1177. __declspec(dllexport) ~CCirBuffer();
  1178. __declspec(dllexport) TInt Get();
  1179. __declspec(dllexport) TInt Put(TInt aVal);
  1180. };
  1181. class CActive : public CBase
  1182. #line 1588
  1183. {
  1184. public:
  1185. enum TPriority
  1186. {
  1187. EPriorityIdle=-100,
  1188. EPriorityLow=-20,
  1189. EPriorityStandard=0,
  1190. EPriorityUserInput=10,
  1191. EPriorityHigh=20,
  1192. };
  1193. public:
  1194. __declspec(dllexport) ~CActive();
  1195. __declspec(dllexport) void Cancel();
  1196. __declspec(dllexport) void Deque();
  1197. __declspec(dllexport) void SetPriority(TInt aPriority);
  1198. inline TBool IsActive() const;
  1199. inline TBool IsAdded() const;
  1200. inline TInt Priority() const;
  1201. protected:
  1202. __declspec(dllexport) CActive(TInt aPriority);
  1203. __declspec(dllexport) void SetActive();
  1204. #line 1653
  1205. virtual void DoCancel() =0;
  1206. #line 1687
  1207. virtual void RunL() =0;
  1208. __declspec(dllexport) virtual TInt RunError(TInt aError);
  1209. protected:
  1210. __declspec(dllexport) virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
  1211. public:
  1212. #line 1704
  1213. TRequestStatus iStatus;
  1214. private:
  1215. TPriQueLink iLink;
  1216. TAny* iSpare;
  1217. friend class CActiveScheduler;
  1218. friend class CServer;
  1219. friend class CServer2;
  1220. };
  1221. class CIdle : public CActive
  1222. #line 1729
  1223. {
  1224. public:
  1225. __declspec(dllexport) static CIdle* New(TInt aPriority);
  1226. __declspec(dllexport) static CIdle* NewL(TInt aPriority);
  1227. __declspec(dllexport) ~CIdle();
  1228. __declspec(dllexport) void Start(TCallBack aCallBack);
  1229. protected:
  1230. __declspec(dllexport) CIdle(TInt aPriority);
  1231. __declspec(dllexport) void RunL();
  1232. __declspec(dllexport) void DoCancel();
  1233. protected:
  1234. TCallBack iCallBack;
  1235. };
  1236. class CAsyncOneShot : public CActive
  1237. #line 1782
  1238. {
  1239. public:
  1240. __declspec(dllexport) CAsyncOneShot(TInt aPriority);
  1241. __declspec(dllexport) virtual void DoCancel();
  1242. __declspec(dllexport) virtual void Call();
  1243. __declspec(dllexport) virtual ~CAsyncOneShot();
  1244. inline RThread& Thread();
  1245. private:
  1246. void Setup();
  1247. RThread iThread;
  1248. };
  1249. class CAsyncCallBack : public CAsyncOneShot
  1250. {
  1251. public:
  1252. __declspec(dllexport) CAsyncCallBack(TInt aPriority);
  1253. __declspec(dllexport) CAsyncCallBack(const TCallBack& aCallBack, TInt aPriority);
  1254. __declspec(dllexport) void Set(const TCallBack& aCallBack);
  1255. __declspec(dllexport) void CallBack();
  1256. __declspec(dllexport) virtual ~CAsyncCallBack();
  1257. protected:
  1258. virtual void RunL();
  1259. protected:
  1260. TCallBack iCallBack;
  1261. };
  1262. class TDeltaTimerEntry
  1263. #line 1838
  1264. {
  1265. friend class CDeltaTimer;
  1266. public:
  1267. inline TDeltaTimerEntry(TCallBack& aCallback);
  1268. inline TDeltaTimerEntry();
  1269. inline void Set(TCallBack& aCallback);
  1270. private:
  1271. TCallBack iCallBack;
  1272. TTickCountQueLink iLink;
  1273. };
  1274. class CDeltaTimer : public CActive
  1275. #line 1893
  1276. {
  1277. public:
  1278. __declspec(dllexport) virtual void Queue(TTimeIntervalMicroSeconds32 aTimeInMicroSeconds, TDeltaTimerEntry& aEntry);
  1279. __declspec(dllexport) virtual void Remove(TDeltaTimerEntry& aEntry);
  1280. __declspec(dllexport) TInt QueueLong(TTimeIntervalMicroSeconds aTimeInMicroSeconds, TDeltaTimerEntry& aEntry);
  1281. __declspec(dllexport) static CDeltaTimer* NewL(TInt aPriority);
  1282. __declspec(dllexport) static CDeltaTimer* NewL(TInt aPriority, TTimeIntervalMicroSeconds32 aGranularity);
  1283. ~CDeltaTimer();
  1284. private:
  1285. CDeltaTimer(TInt aPriority, TInt aTickPeriod);
  1286. void DoCancel();
  1287. void RunL();
  1288. void Activate(TBool aRequeueTimer = EFalse);
  1289. private:
  1290. RTimer iTimer;
  1291. TTickCountQue iQueue;
  1292. const TInt iTickPeriod;
  1293. TBool iQueueBusy;
  1294. };
  1295. class CTimer : public CActive
  1296. #line 1974
  1297. {
  1298. public:
  1299. __declspec(dllexport) ~CTimer();
  1300. __declspec(dllexport) void At(const TTime& aTime);
  1301. __declspec(dllexport) void AtUTC(const TTime& aTimeInUTC);
  1302. __declspec(dllexport) void After(TTimeIntervalMicroSeconds32 anInterval);
  1303. __declspec(dllexport) void Lock(TTimerLockSpec aLock);
  1304. __declspec(dllexport) void Inactivity(TTimeIntervalSeconds aSeconds);
  1305. __declspec(dllexport) void HighRes(TTimeIntervalMicroSeconds32 aInterval);
  1306. protected:
  1307. __declspec(dllexport) CTimer(TInt aPriority);
  1308. __declspec(dllexport) void ConstructL();
  1309. __declspec(dllexport) void DoCancel();
  1310. private:
  1311. RTimer iTimer;
  1312. };
  1313. class CPeriodic : public CTimer
  1314. #line 2035
  1315. {
  1316. public:
  1317. __declspec(dllexport) static CPeriodic* New(TInt aPriority);
  1318. __declspec(dllexport) static CPeriodic* NewL(TInt aPriority);
  1319. __declspec(dllexport) ~CPeriodic();
  1320. __declspec(dllexport) void Start(TTimeIntervalMicroSeconds32 aDelay,TTimeIntervalMicroSeconds32 anInterval,TCallBack aCallBack);
  1321. protected:
  1322. __declspec(dllexport) CPeriodic(TInt aPriority);
  1323. __declspec(dllexport) void RunL();
  1324. private:
  1325. TTimeIntervalMicroSeconds32 iInterval;
  1326. TCallBack iCallBack;
  1327. };
  1328. class MBeating
  1329. #line 2067
  1330. {
  1331. public:
  1332. virtual void Beat() =0;
  1333. #line 2084
  1334. virtual void Synchronize() =0;
  1335. };
  1336. class CHeartbeat : public CTimer
  1337. #line 2131
  1338. {
  1339. public:
  1340. __declspec(dllexport) static CHeartbeat* New(TInt aPriority);
  1341. __declspec(dllexport) static CHeartbeat* NewL(TInt aPriority);
  1342. __declspec(dllexport) ~CHeartbeat();
  1343. __declspec(dllexport) void Start(TTimerLockSpec aLock,MBeating *aBeating);
  1344. protected:
  1345. __declspec(dllexport) CHeartbeat(TInt aPriority);
  1346. __declspec(dllexport) void RunL();
  1347. private:
  1348. TTimerLockSpec iLock;
  1349. MBeating *iBeating;
  1350. };
  1351. class CServer2;
  1352. #line 2170
  1353. class CSession2 : public CBase
  1354. {
  1355. friend class CServer2;
  1356. public:
  1357. __declspec(dllexport) virtual ~CSession2() =0;
  1358. private:
  1359. __declspec(dllexport) virtual void CreateL();
  1360. public:
  1361. inline const CServer2* Server() const;
  1362. __declspec(dllexport) void ResourceCountMarkStart();
  1363. __declspec(dllexport) void ResourceCountMarkEnd(const RMessage2& aMessage);
  1364. __declspec(dllexport) virtual TInt CountResources();
  1365. #line 2192
  1366. virtual void ServiceL(const RMessage2& aMessage) =0;
  1367. __declspec(dllexport) virtual void ServiceError(const RMessage2& aMessage,TInt aError);
  1368. protected:
  1369. __declspec(dllexport) CSession2();
  1370. __declspec(dllexport) virtual void Disconnect(const RMessage2& aMessage);
  1371. __declspec(dllexport) virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
  1372. public:
  1373. enum TPanicNo {ESesCountResourcesNotImplemented=1,ESesFoundResCountHeaven};
  1374. private:
  1375. TInt iResourceCountMark;
  1376. TDblQueLink iLink;
  1377. const CServer2* iServer;
  1378. TAny* iSpare;
  1379. };
  1380. #line 2224
  1381. class CServer2 : public CActive
  1382. {
  1383. public:
  1384. enum TServerType
  1385. {
  1386. EUnsharableSessions = EIpcSession_Unsharable,
  1387. ESharableSessions = EIpcSession_Sharable,
  1388. EGlobalSharableSessions = EIpcSession_GlobalSharable,
  1389. };
  1390. public:
  1391. __declspec(dllexport) virtual ~CServer2() =0;
  1392. __declspec(dllexport) TInt Start(const TDesC& aName);
  1393. __declspec(dllexport) void StartL(const TDesC& aName);
  1394. __declspec(dllexport) void ReStart();
  1395. #line 2264
  1396. inline RServer2 Server() const { return iServer; }
  1397. protected:
  1398. inline const RMessage2& Message() const;
  1399. __declspec(dllexport) CServer2(TInt aPriority, TServerType aType=EUnsharableSessions);
  1400. __declspec(dllexport) void DoCancel();
  1401. __declspec(dllexport) void RunL();
  1402. __declspec(dllexport) TInt RunError(TInt aError);
  1403. __declspec(dllexport) virtual void DoConnect(const RMessage2& aMessage);
  1404. __declspec(dllexport) virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
  1405. private:
  1406. #line 2298
  1407. __declspec(dllexport) virtual CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const =0;
  1408. void Connect(const RMessage2& aMessage);
  1409. void DoConnectL(const RMessage2& aMessage,CSession2* volatile& aSession);
  1410. public:
  1411. enum TPanic
  1412. {
  1413. EBadMessageNumber,
  1414. ESessionNotConnected,
  1415. ESessionAlreadyConnected,
  1416. EClientDoesntHaveRequiredCaps,
  1417. };
  1418. private:
  1419. TInt iSessionType;
  1420. RServer2 iServer;
  1421. RMessage2 iMessage;
  1422. TAny* iSpare;
  1423. TDblQue<CSession2> iSessionQ;
  1424. protected:
  1425. TDblQueIter<CSession2> iSessionIter;
  1426. private:
  1427. void Disconnect(const RMessage2& aMessage);
  1428. static void BadMessage(const RMessage2& aMessage);
  1429. static void NotConnected(const RMessage2& aMessage);
  1430. friend class CPolicyServer;
  1431. };
  1432. #line 2405
  1433. class CPolicyServer : public CServer2
  1434. {
  1435. public:
  1436. enum TFailureAction
  1437. {
  1438. EFailClient = 0,
  1439. EPanicClient= 1,
  1440. };
  1441. #line 2428
  1442. enum TCustomResult
  1443. {
  1444. EPass = 0,
  1445. EFail = 1,
  1446. EAsync = 2,
  1447. };
  1448. #line 2442
  1449. class TPolicyElement
  1450. {
  1451. public:
  1452. #line 2475
  1453. TStaticSecurityPolicy   iPolicy;
  1454. TInt iAction;
  1455. };
  1456. enum TSpecialCase
  1457. {
  1458. ECustomCheck  =255u,
  1459. ENotSupported =254u,
  1460. EAlwaysPass =253u,
  1461. ESpecialCaseLimit  =252u,
  1462. ESpecialCaseHardLimit =250u
  1463. };
  1464. #line 2548
  1465. class TPolicy
  1466. {
  1467. public:
  1468. TUint8 iOnConnect;
  1469. TUint16 iRangeCount;
  1470. #line 2578
  1471. const TInt* iRanges;
  1472. #line 2616
  1473. const TUint8* iElementsIndex;
  1474. #line 2645
  1475. const TPolicyElement* iElements;
  1476. };
  1477. public:
  1478. #line 2663
  1479. __declspec(dllexport) void ProcessL(const RMessage2& aMsg);
  1480. #line 2681
  1481. __declspec(dllexport) void CheckFailedL(const RMessage2& aMsg, TInt aAction, const TSecurityInfo& aMissing);
  1482. #line 2696
  1483. __declspec(dllexport) void ProcessError(const RMessage2& aMsg, TInt aError);
  1484. protected:
  1485. #line 2709
  1486. __declspec(dllexport) CPolicyServer(TInt aPriority, const TPolicy& aPolicy, TServerType aType=EUnsharableSessions);
  1487. #line 2759
  1488. __declspec(dllexport) virtual TCustomResult CustomSecurityCheckL(const RMessage2& aMsg, TInt& aAction, TSecurityInfo& aMissing);
  1489. #line 2810
  1490. __declspec(dllexport) virtual TCustomResult CustomFailureActionL(const RMessage2& aMsg, TInt aAction, const TSecurityInfo& aMissing);
  1491. protected:
  1492. __declspec(dllexport) virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
  1493. private:
  1494. __declspec(dllexport) virtual void RunL();
  1495. __declspec(dllexport) virtual TInt RunError(TInt aError);
  1496. const CPolicyServer::TPolicyElement* FindPolicyElement(TInt aFn, TUint& aSpecialCase) const;
  1497. private:
  1498. const TPolicy& iPolicy;
  1499. };
  1500. class CActiveScheduler : public CBase
  1501. #line 2853
  1502. {
  1503. friend class CActiveSchedulerWait;
  1504. public:
  1505. struct TLoop;
  1506. typedef TLoop* TLoopOwner;
  1507. public:
  1508. __declspec(dllexport) CActiveScheduler();
  1509. __declspec(dllexport) ~CActiveScheduler();
  1510. __declspec(dllexport) static void Install(CActiveScheduler* aScheduler);
  1511. __declspec(dllexport) static CActiveScheduler* Current();
  1512. __declspec(dllexport) static void Add(CActive* aActive);
  1513. __declspec(dllexport) static void Start();
  1514. __declspec(dllexport) static void Stop();
  1515. __declspec(dllexport) static TBool RunIfReady(TInt& aError, TInt aMinimumPriority);
  1516. __declspec(dllexport) static CActiveScheduler* Replace(CActiveScheduler* aNewActiveScheduler);
  1517. __declspec(dllexport) virtual void WaitForAnyRequest();
  1518. __declspec(dllexport) virtual void Error(TInt aError) const;
  1519. __declspec(dllexport) void Halt(TInt aExitCode) const;
  1520. __declspec(dllexport) TInt StackDepth() const;
  1521. private:
  1522. static void Start(TLoopOwner* aOwner);
  1523. __declspec(dllexport) virtual void OnStarting();
  1524. __declspec(dllexport) virtual void OnStopping();
  1525. __declspec(dllexport) virtual void Reserved_1();
  1526. __declspec(dllexport) virtual void Reserved_2();
  1527. void Run(TLoopOwner* const volatile& aLoop);
  1528. void DoRunL(TLoopOwner* const volatile& aLoop, CActive* volatile & aCurrentObj);
  1529. protected:
  1530. __declspec(dllexport) virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
  1531. protected:
  1532. inline TInt Level() const;
  1533. private:
  1534. TLoop* iStack;
  1535. TPriQue<CActive> iActiveQ;
  1536. TAny* iSpare;
  1537. };
  1538. class CActiveSchedulerWait : public CBase
  1539. #line 2908
  1540. {
  1541. public:
  1542. __declspec(dllexport) CActiveSchedulerWait();
  1543. __declspec(dllexport) ~CActiveSchedulerWait();
  1544. __declspec(dllexport) void Start();
  1545. __declspec(dllexport) void AsyncStop();
  1546. __declspec(dllexport) void AsyncStop(const TCallBack& aCallMeWhenStopped);
  1547. inline TBool IsStarted() const;
  1548. __declspec(dllexport) TBool CanStopNow() const;
  1549. private:
  1550. CActiveScheduler::TLoopOwner iLoop;
  1551. };
  1552. class CleanupStack
  1553. {
  1554. public:
  1555. __declspec(dllexport) static void PushL(TAny* aPtr);
  1556. __declspec(dllexport) static void PushL(CBase* aPtr);
  1557. __declspec(dllexport) static void PushL(TCleanupItem anItem);
  1558. __declspec(dllexport) static void Pop();
  1559. __declspec(dllexport) static void Pop(TInt aCount);
  1560. __declspec(dllexport) static void PopAndDestroy();
  1561. __declspec(dllexport) static void PopAndDestroy(TInt aCount);
  1562. __declspec(dllexport) static void Check(TAny* aExpectedItem);
  1563. inline static void Pop(TAny* aExpectedItem);
  1564. inline static void Pop(TInt aCount, TAny* aLastExpectedItem);
  1565. inline static void PopAndDestroy(TAny* aExpectedItem);
  1566. inline static void PopAndDestroy(TInt aCount, TAny* aLastExpectedItem);
  1567. };
  1568. #line 2961
  1569. template <class T>
  1570. class CleanupDelete
  1571. {
  1572. public:
  1573. inline static void PushL(T* aPtr);
  1574. private:
  1575. static void Delete(TAny *aPtr);
  1576. };
  1577. #line 3009
  1578. template <class T>
  1579. inline void CleanupDeletePushL(T* aPtr);
  1580. #line 3025
  1581. template <class T>
  1582. class CleanupArrayDelete
  1583. {
  1584. public:
  1585. inline static void PushL(T* aPtr);
  1586. private:
  1587. static void ArrayDelete(TAny *aPtr);
  1588. };
  1589. #line 3075
  1590. template <class T>
  1591. inline void CleanupArrayDeletePushL(T* aPtr);
  1592. #line 3091
  1593. template <class T>
  1594. class CleanupClose
  1595. {
  1596. public:
  1597. inline static void PushL(T& aRef);
  1598. private:
  1599. static void Close(TAny *aPtr);
  1600. };
  1601. #line 3153
  1602. template <class T>
  1603. inline void CleanupClosePushL(T& aRef);
  1604. #line 3169
  1605. template <class T>
  1606. class CleanupRelease
  1607. {
  1608. public:
  1609. inline static void PushL(T& aRef);
  1610. private:
  1611. static void Release(TAny *aPtr);
  1612. };
  1613. #line 3227
  1614. template <class T>
  1615. inline void CleanupReleasePushL(T& aRef);
  1616. class CConsoleBase;
  1617. class Console
  1618. {
  1619. public:
  1620. __declspec(dllexport) static CConsoleBase* NewL(const TDesC& aTitle,TSize aSize);
  1621. };
  1622. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32base.inl" /* stack depth 4 */
  1623. inline TAny* CBase::operator new(TUint aSize, TAny* aBase) throw()
  1624. #line 19
  1625. { Mem::FillZ(aBase, aSize); return aBase; }
  1626. inline TAny* CBase::operator new(TUint aSize) throw()
  1627. #line 36
  1628. { return User::AllocZ(aSize); }
  1629. inline TAny* CBase::operator new(TUint aSize, TLeave)
  1630. #line 53
  1631. { return User::AllocZL(aSize); }
  1632. inline TAny* CBase::operator new(TUint aSize, TUint aExtraSize) throw()
  1633. #line 74
  1634. { return User::AllocZ(aSize + aExtraSize); }
  1635. inline TAny* CBase::operator new(TUint aSize, TLeave, TUint aExtraSize)
  1636. #line 95
  1637. { return User::AllocZL(aSize + aExtraSize); }
  1638. inline TInt CBufBase::Size() const
  1639. #line 111
  1640. {return(iSize);}
  1641. inline TInt CBufFlat::Capacity() const
  1642. {return(iMaxSize);}
  1643. inline TInt CArrayFixBase::Count() const
  1644. {return(iCount);}
  1645. inline TInt CArrayFixBase::Length() const
  1646. {return(iLength);}
  1647. template <class T>
  1648. inline CArrayFix<T>::CArrayFix(TBufRep aRep,TInt aGranularity)
  1649. : CArrayFixBase(aRep,sizeof(T),aGranularity)
  1650. {}
  1651. template <class T>
  1652. inline const T &CArrayFix<T>::operator[](TInt anIndex) const
  1653. #line 183
  1654. {return(*((const T *)CArrayFixBase::At(anIndex)));}
  1655. template <class T>
  1656. inline T &CArrayFix<T>::operator[](TInt anIndex)
  1657. #line 207
  1658. {return(*((T *)CArrayFixBase::At(anIndex)));}
  1659. template <class T>
  1660. inline const T &CArrayFix<T>::At(TInt anIndex) const
  1661. #line 231
  1662. {return(*((const T *)CArrayFixBase::At(anIndex)));}
  1663. template <class T>
  1664. inline const T *CArrayFix<T>::End(TInt anIndex) const
  1665. #line 259
  1666. {return((const T *)CArrayFixBase::End(anIndex));}
  1667. template <class T>
  1668. inline const T *CArrayFix<T>::Back(TInt anIndex) const
  1669. #line 288
  1670. {return((const T *)CArrayFixBase::Back(anIndex));}
  1671. template <class T>
  1672. inline T &CArrayFix<T>::At(TInt anIndex)
  1673. #line 312
  1674. {return(*((T *)CArrayFixBase::At(anIndex)));}
  1675. template <class T>
  1676. inline T *CArrayFix<T>::End(TInt anIndex)
  1677. #line 338
  1678. {return(((T *)CArrayFixBase::End(anIndex)));}
  1679. template <class T>
  1680. inline T *CArrayFix<T>::Back(TInt anIndex)
  1681. #line 367
  1682. {return(((T *)CArrayFixBase::Back(anIndex)));}
  1683. template <class T>
  1684. inline void CArrayFix<T>::AppendL(const T &aRef)
  1685. #line 383
  1686. {CArrayFixBase::InsertL(Count(),&aRef);}
  1687. template <class T>
  1688. inline void CArrayFix<T>::AppendL(const T *aPtr,TInt aCount)
  1689. #line 404
  1690. {CArrayFixBase::InsertL(Count(),aPtr,aCount);}
  1691. template <class T>
  1692. inline void CArrayFix<T>::AppendL(const T &aRef,TInt aReplicas)
  1693. #line 423
  1694. {CArrayFixBase::InsertRepL(Count(),&aRef,aReplicas);}
  1695. template <class T>
  1696. inline T &CArrayFix<T>::ExpandL(TInt anIndex)
  1697. #line 461
  1698. {return(*new(CArrayFixBase::ExpandL(anIndex)) T);}
  1699. template <class T>
  1700. inline T &CArrayFix<T>::ExtendL()
  1701. #line 492
  1702. {return(*new(CArrayFixBase::ExpandL(Count())) T);}
  1703. template <class T>
  1704. inline TInt CArrayFix<T>::Find(const T &aRef,TKeyArrayFix &aKey,TInt &anIndex) const
  1705. #line 525
  1706. {return(CArrayFixBase::Find(&aRef,aKey,anIndex));}
  1707. template <class T>
  1708. inline TInt CArrayFix<T>::FindIsq(const T &aRef,TKeyArrayFix &aKey,TInt &anIndex) const
  1709. #line 562
  1710. {return(CArrayFixBase::FindIsq(&aRef,aKey,anIndex));}
  1711. template <class T>
  1712. inline void CArrayFix<T>::InsertL(TInt anIndex,const T &aRef)
  1713. #line 589
  1714. {CArrayFixBase::InsertL(anIndex,&aRef);}
  1715. template <class T>
  1716. inline void CArrayFix<T>::InsertL(TInt anIndex,const T *aPtr,TInt aCount)
  1717. #line 622
  1718. {CArrayFixBase::InsertL(anIndex,aPtr,aCount);}
  1719. template <class T>
  1720. inline void CArrayFix<T>::InsertL(TInt anIndex,const T &aRef,TInt aReplicas)
  1721. #line 655
  1722. {CArrayFixBase::InsertRepL(anIndex,&aRef,aReplicas);}
  1723. template <class T>
  1724. inline TInt CArrayFix<T>::InsertIsqL(const T &aRef,TKeyArrayFix &aKey)
  1725. #line 684
  1726. {return(CArrayFixBase::InsertIsqL(&aRef,aKey));}
  1727. template <class T>
  1728. inline TInt CArrayFix<T>::InsertIsqAllowDuplicatesL(const T &aRef,TKeyArrayFix &aKey)
  1729. #line 711
  1730. {return(CArrayFixBase::InsertIsqAllowDuplicatesL(&aRef,aKey));}
  1731. template <class T>
  1732. inline void CArrayFix<T>::ResizeL(TInt aCount)
  1733. #line 746
  1734. {TUint8 b[sizeof(T)]; new(&b[0]) T; CArrayFixBase::ResizeL(aCount,&b[0]);}
  1735. template <class T>
  1736. inline void CArrayFix<T>::ResizeL(TInt aCount,const T &aRef)
  1737. #line 783
  1738. {CArrayFixBase::ResizeL(aCount,&aRef);}
  1739. template <class T>
  1740. inline const TArray<T> CArrayFix<T>::Array() const
  1741. {return(TArray<T>(CountR,AtR,this));}
  1742. inline CArrayFix<TAny>::CArrayFix(TBufRep aRep,TInt aRecordLength,TInt aGranularity)
  1743. : CArrayFixBase(aRep,aRecordLength,aGranularity)
  1744. {}
  1745. inline const TAny *CArrayFix<TAny>::At(TInt anIndex) const
  1746. #line 825
  1747. {return(CArrayFixBase::At(anIndex));}
  1748. inline const TAny *CArrayFix<TAny>::End(TInt anIndex) const
  1749. #line 850
  1750. {return(CArrayFixBase::End(anIndex));}
  1751. inline const TAny *CArrayFix<TAny>::Back(TInt anIndex) const
  1752. #line 877
  1753. {return(CArrayFixBase::Back(anIndex));}
  1754. inline TAny *CArrayFix<TAny>::At(TInt anIndex)
  1755. #line 897
  1756. {return(CArrayFixBase::At(anIndex));}
  1757. inline TAny *CArrayFix<TAny>::End(TInt anIndex)
  1758. #line 922
  1759. {return(CArrayFixBase::End(anIndex));}
  1760. inline TAny *CArrayFix<TAny>::Back(TInt anIndex)
  1761. #line 949
  1762. {return(CArrayFixBase::Back(anIndex));}
  1763. inline void CArrayFix<TAny>::AppendL(const TAny *aPtr)
  1764. #line 964
  1765. {CArrayFixBase::InsertL(Count(),aPtr);}
  1766. inline void CArrayFix<TAny>::AppendL(const TAny *aPtr,TInt aCount)
  1767. #line 982
  1768. {CArrayFixBase::InsertL(Count(),aPtr,aCount);}
  1769. inline TAny *CArrayFix<TAny>::ExtendL()
  1770. #line 1001
  1771. {return(CArrayFixBase::ExpandL(Count()));}
  1772. template <class T>
  1773. inline CArrayFixFlat<T>::CArrayFixFlat(TInt aGranularity)
  1774. : CArrayFix<T>((TBufRep)CBufFlat::NewL,aGranularity)
  1775. #line 1024
  1776. {}
  1777. template <class T>
  1778. inline void CArrayFixFlat<T>::SetReserveL(TInt aCount)
  1779. #line 1050
  1780. {this->SetReserveFlatL(aCount);}
  1781. inline CArrayFixFlat<TAny>::CArrayFixFlat(TInt aRecordLength,TInt aGranularity)
  1782. : CArrayFix<TAny>((TBufRep)CBufFlat::NewL,aRecordLength,aGranularity)
  1783. #line 1069
  1784. {}
  1785. inline void CArrayFixFlat<TAny>::SetReserveL(TInt aCount)
  1786. #line 1094
  1787. {SetReserveFlatL(aCount);}
  1788. inline void CArrayFixFlat<TInt>::SetReserveL(TInt aCount)
  1789. #line 1119
  1790. {SetReserveFlatL(aCount);}
  1791. inline void CArrayFixFlat<TUid>::SetReserveL(TInt aCount)
  1792. #line 1144
  1793. {SetReserveFlatL(aCount);}
  1794. template <class T>
  1795. inline CArrayFixSeg<T>::CArrayFixSeg(TInt aGranularity)
  1796. : CArrayFix<T>((TBufRep)CBufSeg::NewL,aGranularity)
  1797. #line 1168
  1798. {}
  1799. inline CArrayFixSeg<TAny>::CArrayFixSeg(TInt aRecordLength,TInt aGranularity)
  1800. : CArrayFix<TAny>((TBufRep)CBufSeg::NewL,aRecordLength,aGranularity)
  1801. #line 1188
  1802. {}
  1803. template <class T>
  1804. inline CArrayPtr<T>::CArrayPtr(TBufRep aRep,TInt aGranularity)
  1805. : CArrayFix<T*>(aRep,aGranularity)
  1806. {}
  1807. template <class T>
  1808. void CArrayPtr<T>::ResetAndDestroy()
  1809. #line 1221
  1810. {
  1811. for (TInt i=0;i<this->Count();++i)
  1812. delete this->At(i);
  1813. this->Reset();
  1814. }
  1815. template <class T>
  1816. inline CArrayPtrFlat<T>::CArrayPtrFlat(TInt aGranularity)
  1817. : CArrayPtr<T>((TBufRep)CBufFlat::NewL,aGranularity)
  1818. #line 1243
  1819. {}
  1820. template <class T>
  1821. inline void CArrayPtrFlat<T>::SetReserveL(TInt aCount)
  1822. #line 1269
  1823. {this->SetReserveFlatL(aCount);}
  1824. template <class T>
  1825. inline CArrayPtrSeg<T>::CArrayPtrSeg(TInt aGranularity)
  1826. : CArrayPtr<T>((TBufRep)CBufSeg::NewL,aGranularity)
  1827. #line 1287
  1828. {}
  1829. inline TInt CArrayVarBase::Count() const
  1830. {return(iCount);}
  1831. template <class T>
  1832. inline CArrayVar<T>::CArrayVar(TBufRep aRep,TInt aGranularity)
  1833. : CArrayVarBase(aRep,aGranularity)
  1834. {}
  1835. template <class T>
  1836. inline const T &CArrayVar<T>::operator[](TInt anIndex) const
  1837. #line 1334
  1838. {return(*((const T *)CArrayVarBase::At(anIndex)));}
  1839. template <class T>
  1840. inline T &CArrayVar<T>::operator[](TInt anIndex)
  1841. #line 1358
  1842. {return(*((T *)CArrayVarBase::At(anIndex)));}
  1843. template <class T>
  1844. inline const T &CArrayVar<T>::At(TInt anIndex) const
  1845. #line 1381
  1846. {return(*((const T *)CArrayVarBase::At(anIndex)));}
  1847. template <class T>
  1848. inline T &CArrayVar<T>::At(TInt anIndex)
  1849. #line 1403
  1850. {return(*((T *)CArrayVarBase::At(anIndex)));}
  1851. template <class T>
  1852. inline void CArrayVar<T>::AppendL(const T &aRef,TInt aLength)
  1853. #line 1423
  1854. {CArrayVarBase::InsertL(Count(),&aRef,aLength);}
  1855. template <class T>
  1856. inline T &CArrayVar<T>::ExpandL(TInt anIndex,TInt aLength)
  1857. #line 1465
  1858. {return(*new(CArrayVarBase::ExpandL(anIndex,aLength)) T);}
  1859. template <class T>
  1860. inline T &CArrayVar<T>::ExtendL(TInt aLength)
  1861. #line 1499
  1862. {return(*new(CArrayVarBase::ExpandL(Count(),aLength)) T);}
  1863. template <class T>
  1864. inline TInt CArrayVar<T>::Find(const T &aRef,TKeyArrayVar &aKey,TInt &anIndex) const
  1865. #line 1529
  1866. {return(CArrayVarBase::Find(&aRef,aKey,anIndex));}
  1867. template <class T>
  1868. inline TInt CArrayVar<T>::FindIsq(const T &aRef,TKeyArrayVar &aKey,TInt &anIndex) const
  1869. #line 1565
  1870. {return(CArrayVarBase::FindIsq(&aRef,aKey,anIndex));}
  1871. template <class T>
  1872. inline void CArrayVar<T>::InsertL(TInt anIndex,const T &aRef,TInt aLength)
  1873. #line 1595
  1874. {CArrayVarBase::InsertL(anIndex,&aRef,aLength);}
  1875. template <class T>
  1876. inline TInt CArrayVar<T>::InsertIsqL(const T &aRef,TInt aLength,TKeyArrayVar &aKey)
  1877. #line 1628
  1878. {return(CArrayVarBase::InsertIsqL(&aRef,aLength,aKey));}
  1879. template <class T>
  1880. inline TInt CArrayVar<T>::InsertIsqAllowDuplicatesL(const T &aRef,TInt aLength,TKeyArrayVar &aKey)
  1881. #line 1658
  1882. {return(CArrayVarBase::InsertIsqAllowDuplicatesL(&aRef,aLength,aKey));}
  1883. template <class T>
  1884. inline const TArray<T> CArrayVar<T>::Array() const
  1885. {return(TArray<T>(CountR,AtR,this));}
  1886. inline const TAny *CArrayVar<TAny>::At(TInt anIndex) const
  1887. #line 1692
  1888. {return(CArrayVarBase::At(anIndex));}
  1889. inline CArrayVar<TAny>::CArrayVar(TBufRep aRep,TInt aGranularity)
  1890. : CArrayVarBase(aRep,aGranularity)
  1891. #line 1714
  1892. {}
  1893. inline TAny *CArrayVar<TAny>::At(TInt anIndex)
  1894. #line 1736
  1895. {return(CArrayVarBase::At(anIndex));}
  1896. inline void CArrayVar<TAny>::AppendL(const TAny *aPtr,TInt aLength)
  1897. {CArrayVarBase::InsertL(Count(),aPtr,aLength);}
  1898. inline TAny *CArrayVar<TAny>::ExtendL(TInt aLength)
  1899. #line 1773
  1900. {return(CArrayVarBase::ExpandL(Count(),aLength));}
  1901. template <class T>
  1902. inline CArrayVarFlat<T>::CArrayVarFlat(TInt aGranularity)
  1903. : CArrayVar<T>((TBufRep)CBufFlat::NewL,aGranularity)
  1904. #line 1791
  1905. {}
  1906. template <class T>
  1907. inline CArrayVarSeg<T>::CArrayVarSeg(TInt aGranularity)
  1908. : CArrayVar<T>((TBufRep)CBufSeg::NewL,aGranularity)
  1909. #line 1809
  1910. {}
  1911. inline TInt CArrayPakBase::Count() const
  1912. {return(iCount);}
  1913. template <class T>
  1914. inline CArrayPak<T>::CArrayPak(TBufRep aRep,TInt aGranularity)
  1915. : CArrayPakBase(aRep,aGranularity)
  1916. {}
  1917. template <class T>
  1918. inline const T &CArrayPak<T>::operator[](TInt anIndex) const
  1919. #line 1857
  1920. {return(*((const T *)CArrayPakBase::At(anIndex)));}
  1921. template <class T>
  1922. inline T &CArrayPak<T>::operator[](TInt anIndex)
  1923. #line 1881
  1924. {return(*((T *)CArrayPakBase::At(anIndex)));}
  1925. template <class T>
  1926. inline const T &CArrayPak<T>::At(TInt anIndex) const
  1927. #line 1905
  1928. {return(*((const T *)CArrayPakBase::At(anIndex)));}
  1929. template <class T>
  1930. inline T &CArrayPak<T>::At(TInt anIndex)
  1931. #line 1929
  1932. {return(*((T *)CArrayPakBase::At(anIndex)));}
  1933. template <class T>
  1934. inline void CArrayPak<T>::AppendL(const T &aRef,TInt aLength)
  1935. #line 1948
  1936. {CArrayPakBase::InsertL(Count(),&aRef,aLength);}
  1937. template <class T>
  1938. inline T &CArrayPak<T>::ExpandL(TInt anIndex,TInt aLength)
  1939. #line 1988
  1940. {return(*new(CArrayPakBase::ExpandL(anIndex,aLength)) T);}
  1941. template <class T>
  1942. inline T &CArrayPak<T>::ExtendL(TInt aLength)
  1943. #line 2021
  1944. {return(*new(CArrayPakBase::ExpandL(Count(),aLength)) T);}
  1945. template <class T>
  1946. inline TInt CArrayPak<T>::Find(const T &aRef,TKeyArrayPak &aKey,TInt &anIndex) const
  1947. #line 2051
  1948. {return(CArrayPakBase::Find(&aRef,aKey,anIndex));}
  1949. template <class T>
  1950. inline TInt CArrayPak<T>::FindIsq(const T &aRef,TKeyArrayPak &aKey,TInt &anIndex) const
  1951. #line 2088
  1952. {return(CArrayPakBase::FindIsq(&aRef,aKey,anIndex));}
  1953. template <class T>
  1954. inline void CArrayPak<T>::InsertL(TInt anIndex,const T &aRef,TInt aLength)
  1955. #line 2114
  1956. {CArrayPakBase::InsertL(anIndex,&aRef,aLength);}
  1957. template <class T>
  1958. inline TInt CArrayPak<T>::InsertIsqL(const T &aRef,TInt aLength,TKeyArrayPak &aKey)
  1959. #line 2146
  1960. {return(CArrayPakBase::InsertIsqL(&aRef,aLength,aKey));}
  1961. template <class T>
  1962. inline TInt CArrayPak<T>::InsertIsqAllowDuplicatesL(const T &aRef,TInt aLength,TKeyArrayPak &aKey)
  1963. #line 2175
  1964. {return(CArrayPakBase::InsertIsqAllowDuplicatesL(&aRef,aLength,aKey));}
  1965. template <class T>
  1966. inline const TArray<T> CArrayPak<T>::Array() const
  1967. {return(TArray<T>(CountR,AtR,this));}
  1968. inline CArrayPak<TAny>::CArrayPak(TBufRep aRep,TInt aGranularity)
  1969. : CArrayPakBase(aRep,aGranularity)
  1970. #line 2209
  1971. {}
  1972. inline const TAny *CArrayPak<TAny>::At(TInt anIndex) const
  1973. #line 2231
  1974. {return(CArrayPakBase::At(anIndex));}
  1975. inline TAny *CArrayPak<TAny>::At(TInt anIndex)
  1976. #line 2253
  1977. {return(CArrayPakBase::At(anIndex));}
  1978. inline void CArrayPak<TAny>::AppendL(const TAny *aPtr,TInt aLength)
  1979. #line 2269
  1980. {CArrayPakBase::InsertL(Count(),aPtr,aLength);}
  1981. inline TAny *CArrayPak<TAny>::ExtendL(TInt aLength)
  1982. #line 2290
  1983. {return(CArrayPakBase::ExpandL(Count(),aLength));}
  1984. template <class T>
  1985. inline CArrayPakFlat<T>::CArrayPakFlat(TInt aGranularity)
  1986. : CArrayPak<T>((TBufRep)CBufFlat::NewL,aGranularity)
  1987. #line 2308
  1988. {}
  1989. inline TInt CObject::UniqueID() const
  1990. #line 2326
  1991. {return(iContainer->UniqueID());}
  1992. inline TInt CObject::AccessCount() const
  1993. {return(iAccessCount);}
  1994. inline void CObject::Inc()
  1995. #line 2351
  1996. {iAccessCount++;}
  1997. inline void CObject::Dec()
  1998. #line 2365
  1999. {iAccessCount--;}
  2000. inline CObject * CObject::Owner() const
  2001. {return(iOwner);}
  2002. inline void CObject::SetOwner(CObject *anOwner)
  2003. #line 2393
  2004. {iOwner=anOwner;}
  2005. inline TInt CObjectIx::Count() const
  2006. #line 2409
  2007. {return iHighWaterMark;}
  2008. inline TInt CObjectIx::ActiveCount() const
  2009. {return iNumEntries;}
  2010. inline TInt CObjectCon::UniqueID() const
  2011. {return iUniqueID;}
  2012. inline TInt CObjectCon::Count() const
  2013. {return iCount;}
  2014. inline TInt CCirBufBase::Count() const
  2015. {return(iCount);}
  2016. inline TInt CCirBufBase::Length() const
  2017. #line 2474
  2018. {return(iLength);}
  2019. template <class T>
  2020. inline CCirBuf<T>::CCirBuf()
  2021. : CCirBufBase(sizeof(T))
  2022. #line 2491
  2023. {}
  2024. template <class T>
  2025. inline TInt CCirBuf<T>::Add(const T *aPtr)
  2026. #line 2514
  2027. {return(DoAdd((const TUint8 *)aPtr));}
  2028. template <class T>
  2029. inline TInt CCirBuf<T>::Add(const T *aPtr,TInt aCount)
  2030. #line 2541
  2031. {return(DoAdd((const TUint8 *)aPtr,aCount));}
  2032. template <class T>
  2033. inline TInt CCirBuf<T>::Remove(T *aPtr)
  2034. #line 2560
  2035. {return(DoRemove((TUint8 *)aPtr));}
  2036. template <class T>
  2037. inline TInt CCirBuf<T>::Remove(T *aPtr,TInt aCount)
  2038. #line 2585
  2039. {return(DoRemove((TUint8 *)aPtr,aCount));}
  2040. inline TBool CActive::IsActive() const
  2041. #line 2605
  2042. {return(iStatus.iFlags&TRequestStatus::EActive);}
  2043. inline TBool CActive::IsAdded() const
  2044. #line 2628
  2045. {return(iLink.iNext!=0 );}
  2046. inline TInt CActive::Priority() const
  2047. {return iLink.iPriority;}
  2048. inline TDeltaTimerEntry::TDeltaTimerEntry(TCallBack& aCallback)
  2049. {iCallBack=aCallback;}
  2050. inline TDeltaTimerEntry::TDeltaTimerEntry()
  2051. {}
  2052. inline void TDeltaTimerEntry::Set(TCallBack& aCallback)
  2053. {iCallBack=aCallback;}
  2054. #line 2681
  2055. inline const RMessage2 &CServer2::Message() const
  2056. {return iMessage;}
  2057. #line 2695
  2058. inline const CServer2 *CSession2::Server() const
  2059. {return iServer;}
  2060. inline RThread& CAsyncOneShot::Thread()
  2061. { return iThread; }
  2062. inline TInt CActiveScheduler::Level() const
  2063. #line 2724
  2064. {return StackDepth();}
  2065. inline TBool CActiveSchedulerWait::IsStarted() const
  2066. #line 2743
  2067. {return iLoop != 0 ;}
  2068. inline void CleanupStack::Pop(TAny* aExpectedItem)
  2069. #line 2768
  2070. { CleanupStack::Check(aExpectedItem); CleanupStack::Pop(); }
  2071. inline void CleanupStack::Pop(TInt aCount, TAny* aLastExpectedItem)
  2072. #line 2795
  2073. {
  2074. if (--aCount)
  2075. CleanupStack::Pop(aCount);
  2076. CleanupStack::Check(aLastExpectedItem);
  2077. CleanupStack::Pop();
  2078. }
  2079. inline void CleanupStack::PopAndDestroy(TAny* aExpectedItem)
  2080. #line 2823
  2081. { CleanupStack::Check(aExpectedItem); CleanupStack::PopAndDestroy(); }
  2082. inline void CleanupStack::PopAndDestroy(TInt aCount, TAny* aLastExpectedItem)
  2083. #line 2851
  2084. {
  2085. if (--aCount)
  2086. CleanupStack::PopAndDestroy(aCount);
  2087. CleanupStack::Check(aLastExpectedItem);
  2088. CleanupStack::PopAndDestroy();
  2089. }
  2090. #line 2961
  2091. inline TCleanupItem::TCleanupItem(TCleanupOperation anOperation)
  2092. : iOperation(anOperation)
  2093. {}
  2094. inline TCleanupItem::TCleanupItem(TCleanupOperation anOperation,TAny *aPtr)
  2095. : iOperation(anOperation), iPtr(aPtr)
  2096. #line 2988
  2097. {}
  2098. inline CCleanup &TCleanupTrapHandler::Cleanup()
  2099. {return(*iCleanup);}
  2100. template <class T>
  2101. inline TAutoClose<T>::~TAutoClose()
  2102. {if (!std::uncaught_exception()) iObj.Close();}
  2103. template <class T>
  2104. inline void TAutoClose<T>::PushL()
  2105. {CleanupStack::PushL(TCleanupItem(Close, (TAny *)&iObj));}
  2106. template <class T>
  2107. inline void TAutoClose<T>::Pop()
  2108. {CleanupStack::Pop();}
  2109. template <class T>
  2110. void TAutoClose<T>::Close(TAny *aObj)
  2111. {((T *)aObj)->Close();}
  2112. template <class T>
  2113. inline void CleanupDelete<T>::PushL(T* aPtr)
  2114. #line 3053
  2115. {CleanupStack::PushL(TCleanupItem(&Delete,aPtr));}
  2116. template <class T>
  2117. void CleanupDelete<T>::Delete(TAny *aPtr)
  2118. {delete (static_cast<T*>(aPtr)) ;}
  2119. template <class T>
  2120. inline void CleanupDeletePushL(T* aPtr)
  2121. {CleanupDelete<T>::PushL(aPtr);}
  2122. template <class T>
  2123. inline void CleanupArrayDelete<T>::PushL(T* aPtr)
  2124. #line 3091
  2125. {CleanupStack::PushL(TCleanupItem(&ArrayDelete,aPtr));}
  2126. template <class T>
  2127. void CleanupArrayDelete<T>::ArrayDelete(TAny *aPtr)
  2128. {delete [] (static_cast<T*>(aPtr)) ;}
  2129. template <class T>
  2130. inline void CleanupArrayDeletePushL(T* aPtr)
  2131. {CleanupArrayDelete<T>::PushL(aPtr);}
  2132. template <class T>
  2133. inline void CleanupClose<T>::PushL(T& aRef)
  2134. {CleanupStack::PushL(TCleanupItem(&Close,&aRef));}
  2135. template <class T>
  2136. void CleanupClose<T>::Close(TAny *aPtr)
  2137. {((static_cast<T*>(aPtr)) )->Close();}
  2138. template <class T>
  2139. inline void CleanupClosePushL(T& aRef)
  2140. {CleanupClose<T>::PushL(aRef);}
  2141. template <class T>
  2142. inline void CleanupRelease<T>::PushL(T& aRef)
  2143. {CleanupStack::PushL(TCleanupItem(&Release,&aRef));}
  2144. template <class T>
  2145. void CleanupRelease<T>::Release(TAny *aPtr)
  2146. {((static_cast<T*>(aPtr)) )->Release();}
  2147. template <class T>
  2148. inline void CleanupReleasePushL(T& aRef)
  2149. {CleanupRelease<T>::PushL(aRef);}
  2150. #line 3245 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32base.h" /* stack depth 3 */
  2151. #line 14 "C:\Symbian\9.1\S60_3rd\epoc32\include\coecntrl.h" /* stack depth 2 */
  2152. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\w32std.h" /* stack depth 3 */
  2153. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\fntstore.h" /* stack depth 4 */
  2154. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\f32file.h" /* stack depth 5 */
  2155. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32svr.h" /* stack depth 6 */
  2156. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32hal.h" /* stack depth 7 */
  2157. #line 14
  2158. const TInt KMaxRomDevices=8;
  2159. #line 33
  2160. enum TDigitizerCalibrationType
  2161.     {
  2162.     EFactory,
  2163.     ESaved
  2164.     };
  2165. #line 61
  2166. class TDigitizerCalibration
  2167.     {
  2168. public:
  2169.     TPoint iTl;
  2170.     TPoint iBl;
  2171.     TPoint iTr;
  2172.     TPoint iBr;
  2173.     };
  2174. #line 83
  2175. enum TKeyboard
  2176. {
  2177. EKeyboard_Keypad=1,
  2178. EKeyboard_Full=2,
  2179. };
  2180. #line 115
  2181. class TKeyboardInfoV01
  2182. {
  2183. public:
  2184. TInt iDeviceKeys;
  2185. #line 135
  2186.     TInt iAppsKeys;
  2187. #line 148
  2188. TKeyboard iKeyboardType;
  2189.     };
  2190. #line 162
  2191. typedef TPckgBuf<TKeyboardInfoV01> TKeyboardInfoV01Buf;
  2192. #line 182
  2193. class TDigitiserInfoV01
  2194. {
  2195. public:
  2196. TPoint iOffsetToDisplay;
  2197. TSize iDigitiserSize;
  2198. };
  2199. #line 196
  2200. class TDigitiserInfoV02 : public TDigitiserInfoV01
  2201. {
  2202. TInt iZRange;
  2203. TUint8 iThetaSupported;
  2204. TUint8 iPhiSupported;
  2205. TUint8 iAlphaSupported;
  2206. TUint8 iPressureSupported;
  2207. };
  2208. #line 214
  2209. typedef TPckgBuf<TDigitiserInfoV01> TDigitiserInfoV01Buf;
  2210. #line 224
  2211. typedef TPckgBuf<TDigitiserInfoV02> TDigitiserInfoV02Buf;
  2212. #line 241
  2213. class TMouseInfoV01
  2214. {
  2215. public:
  2216. TInt iMouseButtons;
  2217. TPoint iOffsetToDisplay;
  2218. TSize iMouseAreaSize;
  2219. };
  2220. #line 260
  2221. typedef TPckgBuf<TMouseInfoV01> TMouseInfoV01Buf;
  2222. #line 279
  2223. class TVariantInfoV01
  2224. {
  2225. public:
  2226. TVersion iRomVersion;
  2227. SInt64 iMachineUniqueId;
  2228.     TUint iLedCapabilities;
  2229.     TInt iProcessorClockInKHz;
  2230.     TInt iSpeedFactor;
  2231.     };
  2232. #line 321
  2233. typedef TPckgBuf<TVariantInfoV01> TVariantInfoV01Buf;
  2234. #line 334
  2235. enum TMachineStartupType
  2236. {
  2237. EStartupCold,EStartupColdReset,EStartupNewOs,
  2238. EStartupPowerFail,EStartupWarmReset,EStartupKernelFault,
  2239. EStartupSafeReset
  2240. };
  2241. #line 350
  2242. enum TXYInputType
  2243. {
  2244. EXYInputNone,
  2245. EXYInputPointer,
  2246. EXYInputMouse,
  2247. EXYInputDeltaMouse
  2248. };
  2249. #line 367
  2250. class TMachineInfoV1
  2251. {
  2252. public:
  2253. TVersion iRomVersion;
  2254. TXYInputType iXYInputType;
  2255. TBool iKeyboardPresent;
  2256. TBool iBacklightPresent;
  2257.     TSize iDisplaySizeInPixels;
  2258.     TSize iXYInputSizeInPixels;
  2259.     TSize iPhysicalScreenSize;
  2260. TPoint iOffsetToDisplayInPixels;
  2261. TInt iKeyboardId;
  2262. TInt iDisplayId;
  2263. SInt64 iMachineUniqueId;
  2264.     TUint iLedCapabilities;
  2265.     TInt iProcessorClockInKHz;
  2266.     TInt iSpeedFactor;
  2267.     TInt iMaximumDisplayColors;
  2268. };
  2269. typedef TPckgBuf<TMachineInfoV1> TMachineInfoV1Buf;
  2270. #line 401
  2271. class TMachineInfoV2 : public TMachineInfoV1
  2272. {
  2273. public:
  2274. TInt iLanguageIndex;
  2275.     TInt iKeyboardIndex;
  2276.     };
  2277. typedef TPckgBuf<TMachineInfoV2> TMachineInfoV2Buf;
  2278. #line 422
  2279. class TMemoryInfoV1
  2280.     {
  2281. public:
  2282.     TInt iTotalRamInBytes;
  2283.     TInt iTotalRomInBytes;
  2284.     TInt iMaxFreeRamInBytes;
  2285.     TInt iFreeRamInBytes;
  2286.     TInt iInternalDiskRamInBytes;
  2287.     TBool iRomIsReprogrammable;
  2288.     };
  2289. typedef TPckgBuf<TMemoryInfoV1> TMemoryInfoV1Buf;
  2290. #line 447
  2291. class TRomInfoEntryV1
  2292. {
  2293. public:
  2294.     enum TRomTypeV1
  2295.      {
  2296.      ERomTypeRom=0,
  2297.      ERomTypeFlash=1
  2298.      };
  2299. TInt iSize;
  2300. TInt iWidth;
  2301. TInt iSpeed;
  2302. TRomTypeV1 iType;
  2303. };
  2304. #line 470
  2305. class TRomInfoV1
  2306. {
  2307. public:
  2308. TRomInfoEntryV1 iEntry[KMaxRomDevices];
  2309. };
  2310. typedef TPckgBuf<TRomInfoV1> TRomInfoV1Buf;
  2311. const TUint KRuggedFileSystem=0x01;
  2312. class TDriveInfoV1
  2313.     {
  2314. public:
  2315. TInt iTotalSupportedDrives;
  2316. TInfoName iDriveName[KMaxLocalDrives];
  2317. TInt iTotalSockets;
  2318. TInfoName iSocketName[KMaxPBusSockets];
  2319. TInt iRuggedFileSystem;
  2320. TUint iRegisteredDriveBitmask;
  2321. };
  2322. typedef TPckgBuf<TDriveInfoV1> TDriveInfoV1Buf;
  2323. class TDriveInfoV18
  2324.     {
  2325. public:
  2326. TInt iTotalSupportedDrives;
  2327. TBuf8<KMaxInfoName> iDriveName[KMaxLocalDrives];
  2328. TInt iTotalSockets;
  2329. TBuf8<KMaxInfoName> iSocketName[KMaxPBusSockets];
  2330. TInt iRuggedFileSystem;
  2331. TUint iRegisteredDriveBitmask;
  2332. };
  2333. typedef TPckgBuf<TDriveInfoV18> TDriveInfoV1Buf8;
  2334. #line 536
  2335. class TExcInfo
  2336. {
  2337. public:
  2338. TAny *iCodeAddress;
  2339. TAny *iDataAddress;
  2340. TInt iExtraData;
  2341. };
  2342. #line 575
  2343. class UserHal
  2344. {
  2345. public:
  2346. __declspec(dllexport) static TInt MemoryInfo(TDes8& anInfo);
  2347. __declspec(dllexport) static TInt RomInfo(TDes8& anInfo);
  2348. __declspec(dllexport) static TInt StartupReason(TMachineStartupType& aReason);
  2349. __declspec(dllexport) static TInt FaultReason(TInt &aReason);
  2350. __declspec(dllexport) static TInt ExceptionId(TInt &anId);
  2351. __declspec(dllexport) static TInt ExceptionInfo(TExcInfo &aInfo);
  2352. __declspec(dllexport) static TInt PageSizeInBytes(TInt& aSize);
  2353. __declspec(dllexport) static TInt MachineInfo(TDes8& anInfo);
  2354. __declspec(dllexport) static TInt TickPeriod(TTimeIntervalMicroSeconds32& aPeriod);
  2355. __declspec(dllexport) static TInt DriveInfo(TDes8& anInfo);
  2356.     __declspec(dllexport) static TInt SwitchOff();
  2357. __declspec(dllexport) static TInt SetXYInputCalibration(const TDigitizerCalibration& aCalibration);
  2358. __declspec(dllexport) static TInt CalibrationPoints(TDigitizerCalibration& aCalibration);
  2359. __declspec(dllexport) static TInt SaveXYInputCalibration();
  2360. __declspec(dllexport) static TInt RestoreXYInputCalibration(TDigitizerCalibrationType aType);
  2361. };
  2362. #line 8 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32svr.h" /* stack depth 6 */
  2363. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\d32locd.h" /* stack depth 7 */
  2364. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\partitions.h" /* stack depth 8 */
  2365. #line 15
  2366. const TUint KPartitionTypeEmpty=0x00;
  2367. const TUint KPartitionTypeFAT12=0x01;
  2368. const TUint KPartitionTypeXENIXroot=0x02;
  2369. const TUint KPartitionTypeXENIXusr=0x03;
  2370. const TUint KPartitionTypeFAT16small=0x04;
  2371. const TUint KPartitionTypeExtended=0x05;
  2372. const TUint KPartitionTypeFAT16=0x06;
  2373. const TUint KPartitionTypeNTFS=0x07;
  2374. const TUint KPartitionTypeAIX=0x08;
  2375. const TUint KPartitionTypeAIXboot=0x09;
  2376. const TUint KPartitionTypeOS2BootManager=0x0a;
  2377. const TUint KPartitionTypeWin95FAT32=0x0b;
  2378. const TUint KPartitionTypeWin95FAT32LBA=0x0c;
  2379. const TUint KPartitionTypeWin95FAT16LBA=0x0e;
  2380. const TUint KPartitionTypeWin95ExtdLBA=0x0f;
  2381. const TUint KPartitionTypeOPUS=0x10;
  2382. const TUint KPartitionTypeHiddenFAT12=0x11;
  2383. const TUint KPartitionTypeCompaqDiag=0x12;
  2384. const TUint KPartitionTypeHiddenFAT16small=0x14;
  2385. const TUint KPartitionTypeHiddenFAT16=0x16;
  2386. const TUint KPartitionTypeHiddenNTFS=0x17;
  2387. const TUint KPartitionTypeASTSmartSleep=0x18;
  2388. const TUint KPartitionTypeHiddenWin95FAT32=0x1b;
  2389. const TUint KPartitionTypeHiddenWin95FAT32LBA=0x1c;
  2390. const TUint KPartitionTypeHiddenWin95FAT16LBA=0x1e;
  2391. const TUint KPartitionTypeNECDOS=0x24;
  2392. const TUint KPartitionTypePlan9=0x39;
  2393. const TUint KPartitionTypePartitionMagic=0x3c;
  2394. const TUint KPartitionTypeVenix80286=0x40;
  2395. const TUint KPartitionTypePPCPRePBoot=0x41;
  2396. const TUint KPartitionTypeSFS=0x42;
  2397. const TUint KPartitionTypeQNX4x=0x4d;
  2398. const TUint KPartitionTypeQNX4x_2=0x4e;
  2399. const TUint KPartitionTypeQNX4x_3=0x4f;
  2400. const TUint KPartitionTypeOnTrackDM=0x50;
  2401. const TUint KPartitionTypeOnTrackDM6Aux=0x51;
  2402. const TUint KPartitionTypeCPM=0x52;
  2403. const TUint KPartitionTypeOnTrackDM6Aux_2=0x53;
  2404. const TUint KPartitionTypeOnTrackDM6=0x54;
  2405. const TUint KPartitionTypeEZDrive=0x55;
  2406. const TUint KPartitionTypeGoldenBow=0x56;
  2407. const TUint KPartitionTypePriamEdisk=0x5c;
  2408. const TUint KPartitionTypeSpeedStor=0x61;
  2409. const TUint KPartitionTypeGNU_HURD=0x63;
  2410. const TUint KPartitionTypeNovellNetware=0x64;
  2411. const TUint KPartitionTypeNovellNetware_2=0x65;
  2412. const TUint KPartitionTypeDiskSecure=0x70;
  2413. const TUint KPartitionTypePCIX=0x75;
  2414. const TUint KPartitionTypeOldMinix=0x80;
  2415. const TUint KPartitionTypeMinixOldLinux=0x81;
  2416. const TUint KPartitionTypeLinuxSwap=0x82;
  2417. const TUint KPartitionTypeLinux=0x83;
  2418. const TUint KPartitionTypeOS2Hidden=0x84;
  2419. const TUint KPartitionTypeLinuxExtended=0x85;
  2420. const TUint KPartitionTypeNTFSvolset=0x86;
  2421. const TUint KPartitionTypeNTFSvolset_2=0x87;
  2422. const TUint KPartitionTypeLinuxLVM=0x8e;
  2423. const TUint KPartitionTypeAmoeba=0x93;
  2424. const TUint KPartitionTypeAmoebaBBT=0x94;
  2425. const TUint KPartitionTypeBSD_OS=0x9f;
  2426. const TUint KPartitionTypeIBMThinkpad=0xa0;
  2427. const TUint KPartitionTypeFreeBSD=0xa5;
  2428. const TUint KPartitionTypeOpenBSD=0xa6;
  2429. const TUint KPartitionTypeNeXTSTEP=0xa7;
  2430. const TUint KPartitionTypeNetBSD=0xa9;
  2431. const TUint KPartitionTypeBSDIfs=0xb7;
  2432. const TUint KPartitionTypeBSDIswap=0xb8;
  2433. const TUint KPartitionTypeBootWizardHidden=0xbb;
  2434. const TUint KPartitionTypeDRDOS=0xc1;
  2435. const TUint KPartitionTypeDRDOS_2=0xc4;
  2436. const TUint KPartitionTypeDRDOS_3=0xc6;
  2437. const TUint KPartitionTypeSyrinx=0xc7;
  2438. const TUint KPartitionTypeNonFSData=0xda;
  2439. const TUint KPartitionTypeCPM_CTOS=0xdb;
  2440. const TUint KPartitionTypeDellUtility=0xde;
  2441. const TUint KPartitionTypeBootIt=0xdf;
  2442. const TUint KPartitionTypeDOSaccess=0xe1;
  2443. const TUint KPartitionTypeDOS_RO=0xe3;
  2444. const TUint KPartitionTypeSymbianCrashLog=0xf0;
  2445. const TUint KPartitionTypeSpeedStor_2=0xf1;
  2446. const TUint KPartitionTypeDOSsecondary=0xf2;
  2447. const TUint KPartitionTypeSpeedStor_3=0xf4;
  2448. const TUint KPartitionTypeRofs=0xfa;
  2449. const TUint KPartitionTypeIso9660=0xfb;
  2450. const TUint KPartitionTypeEneaLFFS=0xfc;
  2451. const TUint KPartitionTypeLinuxRaidAuto=0xfd;
  2452. const TUint KPartitionTypeLANStep=0xfe;
  2453. const TUint KPartitionTypeBBT=0xff;
  2454. inline TBool PartitionIsFAT(TUint a)
  2455. {
  2456. return (
  2457. a==KPartitionTypeFAT12 ||
  2458. a==KPartitionTypeFAT16small ||
  2459. a==KPartitionTypeFAT16 ||
  2460. a==KPartitionTypeFAT16 ||
  2461. a==KPartitionTypeWin95FAT16LBA ||
  2462. a==KPartitionTypeHiddenFAT12 ||
  2463. a==KPartitionTypeHiddenFAT16small ||
  2464. a==KPartitionTypeHiddenFAT16 ||
  2465. a==KPartitionTypeHiddenWin95FAT16LBA
  2466. );
  2467. }
  2468. inline TBool PartitionIsFAT32(TUint a)
  2469. {
  2470. return (
  2471. a==KPartitionTypeWin95FAT32 ||
  2472. a==KPartitionTypeWin95FAT32LBA ||
  2473. a==KPartitionTypeHiddenWin95FAT32 ||
  2474. a==KPartitionTypeHiddenWin95FAT32LBA
  2475. );
  2476. }
  2477. inline TBool PartitionIsNTFS(TUint a)
  2478. {
  2479. return (
  2480. a==KPartitionTypeNTFS ||
  2481. a==KPartitionTypeHiddenNTFS
  2482. );
  2483. }
  2484. const TUint KBootIndicatorBootable=0x80;
  2485. class TMBRPartitionEntry
  2486. {
  2487. public:
  2488. TBool IsValidPartition()
  2489. { return (iNumSectors>0 && iPartitionType!=KPartitionTypeEmpty); }
  2490. TBool IsValidDosPartition()
  2491. { return (iNumSectors>0 && PartitionIsFAT(iPartitionType)); }
  2492. TBool IsDefaultBootPartition()
  2493. { return(iX86BootIndicator==KBootIndicatorBootable && (IsValidDosPartition() || IsValidFAT32Partition())); }
  2494. TBool IsValidFAT32Partition()
  2495. { return (iNumSectors>0 && PartitionIsFAT32(iPartitionType)); }
  2496. public:
  2497. TUint8 iX86BootIndicator;
  2498. TUint8 iStartHead;
  2499. TUint8 iStartSector;
  2500. TUint8 iStartCylinder;
  2501. TUint8 iPartitionType;
  2502. TUint8 iEndHead;
  2503. TUint8 iEndSector;
  2504. TUint8 iEndCylinder;
  2505. TUint32 iFirstSector;
  2506. TUint32 iNumSectors;
  2507. };
  2508. const TUint KMBRFirstPartitionOffset=0x1BE;
  2509. const TUint KMBRSignatureOffset=0x1FE;
  2510. const TUint KMBRSignature=0xAA55;
  2511. const TInt KMBRMaxPrimaryPartitions=4;
  2512. class TMasterBootRecord
  2513. {
  2514. public:
  2515. TUint8 iBootCode[KMBRFirstPartitionOffset];
  2516. TMBRPartitionEntry iPartitionEntry[KMBRMaxPrimaryPartitions];
  2517. TUint16 iSignature;
  2518. };
  2519. #line 9 "C:\Symbian\9.1\S60_3rd\epoc32\include\d32locd.h" /* stack depth 7 */
  2520. #line 21
  2521. enum TMediaDevice { EFixedMedia0, EFixedMedia1, EFixedMedia2, EFixedMedia3,
  2522. EFixedMedia4, EFixedMedia5, EFixedMedia6, EFixedMedia7,
  2523. ERemovableMedia0, ERemovableMedia1, ERemovableMedia2, ERemovableMedia3,
  2524. EInvalidMedia
  2525. };
  2526. #line 36
  2527. typedef signed int TSocket;
  2528. class TLDriveAssignInfo
  2529. {
  2530. public:
  2531. TMediaDevice iDevice;
  2532. TInt iPriority;
  2533. };
  2534. class TMediaDeviceAssignInfo
  2535. {
  2536. public:
  2537. TInt iFirstMedia;
  2538. TInt iLastMedia;
  2539. };
  2540. class TLocalDriveCaps
  2541. {
  2542. public:
  2543. __declspec(dllexport) TLocalDriveCaps();
  2544. public:
  2545. TInt64 iSize;
  2546. TMediaType iType;
  2547. TBatteryState iBattery;
  2548. TUint iDriveAtt;
  2549. TUint iMediaAtt;
  2550.     TUint8* iBaseAddress;
  2551. TUint16 iFileSystemId;
  2552. TUint16 iPartitionType;
  2553. };
  2554. typedef TPckgBuf<TLocalDriveCaps> TLocalDriveCapsBuf;
  2555. class TLocalDriveCapsV2 : public TLocalDriveCaps
  2556. {
  2557. public:
  2558. TUint iHiddenSectors;
  2559. TUint iEraseBlockSize;
  2560.     };
  2561. typedef TPckgBuf<TLocalDriveCapsV2> TLocalDriveCapsV2Buf;
  2562. class TLDFormatInfo
  2563. {
  2564. public:
  2565. TInt64 iCapacity;
  2566. TUint16 iSectorsPerCluster;
  2567. TUint16 iSectorsPerTrack;
  2568. TUint16 iNumberOfSides;
  2569. enum TFATBits {EFBDontCare, EFB12 = 12, EFB16 = 16, EFB32 = 32};
  2570. TFATBits iFATBits;
  2571. TUint32 iPad;
  2572. };
  2573. typedef TPckgBuf<TLDFormatInfo> TSpecialFormatInfoBuf;
  2574. class TLocalDriveCapsV3 : public TLocalDriveCapsV2
  2575. {
  2576. public:
  2577. TLDFormatInfo iFormatInfo;
  2578. TBool iExtraInfo;
  2579. TInt iMaxBytesPerFormat;
  2580.     };
  2581. void __compile_time_assert(int __check[((((TInt)&(((TLocalDriveCaps *)0x1000)->iSize))-0x1000)%8 == 0)?1:-1]) ;
  2582. void __compile_time_assert(int __check[((((TInt)&(((TLocalDriveCapsV3 *)0x1000)->iFormatInfo.iCapacity))-0x1000) % 8 == 0)?1:-1]) ;
  2583. typedef TPckgBuf<TLocalDriveCapsV3> TLocalDriveCapsV3Buf;
  2584. class TLocalDriveCapsV4 : public TLocalDriveCapsV3
  2585. {
  2586. public:
  2587. TInt iNumOfBlocks;
  2588. TInt iNumPagesPerBlock;
  2589. TInt iNumBytesMain;
  2590. TInt iNumBytesSpare;
  2591. TInt iEffectiveBlks;
  2592. TInt iStartPage;
  2593.     };
  2594. typedef TPckgBuf<TLocalDriveCapsV4> TLocalDriveCapsV4Buf;
  2595. typedef TBuf8<64 > TMediaSerialNumber;
  2596. class TLocalDriveCapsV5 : public TLocalDriveCapsV4
  2597. {
  2598. public:
  2599.     TUint iSerialNumLength;
  2600. TUint8 iSerialNum[64 ];
  2601. };
  2602. typedef TPckgBuf<TLocalDriveCapsV5> TLocalDriveCapsV5Buf;
  2603. class TFormatInfo
  2604. {
  2605. public:
  2606. __declspec(dllexport) TFormatInfo();
  2607. public:
  2608. TBool iFormatIsCurrent;
  2609. TInt i512ByteSectorsFormatted;
  2610. TInt iMaxBytesPerFormat;
  2611. };
  2612. class TErrorInfo
  2613. {
  2614. public:
  2615. enum TReasonCode
  2616. {
  2617. ENoError=0,
  2618. EBadSector=1,
  2619. };
  2620. public:
  2621.     TReasonCode iReasonCode;
  2622. union
  2623. {
  2624. TInt64 iErrorPos;
  2625.         TInt iOtherInfo;
  2626. };
  2627.     };
  2628. typedef TPckgBuf<TErrorInfo> TErrorInfoBuf;
  2629. class TLocalDriveMessageData
  2630. {
  2631. public:
  2632. inline TLocalDriveMessageData()
  2633. {}
  2634. inline TLocalDriveMessageData(TInt64 aPos, TInt aLength, const TAny* aPtr, TInt aHandle, TInt anOffset, TInt aFlags)
  2635. : iPos(aPos), iLength(aLength), iPtr(aPtr), iHandle(aHandle), iOffset(anOffset), iFlags(aFlags)
  2636. {}
  2637. public:
  2638. TInt64 iPos;
  2639. TInt iLength;
  2640. const TAny* iPtr;
  2641. TInt iHandle;
  2642. TInt iOffset;
  2643. TInt iFlags;
  2644. };
  2645. class TLocalDriveControlIOData
  2646. {
  2647. public:
  2648. inline TLocalDriveControlIOData()
  2649. {}
  2650. inline TLocalDriveControlIOData(TInt aCommand, TAny* aParam1, TAny* aParam2, TInt aHandle)
  2651. : iCommand(aCommand), iParam1(aParam1), iParam2(aParam2), iHandle(aHandle)
  2652. {}
  2653. public:
  2654. TInt iCommand;
  2655. TAny* iParam1;
  2656. TAny* iParam2;
  2657. TInt iHandle;
  2658. };
  2659. class TLocalDrivePasswordData
  2660. {
  2661. public:
  2662. TLocalDrivePasswordData(const TDesC8& aOldPasswd, const TDesC8& aNewPasswd, TBool aStorePasswd)
  2663. : iOldPasswd(&aOldPasswd), iNewPasswd(&aNewPasswd), iStorePasswd(aStorePasswd)
  2664. {}
  2665. TLocalDrivePasswordData()
  2666. : iOldPasswd(&KNullDesC8), iNewPasswd(&KNullDesC8), iStorePasswd(EFalse)
  2667. {}
  2668. public:
  2669. const TDesC8 *iOldPasswd;
  2670. const TDesC8 *iNewPasswd;
  2671. TBool iStorePasswd;
  2672. };
  2673. typedef TPckgBuf<TLocalDrivePasswordData> TLocalDrivePasswordDataPckg;
  2674. class TPasswordStore
  2675. {
  2676. public:
  2677. virtual TInt Init()=0;
  2678. virtual TInt ReadPasswordData(TDes8 &aBuf)=0;
  2679. virtual TInt WritePasswordData(TDesC8 &aBuf)=0;
  2680. virtual TInt PasswordStoreLengthInBytes()=0;
  2681. enum {EMaxPasswordLength=256};
  2682. };
  2683. class TMountInfoData
  2684. {
  2685. public:
  2686. TDesC8* iInfo;
  2687. TAny* iThread;
  2688. };
  2689. const TInt KLocalDriveMajorVersion=1;
  2690. const TInt KLocalDriveMinorVersion=0;
  2691. const TInt KLocalDriveBuildVersion=160;
  2692. const static TLitC<sizeof(L"LocDrv")/2> KLitLocalDriveLddName={sizeof(L"LocDrv")/2-1,L"LocDrv"} ;
  2693. const TInt KLocalMessageHandle=-1;
  2694. class RLocalDrive : public RBusLogicalChannel
  2695. {
  2696. public:
  2697. enum TControl
  2698. {
  2699. EControlRead=0,
  2700. EControlWrite=1,
  2701. EControlCaps=2,
  2702. EControlFormat=3,
  2703. EControlEnlarge=4,
  2704. EControlReduce=5,
  2705. EControlForceMediaChange=6,
  2706. EControlMediaDevice=7,
  2707. EControlPasswordLock=8,
  2708. EControlPasswordUnlock=9,
  2709. EControlPasswordClear=10,
  2710. EControlNotifyChange=11,
  2711. EControlNotifyChangeCancel=12,
  2712. EControlReadPasswordStore=13,
  2713. EControlWritePasswordStore=14,
  2714. EControlPasswordStoreLengthInBytes=15,
  2715. EControlIsRemovable=16,
  2716. EControlSetMountInfo=17,
  2717. EControlControlIO=18,
  2718. EControlPasswordErase=19,
  2719. EControlDeleteNotify=20,
  2720. EControlGetLastErrorInfo=21,
  2721. };
  2722. enum TRemountFlags
  2723. {
  2724. ELocDrvRemountNotifyChange    = 0,
  2725. ELocDrvRemountForceMediaChange = 1,
  2726. };
  2727. public:
  2728. inline TVersion VersionRequired() const;
  2729. inline TInt Connect(TInt aDriveNumber, TBool& aChangedFlag);
  2730. inline TInt Enlarge(TInt aLength);
  2731. inline TInt Reduce(TInt aPos, TInt aLength);
  2732. inline TInt Read(TInt64 aPos, TInt aLength, const TAny* aTrg, TInt aMessageHandle, TInt aOffset, TInt aFlags);
  2733. inline TInt Read(TInt64 aPos, TInt aLength, const TAny* aTrg, TInt aMessageHandle, TInt anOffset);
  2734. inline TInt Read(TInt64 aPos, TInt aLength, TDes8& aTrg);
  2735. inline TInt Write(TInt64 aPos, TInt aLength, const TAny* aSrc, TInt aMessageHandle, TInt aOffset, TInt aFlags);
  2736. inline TInt Write(TInt64 aPos, TInt aLength, const TAny* aSrc, TInt aMessageHandle, TInt anOffset);
  2737. inline TInt Write(TInt64 aPos, const TDesC8& aSrc);
  2738. inline TInt Caps(TDes8& anInfo);
  2739. inline TInt Format(TInt64 aPos, TInt aLength);
  2740. inline TInt ForceMediaChange(TInt aMode=0);
  2741. inline void NotifyChange(TRequestStatus* aStatus);
  2742. inline void NotifyChangeCancel();
  2743. inline TInt SetMountInfo(const TDesC8* aInfo,TInt aMessageHandle);
  2744. inline TMediaDevice MediaDevice();
  2745. inline TInt IsRemovable(TInt& aSocketNum);
  2746. inline TInt ControlIO(TInt aCommand, TAny* aParam1, TAny* aParam2);
  2747. inline TInt Unlock(const TDesC8& aPassword, TBool aStorePassword);
  2748. inline TInt SetPassword(const TDesC8& aOldPassword, const TDesC8& aNewPassword, TBool aStorePassword);
  2749. inline TInt Clear(const TDesC8& aPassword);
  2750. inline TInt ErasePassword();
  2751. inline TInt ReadPasswordData(TDesC8& aStoreData);
  2752. inline TInt WritePasswordData(const TDesC8& aStoreData);
  2753. inline TInt PasswordStoreLengthInBytes();
  2754. inline TInt DeleteNotify(TInt64 aPos, TInt aLength);
  2755. inline TInt GetLastErrorInfo(TDesC8& aErrorInfo);
  2756. };
  2757. class TBusLocalDrive : public RLocalDrive
  2758. {
  2759. public:
  2760. __declspec(dllexport) TBusLocalDrive();
  2761. __declspec(dllexport) TInt Connect(TInt aDriveNumber, TBool& aChangedFlag);
  2762. __declspec(dllexport) void Disconnect();
  2763. __declspec(dllexport) TInt Enlarge(TInt aLength);
  2764. __declspec(dllexport) TInt ReduceSize(TInt aPos, TInt aLength);
  2765. __declspec(dllexport) TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aMessageHandle,TInt aOffset,TInt aFlags);
  2766. __declspec(dllexport) TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aMessageHandle,TInt anOffset);
  2767. __declspec(dllexport) TInt Read(TInt64 aPos,TInt aLength,TDes8& aTrg);
  2768. __declspec(dllexport) TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aMessageHandle,TInt aOffset,TInt aFlags);
  2769. __declspec(dllexport) TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aMessageHandle,TInt anOffset);
  2770. __declspec(dllexport) TInt Write(TInt64 aPos,const TDesC8& aSrc);
  2771. __declspec(dllexport) TInt Caps(TDes8& anInfo);
  2772. __declspec(dllexport) TInt Format(TFormatInfo& anInfo);
  2773. __declspec(dllexport) TInt Format(TInt64 aPos,TInt aLength);
  2774. __declspec(dllexport) TInt SetMountInfo(const TDesC8* aMountInfo,TInt aMessageHandle);
  2775. __declspec(dllexport) TInt ForceRemount(TUint aFlags=0);
  2776. __declspec(dllexport) TInt ControlIO(TInt aCommand, TAny* aParam1, TAny* aParam2);
  2777. __declspec(dllexport) TInt Unlock(const TDesC8& aPassword, TBool aStorePassword);
  2778. __declspec(dllexport) TInt SetPassword(const TDesC8& aOldPassword, const TDesC8& aNewPassword, TBool aStorePassword);
  2779. __declspec(dllexport) TInt Clear(const TDesC8& aPassword);
  2780. __declspec(dllexport) TInt ErasePassword();
  2781. __declspec(dllexport) TInt ReadPasswordData(TDes8 &aBuf);
  2782. __declspec(dllexport) TInt WritePasswordData(const TDesC8 &aBuf);
  2783. __declspec(dllexport) TInt PasswordStoreLengthInBytes();
  2784. __declspec(dllexport) TInt DeleteNotify(TInt64 aPos, TInt aLength);
  2785. __declspec(dllexport) TInt GetLastErrorInfo(TDes8& aErrorInfo);
  2786. public:
  2787. inline TInt& Status() {return(iStatus);}
  2788. private:
  2789. TInt CheckMount();
  2790. private:
  2791. TInt iStatus;
  2792. };
  2793. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\d32locd.inl" /* stack depth 8 */
  2794. inline TVersion RLocalDrive::VersionRequired() const
  2795. { return TVersion(KLocalDriveMajorVersion,KLocalDriveMinorVersion,KLocalDriveBuildVersion); }
  2796. inline TInt RLocalDrive::Connect(TInt aDriveNumber, TBool& aChangedFlag)
  2797. { return DoCreate(KLitLocalDriveLddName,VersionRequired(),aDriveNumber,0 ,(const TDesC8*)&aChangedFlag,EOwnerProcess); }
  2798. inline TInt RLocalDrive::Enlarge(TInt aLength)
  2799. { return DoControl(EControlEnlarge, (TAny*)aLength); }
  2800. inline TInt RLocalDrive::Reduce(TInt aPos, TInt aLength)
  2801. { return DoControl(EControlReduce, (TAny*)aPos, (TAny*)aLength); }
  2802. inline TInt RLocalDrive::Read(TInt64 aPos, TInt aLength, const TAny* aTrg, TInt aMessageHandle, TInt aOffset, TInt aFlags)
  2803. { TLocalDriveMessageData d(aPos,aLength,aTrg,aMessageHandle,aOffset,aFlags); return DoControl(EControlRead, &d); }
  2804. inline TInt RLocalDrive::Read(TInt64 aPos, TInt aLength, const TAny* aTrg, TInt aMessageHandle, TInt anOffset)
  2805. { TLocalDriveMessageData d(aPos,aLength,aTrg,aMessageHandle,anOffset,0); return DoControl(EControlRead, &d); }
  2806. inline TInt RLocalDrive::Read(TInt64 aPos, TInt aLength, TDes8& aTrg)
  2807. { TLocalDriveMessageData d(aPos,aLength,&aTrg,KLocalMessageHandle,0,0); return DoControl(EControlRead, &d); }
  2808. inline TInt RLocalDrive::Write(TInt64 aPos, TInt aLength, const TAny* aSrc, TInt aMessageHandle, TInt aOffset, TInt aFlags)
  2809. { TLocalDriveMessageData d(aPos,aLength,aSrc,aMessageHandle,aOffset,aFlags); return DoControl(EControlWrite, &d); }
  2810. inline TInt RLocalDrive::Write(TInt64 aPos, TInt aLength, const TAny* aSrc, TInt aMessageHandle, TInt anOffset)
  2811. { TLocalDriveMessageData d(aPos,aLength,aSrc,aMessageHandle,anOffset,0); return DoControl(EControlWrite, &d); }
  2812. inline TInt RLocalDrive::Write(TInt64 aPos, const TDesC8& aSrc)
  2813. { TLocalDriveMessageData d(aPos,aSrc.Length(),&aSrc,KLocalMessageHandle,0,0); return DoControl(EControlWrite, &d); }
  2814. inline TInt RLocalDrive::Caps(TDes8& anInfo)
  2815. { return DoControl(EControlCaps, &anInfo); }
  2816. inline TInt RLocalDrive::Format(TInt64 aPos, TInt aLength)
  2817. { TLocalDriveMessageData d(aPos,aLength,0 ,KLocalMessageHandle,0,0); return DoControl(EControlFormat, &d); }
  2818. inline TInt RLocalDrive::ForceMediaChange(TInt aMode)
  2819. { return DoControl(EControlForceMediaChange, (TAny*)aMode); }
  2820. inline void RLocalDrive::NotifyChange(TRequestStatus* aStatus)
  2821. { *aStatus=KRequestPending; DoControl(EControlNotifyChange, aStatus); }
  2822. inline void RLocalDrive::NotifyChangeCancel()
  2823. { DoControl(EControlNotifyChangeCancel); }
  2824. inline TMediaDevice RLocalDrive::MediaDevice()
  2825. { return (TMediaDevice)DoControl(EControlMediaDevice); }
  2826. inline TInt RLocalDrive::SetMountInfo(const TDesC8* aInfo,TInt aMessageHandle)
  2827. { TLocalDriveMessageData d(0,0,aInfo,aMessageHandle,0,0); return DoControl(EControlSetMountInfo, &d); }
  2828. inline TInt RLocalDrive::IsRemovable(TInt& aSocketNum)
  2829. { return DoControl(EControlIsRemovable,&aSocketNum); }
  2830. inline TInt RLocalDrive::ControlIO(TInt aCommand, TAny* aParam1, TAny* aParam2)
  2831. { TLocalDriveControlIOData d(aCommand,aParam1,aParam2,KLocalMessageHandle); return DoControl(EControlControlIO,&d); }
  2832. inline TInt RLocalDrive::Unlock(const TDesC8& aPassword, TBool aStorePassword)
  2833. { TLocalDrivePasswordData d((TDesC8&)aPassword, (TDesC8&)aPassword, aStorePassword); return DoControl(EControlPasswordUnlock, &d); }