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

Symbian

开发平台:

C/C++

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