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

Symbian

开发平台:

C/C++

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