home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / yeah09.zip / source / help / YEAH.IPF < prev   
Text File  |  1996-05-25  |  126KB  |  3,345 lines

  1. .*------------------------------------------------------------
  2. .*
  3. .* Name:     yeah.ipf
  4. .* Version:  0.9
  5. .* Author:   Björn Fahller.
  6. .*
  7. .* Copyright (C) Björn Fahller, 1996.
  8. .*
  9. .* Purpose:  Documentation for YEAH.
  10. .*
  11. .* History:
  12. .*          Ver.  Date         What
  13. .*          0.9   1996-05-26   First official release.
  14. .*
  15. .*------------------------------------------------------------
  16.  
  17. :userdoc.
  18. :prolog.
  19. :title.YEA.H - Your Extended Attribute Helper
  20. :eprolog.
  21.  
  22. .nameit symbol=version text='0.9'
  23.  
  24. :h1 width=30% height=100% id=start res=100 group=1.About YEA.H
  25. .br
  26. :i1.About YEA.H
  27. This reference introduce you to YEA.H, a C++ frame work for
  28. extended attributes.
  29. .*--------------------------------
  30. :p.
  31. :link  reftype=hd res=101 auto dependent group=2.
  32. :sl compact.
  33. :li.:link  reftype=hd res=101 dependent group=2.Introduction:elink.
  34. :li.:link  reftype=hd res=103 dependent group=2.Licence agreement:elink.
  35. :li.:link  reftype=hd res=104 dependent group=2.Trade marks:elink.
  36. :li.:link  reftype=hd res=105 dependent group=2.Contacting the author:elink.
  37. :li.:link  reftype=hd res=106 dependent group=2.Publishing EA classes:elink.
  38. :li.:link  reftype=hd res=107 dependent group=2.Limitations:elink.
  39. :esl.
  40. :h2 res=101 x=30% width=70% height=100%. Introduction.
  41. .br
  42. :hp2.Introducing YEA.H - Your Extended Attribute Helper:ehp2.
  43. :p.
  44. YEA.H is an Object Oriented C++ frame work making it simple for you to support
  45. extended attributes in your software.
  46. :p.
  47. YEA.H is designed to be:
  48. :ul.
  49. :li.Easy to use as a class library, to immediately gain support for some of
  50. the most frequently used extended attributes.
  51. :li.Easy to extend with new extended attributes, or make custom implementations
  52. for some of the supported attributes.
  53. :eul.
  54. :h2 res=103 x=30% width=70% height=100%. Licence agreement.
  55. .br
  56. YEAH, its compiled library, source code, and documentation, is
  57. licensed to you under the following license agreement. Use or
  58. distribution of YEAH constitutes your acceptance of that
  59. agreement.
  60. :p.
  61. YEAH, the compiled library, source code and, documentation, is
  62. the copyrighted material of Bj&oe.rn Fahller.
  63. :p.
  64. Under this licence, you may:
  65.  
  66. :ol.
  67. :li.Redistribute YEAH in any way for and shape, suitable to you
  68. as long as the original contents remain unchanged and that the
  69. redistribution is free (fees to cover media and transfer costs
  70. are allowed.)
  71.  
  72. :li.Use YEAH, in your applications, be they free, shareware,
  73. educational or commercial.
  74.  
  75. :li.Write and publish additional classes to YEAH, as long as
  76. those additional classes are published with the same licence
  77. constraints as YEAH.
  78.  
  79. :li.Make proprietary changes to YEAH, provided you do not
  80. redistribute YEAH with those changes.
  81. :eol.
  82. :p.
  83. :hp7.Warranty:ehp7.
  84. :p.
  85. :hp2.
  86. BECAUSE YEAH IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
  87. FOR THE PROGRAM, TO THE EXTENT PERMITTED BY LAW. USE YEAH AT
  88. YOUR OWN RISK.
  89. :p.
  90. IN NO EVENT SHALL BJ&Oe.RN FAHLLER BE HELD LIABLE FOR ANY DAMAGE
  91. DUE TO THE USE, ABUSE, OR INABILITY TO USE, YEAH.
  92. :ehp2.
  93.  
  94. :h2 res=104 x=30% width=70% height=100%. Trade Marks.
  95. .br
  96. IBM, Visual Age C++ and Open Class Library are registered trade
  97. marks of International Business Machines Inc.
  98. :p.
  99. C++ is (I think) a registered trademark of Unix Systems Laboratories.
  100. :p.
  101.  
  102. :h2 res=105 x=30% width=70% height=100%. Contacting the Author.
  103. .br
  104. If you have questions, suggestions, want to report bugs, include
  105. new classes in the base package, or for other reasons would like
  106. to get in youch with Bj&oe.rn Fahller, he can be reached in the
  107. following ways&colon.
  108. :parml break=none.
  109. :pt.E-mail&colon.
  110. :pd.bjorn&atsign.algonet.se
  111. :pt.Mail&colon.
  112. :pd.Bj&oe.rn Fahller
  113. .br
  114. Siljansv&ae.gen 35
  115. .br
  116. S-120 55 &Ao.rsta
  117. .br
  118. SWEDEN.
  119. :pt.Phone&colon.
  120. :pd.+46 8 918297 (evenings CET)
  121. :pt.Fax&colon.
  122. :pd.+46 8 918297 (daytime CET)
  123. :eparml.
  124. :p.
  125. The newsgroup comp.os.os2.programmer.oop will also be monitored
  126. for discussions regarding YEA.H, but my newsfeed is very slow,
  127. often lagging up to a week, so this is most probably not the best
  128. way to get quick responses.
  129. :p.
  130. :h2 res=106 x=30% width=70% height=100%. Publishing EA classes.
  131. .br
  132. If you want to publish concrete extended attribute classes based on
  133. YEA.H, you have 3 choises within the :link reftype=hd res=103
  134. dependent group=2.licence agreement:elink..
  135. :ol.
  136. :li.Publish the class on your own, with the same :link reftype=hd
  137. res=103 dependent group=3.licence constraints:elink. as
  138. YEA.H, i.e. free of charge and with source code.
  139. :li.Publish it as a "contribution" to YEA.H. Future releases of YEA.H
  140. will have a "contrib" subdirectory, with such classes. You will be the
  141. copyright holder for such a contribution, hold the full responsibility
  142. for it, document it as you please. The compiled library file, or object
  143. file, will be your responsibility too, and it will not be a part of
  144. YEAH.LIB.
  145. :li.Publish it as a part of YEAH. The difference between this and the
  146. previous, is that the compiled object file will be included in YEAH.LIB,
  147. that the documentation will be included in future versions of YEAH.INF,
  148. that I want to have a say about the way the class is shaped. You still
  149. remain the copyright holder, and hold the full responsibility for
  150. your classes.
  151. :p.
  152. If you have plans for such a class, or a set of such classes, please
  153. :link reftype=hd res=105 dependent group=2.contact me:elink. and tell
  154. me of your plans. If some one else is also working on a similar class,
  155. I will introduce you to each other, so that you may share ideas and,
  156. if you so wish, cooperate.
  157. :eol.
  158. :p.
  159. For the latter kind, I would specifically like to see an icon
  160. class, and a C++ stream based binary class. Bitmap and metafile
  161. extended attribute classes would be most welcome too.
  162.  
  163. :h2 res=107 x=30% width=70% height=100%. Limitations.
  164. .br
  165. YEA.H can currently only be used with IBM Visual Age C++, since it
  166. makes use of a Visual Age C++ specific #pragma directive (
  167. #pragma define(IKeySortedSet<EA&colon.&colon.Name, IString>)),
  168. which expands the template, regardless of whether it is used
  169. in your application or not. Not doing this results in a link
  170. error. In the future, this will be removed, since the C++
  171. construct IKeySortedSet<EA&colon.&colon.Name, IString>; is
  172. defined by the proposed ANSI/ISO C++ standard to expand the
  173. template.
  174. :p.
  175. As can be seen, it also makes use of classes IKeySortedSet and
  176. IString, which are part of IBM Open Class Library. Once enough
  177. parts of the proposed ANSI/ISO C++ standard are commonplace in
  178. compilers, a compiler independent version will be written, since
  179. the ANSI/ISO C++ standard will include the necessary collection
  180. classes and a string class.
  181.  
  182. :h1 width=30% height=100% res=200 group=1.Classes
  183. :i1.Classes
  184. .br
  185. These are the classes available in version &version. of YEA.H
  186. :p.
  187. :sl compact.
  188. :li.:link  reftype=hd res=201 dependent group=1.EA.:elink.
  189. :li.:link  reftype=hd res=202 dependent group=1.StringEA.:elink.
  190. :li.:link  reftype=hd res=203 dependent group=1.MTSequenceEA.:elink.
  191. :li.:link  reftype=hd res=204 dependent group=1.TSequenceEA<T>.:elink.
  192. :li.:link  reftype=hd res=205 dependent group=1.TEA<T, EA&colon.&colon.Identifier>.:elink.
  193. :li.:link  reftype=hd res=206 dependent group=1.SequenceEA.:elink.
  194. :esl.
  195.  
  196. .*************************************************
  197. .**
  198. .** class EA
  199. .**
  200. .*************************************************
  201.  
  202. :h2 res=201 group=1 width=30% height=100%. EA.
  203. .br
  204. EA, Extended Attribute base class.
  205. :link  reftype=hd res=210 auto dependent group=2.
  206. :sl compact.
  207. :li.:link  reftype=hd res=210 dependent group=2.Description.:elink.
  208. :li.:link  reftype=hd res=211 dependent group=2.Derivation.:elink.
  209. :li.:link  reftype=hd res=212 dependent group=2.Public Interface.:elink.
  210. :li.:link  reftype=hd res=213 dependent group=2.Protected Interface.:elink.
  211. :esl.
  212. :h3 hide res=210 x=30% width=70% height=100%. EA - Description.
  213. .br
  214. EA is the base class for all extended attributes. Most of the use of EA
  215. directly is through the many static functions for handling extended
  216. attributes in general. Most use of EA, however, will be indirectly, through
  217. objects of other classes, implementing concrete extended attributes.
  218. :h3 hide res=211 x=30% width=70% height=100%. EA - Derivation.
  219. .br
  220. Inherits:
  221. :sl.
  222. :li.none.
  223. :esl.
  224. :p.
  225.  
  226. Inherited by:
  227. :sl.
  228. :li.:link reftype=hd res=202 dependent group=1.StringEA:elink. (through
  229. :link reftype=hd res=205 dependent group=1.TEA:elink.<:link
  230. reftype=hd res=202 dependent group=1.StringEA:elink.,EAT_ASCII>)
  231. :li.:link reftype=hd res=203 dependent group=1.MTSequenceEA:elink. (through
  232. :link reftype=hd res=205 dependent group=1.TEA:elink.<:link
  233. reftype=hd res=203 dependent group=1.MTSequenceEA:elink., EAT_MVMT>)
  234. :li.:link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink. (through
  235. :link reftype=hd res=205 dependent group=1.TEA:elink.<:link
  236. reftype=hd res=206 dependent group=1.SequenceEA:elink., EAT_MVST> and
  237. :link reftype=hd res=206 dependent group=1.SequenceEA:elink.)
  238. :esl.
  239. :h3 hide res=212 x=30% width=70% height=100%. EA - Public Interface.
  240. .br
  241. Nested types:
  242. :sl compact.
  243. :li.:link reftype=hd res=2121 dependent group=3.Identifier:elink.
  244. :li.:link reftype=hd res=2122 dependent group=3.Creator:elink.
  245. :li.:link reftype=hd res=2123 dependent group=3.CreatorIdPair:elink.
  246. :li.:link reftype=hd res=2124 dependent group=3.CreatorMap:elink.
  247. :li.:link reftype=hd res=2125 dependent group=3.Flagset:elink.
  248. :li.:link reftype=hd res=2126 dependent group=3.Name:elink.
  249. :li.:link reftype=hd res=2127 dependent group=3.NameSet:elink.
  250. :li.:link reftype=hd res=2128 dependent group=3.Error:elink.
  251. :li.:link reftype=hd res=2129 dependent group=3.ErrorHandler:elink.
  252. :esl.
  253. :p.
  254. Static Public Data.
  255. :sl compact.
  256. :li.:link reftype=hd res=21210 dependent group=3.defaultCreatorMap:elink.
  257. :li.:link reftype=hd res=21211 dependent group=3.errorHandler:elink.
  258. :esl.
  259. :p.
  260. Static Public Functions.
  261. :sl compact.
  262. :li.:link reftype=hd res=21212 dependent group=3.namesIn:elink.
  263. :li.:link reftype=hd res=21213 dependent group=3.newFrom:elink.
  264. :li.:link reftype=hd res=21214 dependent group=3.remove:elink.
  265. :esl.
  266. :p.
  267. Public Instance Functions.
  268. :sl compact.
  269. :li.:link reftype=hd res=21215 dependent group=3.Destructor:elink.
  270. :li.:link reftype=hd res=21216 dependent group=3.attributeId:elink.
  271. :li.:link reftype=hd res=21217 dependent group=3.getFlags:elink.
  272. :li.:link reftype=hd res=21218 dependent group=3.setFlags:elink.
  273. :li.:link reftype=hd res=21219 dependent group=3.getFrom:elink.
  274. :li.:link reftype=hd res=21220 dependent group=3.storeTo:elink.
  275. :li.:link reftype=hd res=21221 dependent group=3.clone:elink.
  276. :li.:link reftype=hd res=21222 dependent group=3.setCreatorMap:elink.
  277. :esl.
  278. :p.
  279. :h3 hide res=213 x=30% width=70% height=100%. EA - Protected Interface.
  280. .br
  281. Static Protected Functions.
  282. :sl compact.
  283. :li.:link reftype=hd res=2131 dependent group=3.read:elink.
  284. :li.:link reftype=hd res=2132 dependent group=3.write:elink.
  285. :esl.
  286. :p.
  287. Instance Protected Functions.
  288. :sl compact.
  289. :li.:link reftype=hd res=2133 dependent group=3.Constructors:elink.
  290. :li.:link reftype=hd res=2134 dependent group=3.Assignment Operator:elink.
  291. :li.:link reftype=hd res=2135 dependent group=3.readFrom:elink.
  292. :li.:link reftype=hd res=2136 dependent group=3.writeTo:elink.
  293. :esl.
  294.  
  295. .*************************************************
  296. .**
  297. .** class StringEA
  298. .**
  299. .*************************************************
  300.  
  301.  
  302. :h2 res=202 group=1 width=30%height=100%. StringEA.
  303. .br
  304. StringEA, String extended attribute (EAT_ASCII).
  305. :link  reftype=hd res=220 auto dependent group=2.
  306. :sl compact.
  307. :li.:link  reftype=hd res=220 dependent group=2.Description.:elink.
  308. :li.:link  reftype=hd res=221 dependent group=2.Derivation.:elink.
  309. :li.:link  reftype=hd res=222 dependent group=2.Public Interface.:elink.
  310. :li.:link  reftype=hd res=223 dependent group=2.Protected Interface.:elink.
  311. :esl.
  312.  
  313. :h3 hide res=220 x=30% width=70% height=100%. StringEA - Description.
  314. .br
  315. StringEA represents ASCII string extended attributes used, for example,
  316. in the .SUBJECT and .LONGNAME attributes supported by the WPS. To make
  317. StringEA easy to use, it inherits IString, and provides the full
  318. functionality of IString in addition, of course, to being an extended
  319. attribute that can be read and written to files.
  320. :p.
  321. StringEA implements the EAT_ASCII extended attribute.
  322.  
  323. :h3 hide res=221 x=30% width=70% height=100%. StringEA - Derivation.
  324. .br
  325. :artwork name='StringEA.BMP' align=center linkfile='stringeal.dat' fit.
  326. :p.
  327. StringEA is multiply inherited with IString, to provide full string
  328. functionality for the extended attribute.
  329.  
  330.  
  331. :h3 hide res=222 x=30% width=70% height=100%. StringEA - Public Interface.
  332. .br
  333. Public Instance Functions
  334. :sl compact.
  335. :li.:link reftype=hd res=2220 dependent group=3.Constructors:elink.
  336. :li.:link reftype=hd res=22201 dependent group=3.Assignment Operator:elink.
  337. :li.:link reftype=hd res=22202 dependent group=3.clone:elink.
  338. :esl.
  339. :p.
  340.   Inherited Public Instance Functions.
  341. :p.
  342.     From :link reftype=hd res=201 dependent group=1.EA:elink.
  343. :sl compact.
  344. :li.:link reftype=hd res=2221 dependent group=3.attributeId:elink.
  345. :li.:link reftype=hd res=21217 dependent group=3.getFlags:elink.
  346. :li.:link reftype=hd res=21218 dependent group=3.setFlags:elink.
  347. :li.:link reftype=hd res=2222 dependent group=3.getFrom:elink.
  348. :li.:link reftype=hd res=2223 dependent group=3.storeTo:elink.
  349. :li.:link reftype=hd res=21222 dependent group=3.setCreatorMap:elink.
  350. :esl.
  351. :p.
  352. Public Static Functions
  353. :sl compact.
  354. :li.-
  355. :esl.
  356. :p.
  357.   Inherited Public Static Functions.
  358. :p.
  359.     From :link reftype=hd res=205 dependent group=1.TEA:elink.<:link
  360. reftype=hd res=202 dependent group=1.StringEA:elink., EAT_ASCII>
  361. :sl compact.
  362. :li.:link reftype=hd res=2224 dependent group=3.cast:elink.
  363. :li.:link reftype=hd res=2225 dependent group=3.allowDynamic:elink.
  364. :li.:link reftype=hd res=2226 dependent group=3.disallowDynamic:elink.
  365. :esl.
  366. :p.
  367. Class Constants
  368. :sl compact.
  369. :li.-
  370. :esl.
  371.   Inherited Class Constants
  372. :p.
  373.     From :link reftype=hd res=205 dependent group=1.TEA:elink.<:link
  374. reftype=hd res=202 dependent group=1.StringEA:elink., EAT_ASCII>
  375. :sl compact.
  376. :li.:link reftype=hd res=2227 dependent group=3.id:elink.
  377. :esl.
  378. :h3 hide res=223 x=30% width=70% height=100%. StringEA - Protected Interface.
  379. .br
  380. Protected Instance Functions
  381. :sl compact.
  382. :li.:link reftype=hd res=2228 dependent group=3.readFrom:elink.
  383. :li.:link reftype=hd res=2229 dependent group=3.writeTo:elink.
  384. :esl.
  385. :p.
  386. Inherited Protected Instance Functions
  387. :sl compact.
  388. :li.-
  389. :esl.
  390. Protected Static Functions
  391. :sl compact.
  392. :li.-
  393. :esl.
  394. Inherited Protected Static Functions
  395. :sl compact.
  396. :li.-
  397. :esl.
  398. :h2 res=203 group=1 width=30% height=100%. MTSequenceEA.
  399. .br
  400. MTSequenceEA, Multi Type sequence extended attribute (EAT_MVMT).
  401. :link  reftype=hd res=230 auto dependent group=2.
  402. :sl compact.
  403. :li.:link  reftype=hd res=230 dependent group=2.Description.:elink.
  404. :li.:link  reftype=hd res=231 dependent group=2.Derivation.:elink.
  405. :li.:link  reftype=hd res=232 dependent group=2.Public Interface.:elink.
  406. :li.:link  reftype=hd res=233 dependent group=2.Protected Interface.:elink.
  407. :esl.
  408. :h3 hide res=230 x=30% width=70% height=100%. MTSequenceEA - Description.
  409. .br
  410. MTSequenceEA represents multi value multi type extended attributes; an
  411. extended attribute that is a sequence of other extended attributes. There
  412. is no restriction on the types of the contained extended attributes.
  413. :p.
  414. MTSequenceEA is, for example, used for the .KEYPHRASES, .TYPES and .ASSOCTABLE
  415. extended attributes, supported by the WPS.
  416. :p.
  417. To make MTSequenceEA offer powerful sequence manipulation, yet
  418. stay simple to use and consistent with the other sequences in your
  419. application, it inherits ISequence<EA*>.
  420. :p.
  421. MTSequenceEA implements the EAT_MVMT extended attribute.
  422. :h3 hide res=231 x=30% width=70% height=100%. MTSequenceEA - Derivation.
  423. .br
  424. :artwork name='MTSequenceEA.BMP' align=center linkfile='mtsequence.dat' fit.
  425. :p.
  426. MTSequenceEA multiply inherits ISequence, to provide strong
  427. sequence manipulation that is easy to use and consistent with the rest of your
  428. application.
  429. :h3 hide res=232 x=30% width=70% height=100%. MTSequenceEA - Public Interface.
  430. .br
  431. Nested Types
  432. :sl compact.
  433. :li.:link reftype=hd res=2320 dependent group=3.ErrorFunction:elink.
  434. :esl.
  435. :p.
  436. Public Instance Data
  437. :sl compact.
  438. :li.:link reftype=hd res=2321 dependent group=3.pCreatorMap:elink.
  439. :esl.
  440. :p.
  441. Public Static Data
  442. :sl compact.
  443. :li.:link reftype=hd res=2322 dependent group=3.errorFunction:elink.
  444. :esl.
  445. :p.
  446. Public Instance Functions
  447. :sl compact.
  448. :li.:link reftype=hd res=2323 dependent group=3.Constructors:elink.
  449. :li.:link reftype=hd res=2335 dependent group=3.Destructor:elink.
  450. :li.:link reftype=hd res=2336 dependent group=3.Assignment Operator:elink.
  451. :li.:link reftype=hd res=2337 dependent group=3.clone:elink.
  452. :li.:link reftype=hd res=2338 dependent group=3.setCreatorMap:elink.
  453. :li.:link reftype=hd res=2324 dependent group=3.getCodePage:elink.
  454. :li.:link reftype=hd res=2325 dependent group=3.setCodePage:elink.
  455. :esl.
  456. :p.
  457.   Inherited Instance Public Functions.
  458. :p.
  459.     From :link reftype=hd res=201 dependent group=1.EA:elink.
  460. :sl compact.
  461. :li.:link reftype=hd res=2326 dependent group=3.attributeId:elink.
  462. :li.:link reftype=hd res=21217 dependent group=3.getFlags:elink.
  463. :li.:link reftype=hd res=21218 dependent group=3.setFlags:elink.
  464. :li.:link reftype=hd res=2327 dependent group=3.getFrom:elink.
  465. :li.:link reftype=hd res=2328 dependent group=3.storeTo:elink.
  466. :esl.
  467. :p.
  468. Public Static Functions
  469. :sl compact.
  470. :li.-
  471. :esl.
  472. :p.
  473.   Inherited Public Static Functions.
  474. :p.
  475.     From :link reftype=hd res=205 dependent group=1.TEA:elink.<:link
  476. reftype=hd res=203 dependent group=1.MTSequenceEA:elink., EAT_MVMT>
  477. :sl compact.
  478. :li.:link reftype=hd res=2329 dependent group=3.cast:elink.
  479. :li.:link reftype=hd res=2330 dependent group=3.allowDynamic:elink.
  480. :li.:link reftype=hd res=2331 dependent group=3.disallowDynamic:elink.
  481. :esl.
  482. :p.
  483. Class Constants
  484. :sl compact.
  485. :li.-
  486. :esl.
  487.   Inherited Class Constants
  488. :p.
  489.     From :link reftype=hd res=205 dependent group=1.TEA:elink.<:link
  490. reftype=hd res=203 dependent group=1.MTSequenceEA:elink., EAT_MVMT>
  491. :sl compact.
  492. :li.:link reftype=hd res=2332 dependent group=3.id:elink.
  493. :esl.
  494. :h3 hide res=233 x=30% width=70% height=100%. MTSequenceEA - Protected Interface.
  495. .br
  496. Protected Instance Functions
  497. :sl compact.
  498. :li.:link reftype=hd res=2333 dependent group=3.readFrom:elink.
  499. :li.:link reftype=hd res=2334 dependent group=3.writeTo:elink.
  500. :esl.
  501. :p.
  502. Inherited Protected Instance Functions
  503. :sl compact.
  504. :li.-
  505. :esl.
  506. :p.
  507. Protected Static Functions
  508. :sl compact.
  509. :li.-
  510. :esl.
  511. :p.
  512. Inherited Protected Static Functions
  513. :sl compact.
  514. :li.-
  515. :esl.
  516. :h2 res=204 group=1 width=30% height=100%. TSequenceEA<T>.
  517. .br
  518. TSequenceEA<T>, Typed sequence extended attribute (EAT_MVST).
  519. :link  reftype=hd res=240 auto dependent group=2.
  520. :sl compact.
  521. :li.:link  reftype=hd res=240 dependent group=2.Description.:elink.
  522. :li.:link  reftype=hd res=241 dependent group=2.Derivation.:elink.
  523. :li.:link  reftype=hd res=242 dependent group=2.Public Interface.:elink.
  524. :li.:link  reftype=hd res=243 dependent group=2.Protected Interface.:elink.
  525. :esl.
  526. :h3 hide res=240 x=30% width=70% height=100%. TSequenceEA<T> - Description.
  527. .br
  528. TSequenceEA<T> represents sequences of extended attributes with a
  529. common type; in essense, a typed array of extended attributes. TSequenceEA<T>
  530. is surpricingly uncommon in OS/2. Even though it could be used for
  531. attributes like .KEYPHRASES and .TYPES, they are not.
  532. :p.
  533. T must be an extended attribute class itself, such as StringEA.
  534. :p.
  535. IBM Work Frame makes use of string type, typed extended attribute sequences,
  536. for storing build support information for make files.
  537. :p.
  538. TSequenceEA<T> implements the EAT_MVST extended attribute.
  539. :h3 hide res=241 x=30% width=70% height=100%. TSequenceEA<T> - Derivation.
  540. .br
  541. :artwork name='TSequenceEA.BMP' align=center linkfile='tsequence.dat' fit.
  542. :p.
  543. TSequenceEA multiply inherits ISequence, to provide strong and simple
  544. sequence manipulation that is consistent with the rest of your
  545. application.
  546. :h3 hide res=242 x=30% width=70% height=100%. TSequenceEA<T> - Public Interface.
  547. .br
  548. Public Instance Functions
  549. :sl compact.
  550. :li.:link reftype=hd res=2420 dependent group=3.Constructors:elink.
  551. :li.:link reftype=hd res=2421 dependent group=3.Assignment Operator:elink.
  552. :li.:link reftype=hd res=2422 dependent group=3.Destructor:elink.
  553. :li.:link reftype=hd res=24225 dependent group=3.clone:elink.
  554. :esl.
  555. :p.
  556.   Inherited Public Instance Functions.
  557. :p.
  558.     From :link reftype=hd res=206 dependent group=1.SequenceEA:elink.
  559. :sl compact.
  560. :li.:link reftype=hd res=2623 dependent group=3.getCodePage:elink.
  561. :li.:link reftype=hd res=2624 dependent group=3.setCodePage:elink.
  562. :li.:link reftype=hd res=2625 dependent group=3.contentId:elink.
  563. :li.:link reftype=hd res=2627 dependent group=3.setCreatorMap:elink.
  564. :esl.
  565. :p.
  566.     From :link reftype=hd res=201 dependent group=1.EA:elink.
  567. :sl compact.
  568. :li.:link reftype=hd res=2423 dependent group=3.attributeId:elink.
  569. :li.:link reftype=hd res=21217 dependent group=3.getFlags:elink.
  570. :li.:link reftype=hd res=21218 dependent group=3.setFlags:elink.
  571. :li.:link reftype=hd res=2424 dependent group=3.getFrom:elink.
  572. :li.:link reftype=hd res=2425 dependent group=3.storeTo:elink.
  573. :esl.
  574. :p.
  575. Static Public Functions.
  576. :sl compact.
  577. :li.:link reftype=hd res=24221 dependent group=3.allowDynamic:elink.
  578. :li.:link reftype=hd res=24222 dependent group=3.disallowDynamic:elink.
  579. :li.:link reftype=hd res=24223 dependent group=3.cast:elink.
  580. :esl.
  581. :p.
  582. Class Constants.
  583. :sl compact.
  584. :li.:link reftype=hd res=24224 dependent group=3.elementId:elink.
  585. :esl.
  586. :h3 hide res=243 x=30% width=70% height=100%. TSequenceEA<T> - Protected Interface.
  587. .br
  588. Protected Instance Functions
  589. :sl compact.
  590. :li.:link reftype=hd res=2426 dependent group=3.readFrom:elink.
  591. :li.:link reftype=hd res=2427 dependent group=3.writeTo:elink.
  592. :esl.
  593. :p.
  594. Inherited Protected Instance Functions
  595. :sl compact.
  596. :li.-
  597. :esl.
  598. Protected Static Functions
  599. :sl compact.
  600. :li.-
  601. :esl.
  602. Inherited Protected Static Functions
  603. :sl compact.
  604. :li.-
  605. :esl.
  606. :p.
  607. :h2 res=205 group=1 width=30% height=100%. TEA<T, EA&colon.&colon.Identifier>.
  608. .br
  609. :link  reftype=hd res=250 auto dependent group=2.
  610. :sl compact.
  611. :li.:link  reftype=hd res=250 dependent group=2.Description.:elink.
  612. :li.:link  reftype=hd res=251 dependent group=2.Derivation.:elink.
  613. :li.:link  reftype=hd res=252 dependent group=2.Public Interface.:elink.
  614. :li.:link  reftype=hd res=253 dependent group=2.Protected Interface.:elink.
  615. :esl.
  616. :h3 hide res=250 x=30% width=70% height=100%. TEA<T, EA&colon.&colon.Identifier> - Description.
  617. .br
  618. TEA<T, EA&colon.&colon.Identifier> - Intermediate class, providing base functionality
  619. for its descendants. You never use this class as is, but it provides a
  620. consistent and safe interface to its descendants, at the same time as it
  621. saves time for developers of descendants and reduce the risk for errors
  622. by removing unecessary code duplication.
  623. :p.
  624. TEA<T,EA&colon.&colon.Identifier> hides the static member functions
  625. :link reftype=hd res=21212 dependent group=3.namesIn:elink., :link
  626. reftype=hd res=21213 dependent group=3.newFrom:elink. and :link
  627. reftype=hd res=21214 dependent group=3.remove:elink. from :link
  628. reftype=hd res=201 dependent group=1.EA:elink., since their use from any
  629. class other than directly from :link reftype=hd res=201 dependent
  630. group=1.EA:elink., would be confusing. :link reftype=hd res=201
  631. dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=21213
  632. dependent group=3.newFrom:elink., for example, can return any kind
  633. of extended attribute object. If :link reftype=hd res=21213 dependent
  634. group=3.newFrom:elink. would be publically available to all descendants of
  635. :link reftype=hd res=201 dependent group=1.EA:elink., a call to
  636. :link reftype=hd res=202 dependent
  637. group=1.StringEA:elink.&colon.&colon.:link reftype=hd res=21213 dependent
  638. group=3.newFrom:elink., for example, would be legal, but is in no way
  639. guaranteed to return a :link reftype=hd res=202 dependent
  640. group=1.StringEA:elink. object. To avoid the confusion that would arise was
  641. the above allowed, the functions are declared private in
  642. TEA<T,EA&colon.&colon.Identifier>.
  643. :p.
  644. For the same reason, the types :link reftype=hd res=2122 dependent
  645. group=3.Creator:elink., :link reftype=hd res=2124 dependent
  646. group=3.CreatorMap:elink., :link reftype=hd res=2123 dependent
  647. group=3.CreatorIdPair:elink., :link reftype=hd res=2126 dependent
  648. group=3.Name:elink.,:link reftype=hd res=2128 dependent
  649. group=3.Error:elink., :link reftype=hd res=2129 dependent
  650. group=3.ErrorHandler:elink., :link reftype=hd res=2125 dependent
  651. group=3.Flagset:elink., :link reftype=hd res=2121 dependent
  652. group=3.Identifier:elink. and :link reftype=hd res=2127 dependent
  653. group=3.NameSet:elink. are hidden by :link reftype=hd res=205
  654. dependent group=1.TEA:elink.
  655. and must be explicitly qualified with :link reftype=hd res=201
  656. dependent group=1.EA:elink.&colon.&colon. scope when used.
  657.  
  658. :h3 hide res=251 x=30% width=70% height=100%. TEA<T, EA&colon.&colon.Identifier> - Derivation.
  659. .br
  660. Inherits.
  661. :p.
  662.   :link reftype=hd res=201 dependent group=1.EA:elink.
  663. :p.
  664. Inherited by:
  665. :sl compact.
  666. :li.:link reftype=hd res=202 dependent group=1.StringEA:elink.
  667. :li.:link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.
  668. :li.:link reftype=hd res=206 dependent group=1.SequenceEA:elink.
  669. :esl.
  670.  
  671. :h3 hide res=252 x=30% width=70% height=100%. TEA<T, EA&colon.&colon.Identifier> - Public Interface.
  672. .br
  673. Class constants
  674. :sl compact.
  675. :li.:link reftype=hd res=2520 dependent group=3.id:elink.
  676. :esl.
  677. :p.
  678. Public Instance Methods
  679. :sl compact.
  680. :li.:link reftype=fn refid=2521.Destructor:elink.
  681. :esl.
  682. :p.
  683. Public Static Methods
  684. :sl compact.
  685. :li.:link reftype=hd res=2522 dependent group=3.cast:elink.
  686. :li.:link reftype=hd res=2523 dependent group=3.allowDynamic:elink.
  687. :li.:link reftype=hd res=2524 dependent group=3.disallowDynamic:elink.
  688. :esl.
  689. :h3 hide res=253 x=30% width=70% height=100%. TEA<T, EA&colon.&colon.Identifier> - Protected Interface.
  690. .br
  691. Protected Instance Methods
  692. :p.
  693. :sl compact.
  694. :li.:link reftype=hd res=2525 dependent group=3.Constructors:elink.
  695. :li.:link reftype=hd res=2526 dependent group=3.Assignment Operator:elink.
  696. :esl.
  697.  
  698. :h2 res=206 group=1 width=30% height=100%. SequenceEA.
  699. .br
  700. :link  reftype=hd res=260 auto dependent group=2.
  701. :sl compact.
  702. :li.:link  reftype=hd res=260 dependent group=2.Description.:elink.
  703. :li.:link  reftype=hd res=261 dependent group=2.Derivation.:elink.
  704. :li.:link  reftype=hd res=262 dependent group=2.Public Interface.:elink.
  705. :li.:link  reftype=hd res=263 dependent group=2.Protected Interface.:elink.
  706. :esl.
  707. :h3 hide res=260 x=30% width=70% height=100%. SequenceEA - Description.
  708. .br
  709. SequenceEA - Intermediate class, providing common base functionality
  710. for :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink..
  711. :p.
  712. You should never work directly towards this class, but always towards
  713. :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.. If you
  714. want to write your own implementation of typed sequecene extended attributes,
  715. SequenceEA can be a good class to inherit from.
  716. :h3 hide res=261 x=30% width=70% height=100%. SequenceEA - Derivation.
  717. .br
  718. Inherits&colon.
  719. :sl.
  720. :li.:link reftype=hd res=201 dependent group=1.EA:elink.
  721. :li.:link reftype=hd res=205 dependent group=1.TEA:elink.<SequenceEA, EAT_MVST>
  722. :esl.
  723. :p.
  724. Inherited by&colon.
  725. :sl.
  726. :li.:link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  727. :esl.
  728.  
  729. :h3 hide res=262 x=30% width=70% height=100%. SequenceEA - Public Interface.
  730. .br
  731. Static Public Data.
  732. :sl compact.
  733. :li.:link reftype=hd res=2621 dependent group=3.errorFunction:elink.
  734. :esl.
  735. :p.
  736. Instance Public Functions.
  737. :sl compact.
  738. :li.:link reftype=hd res=2622 dependent group=3.Destructor:elink.
  739. :li.:link reftype=hd res=2623 dependent group=3.getCodePage:elink.
  740. :li.:link reftype=hd res=2624 dependent group=3.setCodePage:elink.
  741. :li.:link reftype=hd res=2625 dependent group=3.contentId:elink.
  742. :li.:link reftype=hd res=2626 dependent group=3.clone:elink.
  743. :li.:link reftype=hd res=2627 dependent group=3.setCreatorMap:elink.
  744. :esl.
  745. :h3 hide res=263 x=30% width=70% height=100%. SequenceEA - Protected Interface.
  746. .br
  747. Instance Protected Functions.
  748. :sl compact.
  749. :li.:link reftype=hd res=2630 dependent group=3.Constructors:elink.
  750. :li.:link reftype=hd res=2631 dependent group=3.Assignment Operator:elink.
  751. :li.:link reftype=hd res=2632 dependent group=3.writeTo:elink.
  752. :li.:link reftype=hd res=2633 dependent group=3.readFrom:elink.
  753. :esl.
  754. :p.
  755. Instance Protected Data.
  756. :sl compact.
  757. :li.:link reftype=hd res=2628 dependent group=3.pCreatorMap:elink.
  758. :esl.
  759. :p.
  760. Static Protected Functions.
  761. :sl compact.
  762. :li.:link reftype=hd res=2629 dependent group=3.allowDynamic:elink.
  763. :esl.
  764.  
  765. :h3 hide res=2121 x=30% width=70% height=50%. EA&colon.&colon.Identifier
  766. .br
  767. :font facename=Courier size=10x8.
  768. typedef unsigned short Identifier;
  769. :font facename=default.
  770. :p.
  771. Identifies the type of an extended attribute. Values supported by&colon.
  772. :dl compact tsize=20.
  773. :dthd.:hp2.OS/2 are&colon.:ehp2.
  774. :ddhd.:hp2.YEA.H are&colon.:ehp2.
  775. :dt.EAT_BINARY
  776. :dd.
  777. :dt.EAT_ASCII
  778. :dd.:link reftype=hd res=202 dependent
  779. group=1.StringEA:elink.&colon.&colon.:link reftype=hd res=2227 dependent
  780. group=3.id:elink.
  781. :dt.EAT_BITMAP
  782. :dd.
  783. :dt.EAT_METAFILE
  784. :dd.
  785. :dt.EAT_EA
  786. :dd.
  787. :dt.EAT_MVMT
  788. :dd.:link reftype=hd res=203 dependent
  789. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2332 dependent
  790. group=3.id:elink.
  791. :dt.EAT_MVST
  792. :dd.:link reftype=hd res=204 dependent
  793. group=1.TSequenceEA<T>:elink.&colon.&colon.:link reftype=hd res=2634 dependent
  794. group=3.id:elink.
  795. :dt.EAT_ASN1
  796. :dd.
  797. :edl.
  798. :h3 hide res=2122 x=30% width=70% height=50%. EA&colon.&colon.Creator
  799. .br
  800. :font facename=Courier size=10x8.
  801. typedef :link reftype=hd res=201 dependent group=1.EA:elink.*
  802. (*Creator)(istrstream&., :link reftype=hd res=201 dependent
  803. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  804. group=3.CreatorMap:elink.*);
  805. :font facename=default.
  806. :p.
  807. Defines a pointer to a function that creates an extended attribute object.
  808. For the specific attributes, such functions are defined by the private
  809. static member function :link reftype=hd res=205 dependent group=1.
  810. TEA:elink.<T,:link reftype=hd res=201 dependent
  811. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2121
  812. dependent group=3.Identifier:elink.>&colon.&colon.createFrom
  813. :p.
  814. If you write your own creator function, it should read as far into
  815. the stream as is needed to know the type of the object to create,
  816. and then create the object on the heap. It should not read a value
  817. into the object, though.
  818.  
  819. :h3 hide res=2123 x=30% width=70% height=50%. EA&colon.&colon.CreatorIdPair
  820. .br
  821. :font facename=Courier size=10x8.
  822. struct CreatorIdPair {
  823. .br
  824.   :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  825. reftype=hd res=2122 dependent group=3.Creator:elink. c;
  826. .br
  827.   :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  828. reftype=hd res=2121 dependent group=3.Identifier:elink. id;
  829. .br
  830.   IMngPointer<:link reftype=hd res=201 dependent
  831. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  832. group=3.CreatorMap:elink.> pSubMap;
  833. .br
  834. }
  835. :font facename=default.
  836. :p.
  837. Struct matching an
  838. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  839. reftype=hd res=2121 dependent group=3.Identifier:elink. with an
  840. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  841. reftype=hd res=2122 dependent group=3.Creator:elink.
  842. function. Used internally by the
  843. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  844. reftype=hd res=21213 dependent group=3.newFrom:elink. functions,
  845. and by multi value extended attributes.
  846. :p.
  847. The c part is the function that will create new objects on the heap
  848. if the element found matches that of id. pSubMap is the map passed
  849. to the creator function, which is useful for typed collections,
  850. since the creator function will then use that map to create its
  851. containing elements.
  852. :p.
  853. For flat (non-collection extended attributes) pSubMap is 0.
  854.  
  855. :h3 hide res=2124 x=30% width=70% height=50%. EA&colon.&colon.CreatorMap
  856. .br
  857. :font facename=Courier size=10x8.
  858. typedef IMap<:link reftype=hd res=201 dependent
  859. group=1.EA:elink.&colon.&colon.:link reftype=hd
  860. res=2123 dependent group=3.CreatorIdPair:elink.,
  861. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  862. reftype=hd res=2121 dependent group=3.Identifier:elink.> CreatorMap;
  863. :font facename=default.
  864. :p.
  865. Container of :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  866. reftype=hd res=2123 dependent group=3.CreatorIdPair:elink. for use internally
  867. by the creator functions, and multi value extended attributes.
  868.  
  869. :h3 hide res=2125 x=30% width=70% height=50%. EA&colon.&colon.Flagset
  870. .br
  871. :font facename=Courier size=10x8.
  872. typedef enum { optional = 0, mandatory = 0x80 } Flagset;
  873. :font facename=default.
  874. :p.
  875. Flag used for telling whether an extended attribute is needed (i.e. must not
  876. be discarded,) or not. The only legal values are&colon.
  877. :parml compact tsize=20 break=none.
  878. :pt. 0x00 (optional)
  879. :pd. The extended attribute is :hp2.not:ehp2. needed.
  880. :pt. 0x80 (mandatory)
  881. :pd. The extended attribute :hp2.is:ehp2. needed.
  882. :eparml.
  883.  
  884. :h3 hide res=2126 x=30% width=70% height=50%. EA&colon.&colon.Name
  885. .br
  886. :font facename=Courier size=10x8.
  887.   struct Name {
  888. .br
  889.     IString name;
  890. .br
  891.     :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  892.  reftype=hd res=2125 dependent group=3.Flagset:elink. flags;
  893. .br
  894.   };
  895. :font facename=default.
  896. :p.
  897. Description of an extended attribute for a file. A file can be queried
  898. for what extended attributes it has, by calling one of the
  899. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  900. reftype=hd res=21212 dependent group=3.namesIn:elink.
  901. methods, which returns the set of names as an :link reftype=hd res=201
  902. dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=2127
  903. dependent group=3.NameSet:elink., which elements are of type
  904. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  905. reftype=hd res=2126 dependent group=3.Name:elink..
  906.  
  907. :h3 hide res=2127 x=30% width=70% height=50%. EA&colon.&colon.NameSet
  908. .br
  909. :font facename=Courier size=10x8.
  910. typedef IKeySortedSet<:link reftype=hd res=201 dependent
  911. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2126 dependent
  912. group=3.Name:elink.,IString> NameSet;
  913. :font facename=default.
  914. :p.
  915. Set of extended attributes. This is the return value from the
  916. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  917. reftype=hd res=21212 dependent group=3.namesIn:elink.
  918. functions.
  919.  
  920. :h3 hide res=2128 x=30% width=70% height=50%. EA&colon.&colon.Error
  921. .br
  922. :font facename=Courier size=10x8.
  923.   typedef enum {
  924. .br
  925.     ReadError,
  926. .br
  927.     WriteError,
  928. .br
  929.     NoSuchEAError,
  930. .br
  931.     TypeMismatchError
  932. .br
  933.   } Error;
  934. :font facename=default.
  935. :p.
  936. The different kinds of errors that can occur within YEA.H. The errors
  937. codes are used as follows:
  938. :dl tsize=23.
  939. :dthd.:hp2.Error:ehp2.
  940. :ddhd.:hp2.Situation/Meaning:ehp2.
  941. :dt.ReadError
  942. :dd.The extended attribute could not be read. Issued if the file
  943. to read from does not exist, or is not readable. The accompanying
  944. code sent to the error handler function will be the OS/2 error code.
  945. :dt.WriteError
  946. :dd.The extended attribute could not be written. Issued if the file to
  947. write to does not exist, is write protected, the extended attribute name
  948. was illegal, or the total size of the extended attribute exceeded
  949. the 64Kb limit. The accompanying code sent to the error handler function
  950. will be the OS/2 error code.
  951. :dt.NoSuchEAError
  952. :dd.An attempt was made to read an extended attribute with a name that
  953. is not defined for the specified file. The accompanying code sent
  954. to the error handler function will be 0.
  955. :dt.TypeMismatchError
  956. :dd.An attempt was made to read an extended attribute of a specific type,
  957. and the attribute read had another type. The accompanying code
  958. sent to te error handler function will be the type identifier of the
  959. attribute read.
  960. :edl.
  961.  
  962. :h3 hide res=2129 x=30% width=70% height=50%. EA&colon.&colon.ErrorHandler
  963. .br
  964. :font facename=Courier size=10x8.
  965. typedef void (*ErrorHandler)(:link
  966. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  967. reftype=hd res=2128 dependent group=3.Error:elink., unsigned long);
  968. :font facename=default.
  969. :p.
  970. Type of the error handler function.
  971.  
  972. :h3 hide res=21210 x=30% width=70% height=50%. EA&colon.&colon.defaultCreatorMap
  973. .br
  974. :font facename=Courier size=10x8.
  975. public&colon.
  976. .br
  977.   static :link reftype=hd res=201 dependent
  978. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  979. group=3.CreatorMap:elink. defaultCreatorMap;
  980. :font facename=default.
  981. :p.
  982. The :link reftype=hd res=2124 dependent group=3.CreatorMap:elink.
  983. that will be used for creating extended attribute objects
  984. with the :link reftype=hd res=21219 dependent group=3.getFrom:elink.
  985. and :link reftype=hd res=21213 dependent group=3.newFrom:elink. functions,
  986. unless otherwise specified.
  987.  
  988. :h3 hide res=21211 x=30% width=70% height=50%. EA&colon.&colon.errorHandler
  989. .br
  990. :font facename=Courier size=10x8.
  991. public&colon.
  992. .br
  993.   static :link reftype=hd res=201 dependent
  994. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2129 dependent
  995. group=3.ErrorHandler:elink. errorHandler;
  996. :font facename=default.
  997. :p.
  998. The :link reftype=hd res=2129 dependent group=3.ErrorHandler:elink.
  999. to call when error situations arise. To set your own error handler, simply set
  1000. this pointer to your own function.
  1001. :p.
  1002. The default error handler throws exceptions:
  1003. :dl tsize=25.
  1004. :dthd.:hp2.Error:ehp2.
  1005. :ddhd.:hp2.Exception thrown:ehp2.
  1006. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1007. reftype=hd res=2128 dependent group=3.ReadError:elink.
  1008. :dd.EAReadError("Failed to read EA") with the error code given by OS/2
  1009. as its errorId.
  1010. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1011. reftype=hd res=2128 dependent group=3.WriteError:elink.
  1012. :dd.EAWriteError("Failed to write EA") with the error code given by
  1013. OS/2 as its errorId.
  1014. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1015. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink.
  1016. :dd.EATypeMismatchError("Unknown EA type") with the errorId set to 0.
  1017. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1018. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  1019. :dd.EATypeMismatchError("Unexpected EA type") with the type identifier
  1020. as the errorId.
  1021. :dt.Others.
  1022. :dd.EAError("unknown error");
  1023. :edl.
  1024.  
  1025.  
  1026. :h3 hide res=21212 x=30% width=70% height=50%. EA&colon.&colon.namesIn
  1027. .br
  1028. :font facename=Courier size=10x8.
  1029. public:
  1030. .br
  1031.   static :link reftype=hd res=201 dependent
  1032. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2127 dependent
  1033. group=3.NameSet:elink. namesIn(const IString&. file);
  1034. .br
  1035.   static :link reftype=hd res=201 dependent
  1036. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2127 dependent
  1037. group=3.NameSet:elink. namesIn(fstreambase&. file);
  1038. :font facename=default.
  1039. :p.
  1040. Get the names for the set of extended attributes defined for the file
  1041. pointed to by file.
  1042. :p.
  1043. Possible errors are&colon.
  1044. :dl compact tsize=20.
  1045. :dthd.:hp2.Error:ehp2.
  1046. :ddhd.:hp2.Action:ehp2.
  1047. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1048. reftype=hd res=2128 dependent group=3.ReadError:elink.
  1049. :dd.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1050. reftype=hd res=21211 dependent group=3.errorHandler:elink. called with
  1051. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1052. reftype=hd res=2128 dependent group=3.ReadError:elink. and the error code
  1053. given by OS/2. If :link reftype=hd res=21211 dependent
  1054. group=3.errorHandler:elink. returns, the set returned by namesIn will be empty.
  1055. :edl.
  1056.  
  1057. :h3 hide res=21213 x=30% width=70% height=50%. EA&colon.&colon.newFrom
  1058. .br
  1059. :font facename=Courier size=10x8.
  1060. public:
  1061. .br
  1062.   static :link reftype=hd res=201 dependent group=1.EA:elink.* newFrom(const IString&. file,
  1063. .br
  1064.                      const IString&. name,
  1065. .br
  1066.                      const :link reftype=hd res=201 dependent
  1067. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  1068.  group=3.CreatorMap:elink.&. = :link reftype=hd res=201 dependent
  1069. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210
  1070.  dependent group=3.defaultCreatorMap:elink.);
  1071. :p.
  1072.   static :link reftype=hd res=201 dependent group=1.EA:elink.* newFrom(fstreambase&. file,
  1073. .br
  1074.                      const IString&. name,
  1075. .br
  1076.                      const :link reftype=hd res=201 dependent
  1077. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  1078. group=3.CreatorMap:elink.&. = :link reftype=hd res=201 dependent
  1079. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210
  1080. dependent group=3.defaultCreatorMap:elink.);
  1081. :font facename=default.
  1082. :p.
  1083. Create a new extended attribute object on the heap. The type will be
  1084. decided when reading the extended attribute, and the object to create
  1085. will be decided by looking up the creator map passed.
  1086. :nt.To create an object of a class by calling newFrom, the static method
  1087. :link reftype=hd res=2523 dependent group=3.allowDynamic:elink. must haven
  1088. been called for the class on the creator map passed. If
  1089. :link reftype=hd res=2523 dependent group=3.allowDynamic:elink. has not
  1090. been called, 0 will be returned.
  1091. :ent.
  1092. :p.
  1093. Possible errors are&colon.
  1094. :dl tsize=25.
  1095. :dthd.:hp2.Error:ehp2.
  1096. :ddhd.:hp2.Action:ehp2.
  1097. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1098. reftype=hd res=2128 dependent group=3.ReadError:elink.
  1099. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1100. reftype=hd res=21211 dependent group=3.errorHandler:elink. with :link
  1101. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1102. reftype=hd res=2128 dependent group=3.ReadError:elink. and the
  1103. error code returned by OS/2. :link reftype=hd res=201 dependent
  1104. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  1105. group=3.errorHandler:elink. returns, newFrom returns 0.
  1106. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1107. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink.
  1108. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1109. reftype=hd res=21211 dependent group=3.errorHandler:elink. with :link
  1110. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1111. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink. and 0. If
  1112. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1113. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns,
  1114. newFrom returns 0.
  1115. :edl.
  1116. :nt. In addition to the above, the extended attribute object created
  1117. can find and report errors of its own. What errors they are, and how they are
  1118. handled, depends on the type of extended attribute object being
  1119. created.
  1120. :ent.
  1121. :h3 hide res=21214 x=30% width=70% height=50%. EA&colon.&colon.remove
  1122. .br
  1123. :font facename=Courier size=10x8.
  1124. public:
  1125. .br
  1126.   static void remove(const IString&. file,
  1127. .br
  1128.                      const IString&. name);
  1129. .br
  1130. .br
  1131.   static void remove(fstreambase&. file,
  1132. .br
  1133.                      const IString&. name);
  1134. :font facename=default.
  1135. :p.
  1136. Remove the extended attribute pointed to by name from the file. After
  1137. execution, there will be no extended attribute by the specified name
  1138. on the file, unless an error occurs.
  1139. :p.
  1140. Possible errors are&colon.
  1141. :dl tsize=20.
  1142. :dthd.:hp2.Error:ehp2.
  1143. :ddhd.:hp2.Action:ehp2.
  1144. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1145. reftype=hd res=2128 dependent group=3.WriteError:elink.
  1146. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1147. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1148. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1149. reftype=hd res=2128 dependent group=3.WriteError:elink. and the
  1150. error code returned by OS/2.
  1151. :edl.
  1152.  
  1153. :h3 hide res=21215 x=30% width=70% height=50%. virtual EA&colon.&colon.~EA(void)
  1154. .br
  1155. :font facename=Courier size=10x8.
  1156. public:
  1157. .br
  1158.   virtual ~:link reftype=hd res=201 dependent group=1.EA:elink.(void);
  1159. :font facename=default.
  1160. :p.
  1161. Destroy an extended attribute.
  1162.  
  1163. :h3 hide res=21216 x=30% width=70% height=50%. EA&colon.&colon.attributeId
  1164. .br
  1165. :font facename=Courier size=10x8.
  1166. public:
  1167. .br
  1168.   :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1169.  reftype=hd res=2121 dependent group=3.Identifier:elink. attributeId(void) const;
  1170. :font facename=default.
  1171. :p.
  1172. Get the attribute identifier of the extended attribute object.
  1173. :p.
  1174. Possible errors are&colon.
  1175. :sl compact.
  1176. :li.-
  1177. :esl.
  1178.  
  1179. :h3 hide res=21217 x=30% width=70% height=50%. virtual EA&colon.&colon.getFlags
  1180. .br
  1181. :font facename=Courier size=10x8.
  1182. public:
  1183. .br
  1184.   :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=2125 dependent group=3.Flagset:elink. getFlags(void)
  1185. const;
  1186. :font facename=default.
  1187. :p.
  1188. Get the flags for the current object.
  1189. :p.
  1190. Possible errors are&colon.
  1191. :sl compact.
  1192. :li.-
  1193. :esl.
  1194.  
  1195. :h3 hide res=21218 x=30% width=70% height=50%. virtual EA&colon.&colon.setFlags
  1196. .br
  1197. :font facename=Courier size=10x8.
  1198. public:
  1199. .br
  1200.   void setFlags(:link reftype=hd res=201 dependent
  1201. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2125 dependent
  1202. group=3.Flagset:elink.);
  1203. :font facename=default.
  1204. :p.
  1205. Set the flags for the current object.
  1206. :p.
  1207. Possible errors are&colon.
  1208. :sl compact.
  1209. :li.-
  1210. :esl.
  1211.  
  1212. :h3 hide res=21219 x=30% width=70% height=50%. EA&colon.&colon.getFrom
  1213. .br
  1214. :font facename=Courier size=10x8.
  1215. public:
  1216. .br
  1217.   void getFrom(const IString&. file,
  1218. .br
  1219.                const IString&. name);
  1220. .br
  1221. .br
  1222.   void getFrom(fstreambase&. file,
  1223. .br
  1224.                const IString&. name);
  1225. :font facename=default.
  1226. :p.
  1227. Give the extended attribute object a new value by assigning it
  1228. the value read from the named extended attribute.
  1229. :p.
  1230. Possible errors are&colon.
  1231. :dl tsize=25.
  1232. :dthd.:hp2.Error:ehp2.
  1233. :ddhd.:hp2.Action:ehp2.
  1234. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1235. reftype=hd res=2128 dependent group=3.ReadError:elink.
  1236. :dd.Call :link reftype=hd res=201 dependent
  1237. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  1238. group=3.errorHandler:elink. with :link reftype=hd res=201 dependent
  1239. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2128 dependent
  1240. group=3.ReadError:elink. and the error code returned by OS/2. The extended
  1241. attribute object itself not be changed.
  1242. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1243. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink.
  1244. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1245. reftype=hd res=21211 dependent.errorHandler:elink. with :link reftype=hd
  1246. res=201 dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=2128
  1247. dependent group=3.NoSuchEAError:elink. and 0. The extended attribute
  1248. object itself will not be changed.
  1249. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1250. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  1251. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1252. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1253. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1254. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  1255. and the type found. The extended attribute object itself will not be
  1256. changed.
  1257. :edl.
  1258. :p.
  1259. :nt.If the extended attribute object is a collection extended attribute,
  1260. the containing parts may themselves find and report other errors. What
  1261. kind they are of, and how they are reported, depends on the type.
  1262. :ent.
  1263. :h3 hide res=21220 x=30% width=70% height=50%. EA&colon.&colon.storeTo
  1264. .br
  1265. :font facename=Courier size=10x8.
  1266. public&colon.
  1267. .br
  1268.   void storeTo(const IString&. file,
  1269. .br
  1270.                const IString&. name);
  1271. :p.
  1272.   void storeTo(fstreambase&. file,
  1273. .br
  1274.                const IString&. name);
  1275. :font facename=default.
  1276. :p.
  1277. Store the value of the extended attribute to the file, using the name given.
  1278. :p.
  1279. Possible errors are&colon.
  1280. :dl tsize=25.
  1281. :dthd.:hp2.Error:ehp2.
  1282. :ddhd.:hp2.Action:ehp2.
  1283. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1284. reftype=hd res=2128 dependent group=3.WriteError:elink.
  1285. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1286. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1287. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1288. reftype=hd res=2128 dependent group=3.WriteError:elink. and the
  1289. error code returned by OS/2.
  1290. :edl.
  1291.  
  1292.  
  1293. :h3 hide res=21221 x=30% width=70% height=50%. EA&colon.&colon.clone
  1294. .br
  1295. :font facename=Courier size=10x8.
  1296. public&colon.
  1297. .br
  1298.   virtual :link reftype=hd res=201 dependent group=1.EA:elink.*
  1299. clone(void) const = 0;
  1300. :font facename=default.
  1301. :p.
  1302. Create an exact deep copy of self. Must be overridden by all
  1303. descendant classes. Used by the copy constructors and assignment
  1304. operators of extended attribute collection classes such as :link
  1305. reftype=hd res=203 dependent group=1.MTSequenceEA:elink. and
  1306. :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  1307. to provide for deep copying.
  1308. :p.
  1309. To work properly with typed collection extended attributes,
  1310. like :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  1311. the return type must be overridden. The return type for a class
  1312. C, derived in one or several generations from EA, must be C*.
  1313. :p.
  1314. clone will normally not find or report errors, but it depends on
  1315. the actual extended attribute class if errors can occur, and how
  1316. they are reported.
  1317.  
  1318. :h3 hide res=21222 x=30% width=70% height=50%. EA&colon.&colon.setCreatorMap
  1319. .br
  1320. :font facename=Courier size=10x8.
  1321. public&colon.
  1322. .br
  1323.   virtual void setCreatorMap(const :link reftype=hd res=201
  1324. dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124
  1325. dependent group=3.CreatorMap:elink.*)
  1326. :font facename=default.
  1327. :p.
  1328. This default implementation of setCreatorMap does nothing at all.
  1329. Collection classes should override it and create their children
  1330. from the creator map passed.
  1331. :p.
  1332. Possible errors are&colon.
  1333. :sl compact.
  1334. :li.-
  1335. :esl.
  1336.  
  1337. :h3 hide res=2131 x=30% width=70% height=50%. EA&colon.&colon.read
  1338. .br
  1339. :font facename=Courier size=10x8.
  1340. protected:
  1341. .br
  1342.   static istrstream&. read(:link reftype=hd res=201 dependent group=1.EA:elink.*
  1343. pea, istrstream&. is)
  1344. .br
  1345. :font facename=default.
  1346. :p.
  1347. Calls pea->:link reftype=hd res=2135 dependent group=3.readFrom:elink.(is),
  1348. a way to access the protected method of a sibling.
  1349. Use when implementing multi value extended attributes, to read a value into
  1350. one of the attributes contained.
  1351. :p.
  1352. read will normally not find or report errors, but it depends on
  1353. the actual extended attribute class if errors can occur, and how
  1354. they are reported. Objects of collection extended attribute classes, like
  1355. :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink. and
  1356. :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  1357. might well find and report errors.
  1358.  
  1359. :h3 hide res=2132 x=30% width=70% height=50%. EA&colon.&colon.write
  1360. .br
  1361. :font facename=Courier size=10x8.
  1362. protected:
  1363. .br
  1364.   static ostrstream&. write(:link reftype=hd res=201 dependent group=1.EA:elink.*
  1365. pea, ostrstream&. os)
  1366. .br
  1367. :font facename=default.
  1368. :p.
  1369. Calls pea->:link reftype=hd res=2136 dependent group=3.writeTo:elink.(os),
  1370. a way to access the protected method of a sibling.
  1371. Use when implementing multi value extended attributes, to save the value of
  1372. one of the attributes contained.
  1373. :p.
  1374. write will normally not find or report errors, but it depends on
  1375. the actual extended attribute class if errors can occur, and how
  1376. they are reported.
  1377.  
  1378.  
  1379. :h3 hide res=2133 x=30% width=70% height=50%. EA&colon.&colon.EA
  1380. .br
  1381. :font facename=Courier size=10x8.
  1382. protected&colon.
  1383. .br
  1384.   :link reftype=hd res=201 dependent group=1.EA:elink.(:link reftype=hd
  1385. res=201 dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=2121 dependent
  1386. group=3.Identifier:elink. anId);
  1387. .br
  1388.   :link reftype=hd res=201 dependent group=1.EA:elink.(const :link
  1389. reftype=hd res=201 dependent group=1.EA:elink.&.);
  1390. .br
  1391. :font facename=default.
  1392. :p.
  1393. You would normally not call any of these constructors since
  1394. :link reftype=hd res=205 dependent group=1.TEA:elink.<T,
  1395. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1396. reftype=hd res=2121 dependent group=3.Identifier:elink.>
  1397. does it for you. Would you, however, the identifier to pass is that used
  1398. to identify the extended attribute (the :link reftype=hd res=201 dependent
  1399. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2121 dependent
  1400. group=3.Identifier:elink. part of :link reftype=hd res=205 dependent
  1401. group=1.TEA:elink..)
  1402. :p.
  1403. Errors.
  1404. :sl.
  1405. :li.-
  1406. :esl.
  1407.  
  1408. :h3 hide res=2134 x=30% width=70% height=50%. EA&colon.&colon.operator=
  1409. .br
  1410. :font facename=Courier size=10x8.
  1411. protected&colon.
  1412. .br
  1413.   const :link reftype=hd res=201 dependent group=1.EA:elink.&.
  1414. operator=(const :link reftype=hd res=201 dependent group=1.EA:elink.&.);
  1415. .br
  1416. :font facename=default.
  1417. :p.
  1418. You would normally never call the assignment operator of :link reftype=hd
  1419. res=201 dependent group=1.EA:elink., since :link reftype=hd res=205
  1420. group=1.TEA:elink.<T, :link reftype=hd res=201 dependent
  1421. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2121 dependent
  1422. group=3.Identifier:elink.> does it for you.
  1423. :p.
  1424. Errors.
  1425. :sl.
  1426. :li.-
  1427. :esl.
  1428.  
  1429. :h3 hide res=2135 x=30% width=70% height=50%. EA&colon.&colon.readFrom
  1430. .br
  1431. :font facename=Courier size=10x8.
  1432. protected&colon.
  1433. .br
  1434.   virtual istrstream&. readFrom(istrstream&.) = 0;
  1435. .br
  1436. :font facename=default.
  1437. :p.
  1438. Must be overridden by all concrete extended attribute classes to read
  1439. the content of the attribute. Upon entry, the get pointer of the
  1440. stream is positioned so that the first byte read, will be the byte
  1441. immediately following the type identifier. This position is not
  1442. necessarily the first position in the stream.
  1443. :p.
  1444. readFrom will normally not find or report errors, but it depends on
  1445. the actual extended attribute class if errors can occur, and how
  1446. they are reported. Objects of collection extended attribute classes, like
  1447. :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink. and
  1448. :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  1449. might well find and report errors.
  1450.  
  1451. :h3 hide res=2136 x=30% width=70% height=50%. EA&colon.&colon.writeTo
  1452. .br
  1453. :font facename=Courier size=10x8.
  1454. protected&colon.
  1455. .br
  1456.   virtual ostrstream&. writeTo(ostrstream&.) = 0;
  1457. .br
  1458. :font facename=default.
  1459. :p.
  1460. Must be overridden by all concrete extended attribute classes to
  1461. write the content of the attribute. Upon entry the type identifier
  1462. is already written. The first byte to write to the stream is the first
  1463. byte after the identifier of the type for the extended attribute.
  1464. :p.
  1465. writeTo will normally not find or report errors, but it depends on
  1466. the actual extended attribute class if errors can occur, and how
  1467. they are reported.
  1468.  
  1469.  
  1470. :h3 hide res=2220 x=30% width=70% height=50%. StringEA&colon.&colon.StringEA
  1471. .br
  1472. In addition to all the constructors valid for IString, :link
  1473. reftype=hd res=202 dependent group=1.StringEA:elink. supports&colon.
  1474. :p.
  1475. :font facename=Courier size=10x8.
  1476. public&colon.
  1477. .br
  1478.   StringEA(const StringEA&. s)
  1479. :font facename=default.
  1480. :p.
  1481. Initialise the StringEA object to an exact copy of s.
  1482. :p.
  1483. :font facename=Courier size=10x8.
  1484. public&colon.
  1485. .br
  1486.   StringEA(const IString&. filename,
  1487. .br
  1488.            const IString&. eaname)
  1489. .br
  1490.   StringEA(fstreambase&. file,
  1491. .br
  1492.            const IString&. eaname)
  1493. .br
  1494. :font facename=default.
  1495. :p.
  1496. Constructs a string extended attribute, and reads its value from the
  1497. extended attribute pointed to bu filename and eaname.
  1498. :p.
  1499. Possible errors are&colon.
  1500. :dl tsize=25.
  1501. :dthd.:hp2.Error:ehp2.
  1502. :ddhd.:hp2.Action:ehp2.
  1503. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1504. reftype=hd res=2128 dependent group=3.ReadError:elink.
  1505. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1506. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1507. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1508. reftype=hd res=2128 dependent group=3.ReadError:elink. and the error
  1509. code returned by OS/2. If :link reftype=hd res=201 dependent
  1510. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  1511. group=3.errorHandler:elink. returns, an empty StringEA object
  1512. will be created.
  1513. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1514. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink.
  1515. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1516. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1517. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1518. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink. and 0.
  1519. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1520. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns, an
  1521. empty StringEA object will be created.
  1522. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1523. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  1524. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1525. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1526. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1527. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink. and the
  1528. type found. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1529. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns,
  1530. an empty StringEA object will be created.
  1531. :edl.
  1532. :p.
  1533. For the constructors taking the same arguments as their IString counter
  1534. parts, the created object will be initialized with with the flag
  1535. set to :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1536. reftype=hd res=2125 dependent group=3.optional:elink..
  1537.  
  1538. :h3 hide res=22201 x=30% width=70% height=50%. StringEA&colon.&colon.operator=
  1539. .br
  1540. :font facename=Courier size=10x8.
  1541. public&colon.
  1542. .br
  1543.   const StringEA&. operator=(const StringEA&. s);
  1544. :font facename=default.
  1545. :p.
  1546. Make self an exact copy of s and return self reference.
  1547. :p.
  1548. :font facename=Courier size=10x8.
  1549. public&colon.
  1550. .br
  1551.   const StringEA&. operator=(const IString&. s);
  1552. :font facename=default.
  1553. :p.
  1554. Keep the extended attribute values as is, but assign a new string
  1555. value to self and return self reference.
  1556. :p.
  1557. Possible errors.
  1558. :sl compact.
  1559. :li.-
  1560. :esl.
  1561.  
  1562. :h3 hide res=22202 x=30% width=70% height=50%. EA&colon.&colon.clone
  1563. .br
  1564. :font facename=Courier size=10x8.
  1565. public&colon.
  1566. .br
  1567.   virtual StringEA* clone(void) const
  1568. :font facename=default.
  1569. :p.
  1570. Create an exact copy of self on the heap and return the pointer to it.
  1571. :p.
  1572. Possible errors.
  1573. :sl compact.
  1574. :li.-
  1575. :esl.
  1576.  
  1577. :h3 hide res=2221 x=30% width=70% height=50%. EA&colon.&colon.attributeId
  1578. .br
  1579. :font facename=Courier size=10x8.
  1580. public&colon.
  1581. .br
  1582.   :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=2121 dependent group=3.Identifier:elink.
  1583. attributeId(void)
  1584. :font facename=default.
  1585. :p.
  1586. Returns :link reftype=hd res=202 dependent
  1587. group=1.StringEA:elink.&colon.&colon.:link reftype=hd res=2227 dependent
  1588. group=3.id:elink..
  1589. :p.
  1590. Possible errors are&colon.
  1591. :sl compact.
  1592. :li.-
  1593. :esl.
  1594.  
  1595. :h3 hide res=2222 x=30% width=70% height=50%. EA&colon.&colon.getFrom
  1596. .br
  1597. :font facename=Courier size=10x8.
  1598. public&colon.
  1599. .br
  1600.   void getFrom(const IString&. file,
  1601. .br
  1602.                const IString&. name);
  1603. :p.
  1604.   void getFrom(fstreambase&. file,
  1605. .br
  1606.                const IString&. name);
  1607. :font facename=default.
  1608. :p.
  1609. Give the string extended attribute object a new value by assigning it
  1610. the string value read from the named extended attribute.
  1611. :p.
  1612. Possible errors are&colon.
  1613. :dl tsize=25.
  1614. :dthd.:hp2.Error:ehp2.
  1615. :ddhd.:hp2.Action:ehp2.
  1616. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1617. reftype=hd res=2128 dependent group=3.ReadError:elink.
  1618. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1619. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1620. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1621. reftype=hd res=2128 dependent group=3.ReadError:elink. and the error
  1622. code returned by OS/2. If :link reftype=hd res=201 dependent
  1623. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  1624. group=3.errorHandler:elink. returns, the StringEA object
  1625. will remain unchanged.
  1626. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1627. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink.
  1628. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1629. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1630. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1631. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink. and 0.
  1632. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1633. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns, the
  1634. StringEA object will remain unchanged.
  1635. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1636. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  1637. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1638. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1639. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1640. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink. and the
  1641. type found. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1642. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns,
  1643. the StringEA object will remain unchanged.
  1644. :edl.
  1645.  
  1646. :h3 hide res=2223 x=30% width=70% height=50%. EA&colon.&colon.storeTo
  1647. .br
  1648. :font facename=Courier size=10x8.
  1649. public&colon.
  1650. .br
  1651.   void storeTo(const IString&. file,
  1652. .br
  1653.                const IString&. name);
  1654. .br
  1655. .br
  1656.   void storeTo(fstreambase&. file,
  1657. .br
  1658.                const IString&. name);
  1659. :font facename=default.
  1660. :p.
  1661. Store the value of the string extended attribute with the name given.
  1662. :p.
  1663. Possible errors are&colon.
  1664. :dl tsize=25.
  1665. :dthd.:hp2.Error:ehp2.
  1666. :ddhd.:hp2.Action:ehp2.
  1667. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1668. reftype=hd res=2128 dependent group=3.WriteError:elink.
  1669. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1670. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1671. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1672. reftype=hd res=2128 dependent group=3.WriteError:elink. and the
  1673. error code returned by OS/2.
  1674. :edl.
  1675.  
  1676. :h3 hide res=2224 x=30% width=70% height=50%. StringEA&colon.&colon.cast
  1677. .br
  1678. :font facename=Courier size=10x8.
  1679. public&colon.
  1680. .br
  1681.   static :link reftype=hd res=202 dependent group=1.StringEA:elink.* cast(:link
  1682. reftype=hd res=201 dependent group=1.EA:elink.*)
  1683. .br
  1684.   static const :link reftype=hd res=202 dependent group=1.StringEA:elink.*
  1685. cast(const :link reftype=hd res=201 dependent group=1.EA:elink.*)
  1686. :font facename=default.
  1687. :p.
  1688. Cast pointers of :link reftype=hd res=201 dependent group=1.EA:elink.
  1689. to pointers of :link reftype=hd res=202 dependent group=1.StringEA:elink..
  1690. Return the pointer value if, and only if, :link reftype=hd res=2221
  1691. dependent group=3.attributeId:elink.()
  1692. of the object pointed to returns :link reftype=hd res=202 dependent
  1693. group=1.StringEA:elink.&colon.&colon.:link reftype=hd res=2227 dependent
  1694. group=1.id:elink.. Return 0 otherwise.
  1695. :p.
  1696. :caution.cast is unable to distinguish between StringEA and other
  1697. implementations of EAT_ASCII, since it compares the attribute id only.
  1698. :ecaution.
  1699. :p.
  1700. Possible errors are&colon.
  1701. :sl.
  1702. :li.-
  1703. :esl.
  1704.  
  1705. :h3 hide res=2225 x=30% width=70% height=50%. StringEA&colon.&colon.allowDynamic
  1706. .br
  1707. :font facename=Courier size=10x8.
  1708. public&colon.
  1709. .br
  1710.   static void allowDynamic(:link reftype=hd res=201 dependent
  1711. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  1712. group=3.CreatorMap:elink.* pCM =
  1713. .br
  1714.                            &.:link reftype=hd res=201 dependent
  1715. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  1716. group=3.defaultCreatorMap:elink.,
  1717. .br
  1718.                            const :link reftype=hd res=201 dependent
  1719. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2122 dependent
  1720. group=3.Creator:elink.&. =
  1721. .br
  1722.                            :link reftype=hd res=205 dependent group=1.TEA:elink.<:link reftype=hd
  1723. res=202 dependent group=1.StringEA:elink.,:link reftype=hd res=202
  1724. dependent group=1.StringEA:elink.&colon.&colon.:link reftype=hd res=2227
  1725. dependent group=3.id:elink.>&colon.&colon.createFrom)
  1726. :font facename=default.
  1727. :p.
  1728. Add :link reftype=hd res=202 dependent group=1.StringEA:elink. to the creator
  1729. map, making it possible to dynamically create string extended attributes by
  1730. calling :link reftype=hd res=201 dependent
  1731. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21213 dependent
  1732. group=3.newFrom:elink.
  1733. with that creator map. The :link reftype=hd res=202 dependent
  1734. group=1.StringEA:elink. object will be created by a call to
  1735. the provided creator function.
  1736. :p.
  1737. Possible errors.
  1738. :sl compact.
  1739. :li.-
  1740. :esl.
  1741.  
  1742. :h3 hide res=2226 x=30% width=70% height=50%. StringEA&colon.&colon.disallowDynamic
  1743. .br
  1744. :font facename=Courier size=10x8.
  1745. public&colon.
  1746. .br
  1747.   static void disallowDynamic(:link reftype=hd res=201 dependent
  1748. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  1749. group=3.CreatorMap:elink.* pCM =
  1750. .br
  1751.                               &.:link reftype=hd res=201 dependent
  1752. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  1753. group=3.defaultCreatorMap:elink.)
  1754. :font facename=default.
  1755. :p.
  1756. Remove :link reftype=hd res=202 dependent group=1.StringEA:elink. from the
  1757. creator map, making it impossible to dynamically create string extended
  1758. attributes by calling :link reftype=hd res=201 dependent
  1759. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21213.newFrom:elink.
  1760. with that creator map.
  1761. :p.
  1762. Possible errors.
  1763. :sl compact.
  1764. :li.-
  1765. :esl.
  1766.  
  1767. :h3 hide res=2227 x=30% width=70% height=50%. StringEA&colon.&colon.id
  1768. .br
  1769. :font facename=Courier size=10x8.
  1770. public&colon.
  1771. .br
  1772.   enum { id = EAT_ASCII };
  1773. :font facename=default.
  1774. :p.
  1775. The identifier of string extended attributes. Use (if you can't avoid it,)
  1776. to compare with :link reftype=hd res=2221 dependent group=3.attributeId():elink.
  1777. of objects. It is usually better not to make that comparison, but to use
  1778. :link reftype=hd res=2224 dependent group=3.cast:elink. instead, and check
  1779. the return value of the pointer.
  1780.  
  1781.  
  1782. :h3 hide res=2228 x=30% width=70% height=50%. StringEA&colon.&colon.readFrom
  1783. .br
  1784. :font facename=Courier size=10x8.
  1785. protected&colon.
  1786. .br
  1787.   virtual istrstream&. readFrom(istrstream&.)
  1788. :font facename=default.
  1789. :p.
  1790. Overrides :link reftype=hd res=201 dependent
  1791. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2135.readFrom:elink. to
  1792. read the content of the extended attribute and store its value to the
  1793. :link reftype=hd res=202 dependent group=1.StringEA:elink. object itself.
  1794. :p.
  1795. Possible errors.
  1796. :sl compact.
  1797. :li.-
  1798. :esl.
  1799.  
  1800. :h3 hide res=2229 x=30% width=70% height=50%. StringEA&colon.&colon.writeTo
  1801. .br
  1802. :font facename=Courier size=10x8.
  1803. protected&colon.
  1804. .br
  1805.   virtual ostrstream&. writeTo(ostrstream&.)
  1806. :font facename=default.
  1807. :p.
  1808. Overrides :link reftype=hd res=201 dependent
  1809. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2136.writeTo:elink. to
  1810. store the content of the :link reftype=hd res=202 dependent
  1811. group=1.StringEA:elink. object.
  1812. :p.
  1813. Possible errors.
  1814. :sl compact.
  1815. :li.-
  1816. :esl.
  1817.  
  1818. :h3 hide res=2320 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.ErrorFunction
  1819. .br
  1820. :font facename=Courier size=10x8.
  1821. public&colon.
  1822. .br
  1823.   typedef :link reftype=hd res=201 dependent group=1.EA:elink.*
  1824. (*ErrorFunction)(:link reftype=hd res=201 dependent
  1825. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2121.Identifier:elink.);
  1826. :font facename=default.
  1827. :p.
  1828. The type of the error function called by :link reftype=hd res=203
  1829. dependent group=1.MTSequenceEA:elink. when an extended attribute of
  1830. unknown type is read.
  1831.  
  1832. :h3 hide res=2321 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.pCreatorMap
  1833. .br
  1834. :font facename=Courier size=10x8.
  1835. public&colon.
  1836. .br
  1837.   :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1838. reftype=hd res=2124 dependent group=3.CreatorMap:elink.* pCreatorMap;
  1839. :font facename=default.
  1840. :p.
  1841. Map used by :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.
  1842. when creating the containing extended attributes. It defaults to
  1843. &.:link reftype=hd res=201 dependent
  1844. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  1845. group=3.defaultCreatorMap:elink..
  1846.  
  1847. :h3 hide res=2322 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.errorFunction
  1848. .br
  1849. :font facename=Courier size=10x8.
  1850. public&colon.
  1851. .br
  1852.   static :link reftype=hd res=203 dependent
  1853. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2320
  1854. dependent group=3.ErrorFunction:elink. errorFunction;
  1855. :font facename=default.
  1856. :p.
  1857. Pointer to function, called by :link reftype=hd res=203 dependent
  1858. group=1.MTSequenceEA:elink. when reading an extended attribute
  1859. not found in the creator map. The value returned will be inserted into
  1860. the sequence.
  1861. :p.
  1862. The default function will call :link reftype=hd res=201 dependent
  1863. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  1864. group=3.errorHandler:elink. with :link reftype=hd res=2128 dependent
  1865. group=3.TypeMismatchError:elink. and the type identifier of the extended
  1866. attribute read. If :link reftype=hd res=201 dependent
  1867. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  1868. group=3.errorHandler:elink. returns, errorFunction will return 0.
  1869. :p.
  1870. To set your own error handler, create a function of type
  1871. :link reftype=hd res=203 dependent
  1872. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2320
  1873. dependent group=3.ErrorFunction:elink. and set errorFunction to
  1874. point to it.
  1875.  
  1876.  
  1877. :h3 hide res=2323 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.MTSequenceEA
  1878. .br
  1879. :font facename=Courier size=10x8.
  1880. public&colon.
  1881. .br
  1882.   :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.(const :link
  1883. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1884. reftype=hd res=2124 dependent group=3.CreatorMap:elink.* =
  1885. .br
  1886.                      &.:link reftype=hd res=201 dependent
  1887. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  1888. group=3.defaultCreatorMap:elink.);
  1889. :font facename=default.
  1890. :p.
  1891. Initialise an empty :link reftype=hd res=203 dependent
  1892. group=1.MTSequenceEA:elink. object that creates its contents with the
  1893. help of the provided creator map.
  1894. :p.
  1895. Possible errors.
  1896. :sl compact.
  1897. :li.-
  1898. :esl.
  1899. :p.
  1900. :font facename=Courier size=10x8.
  1901. public&colon.
  1902. .br
  1903.   :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.(const
  1904. ISequence<:link reftype=hd res=201 dependent group=1.EA:elink.*>&.,
  1905. .br
  1906.                const :link reftype=hd res=201 dependent
  1907. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  1908. group=3.CreatorMap:elink.* =
  1909. .br
  1910.                      &.:link reftype=hd res=201 dependent
  1911. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  1912. group=3.defaultCreatorMap:elink.);
  1913. :font facename=default.
  1914. :p.
  1915. Initialise an :link reftype=hd res=203 dependent
  1916. group=1.MTSequenceEA:elink. object by copying the contents of the sequence,
  1917. and use the creator map provided when reading new values into it.
  1918. :p.
  1919. Possible errors.
  1920. :sl compact.
  1921. :li.-
  1922. :esl.
  1923. :p.
  1924. :font facename=Courier size=10x8.
  1925. public&colon.
  1926. .br
  1927.   :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.(const
  1928. IString&. filename,
  1929. .br
  1930.                const IString&. eaname,
  1931. .br
  1932.                const :link reftype=hd res=201 dependent
  1933. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  1934. group=3.CreatorMap:elink.* =
  1935. .br
  1936.                      &.:link reftype=hd res=201 dependent
  1937. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  1938. group=3.defaultCreatorMap:elink.);
  1939. .br
  1940.   :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.(fstreambase&. file,
  1941. .br
  1942.                const IString&. eaname,
  1943. .br
  1944.                const :link reftype=hd res=201 dependent
  1945. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  1946. group=3.CreatorMap:elink.* =
  1947. .br
  1948.                      &.:link reftype=hd res=201 dependent
  1949. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  1950. group=3.defaultCreatorMap:elink.);
  1951. :font facename=default.
  1952. :p.
  1953. Initialise an :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.
  1954. object by reading its contents from the
  1955. named extended attribute in the selected file, using the provided
  1956. creator map when creating the containing objects.
  1957. :p.
  1958. Possible errors are&colon.
  1959. :dl tsize=25.
  1960. :dthd.:hp2.Error:ehp2.
  1961. :ddhd.:hp2.Action:ehp2.
  1962. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1963. reftype=hd res=2128 dependent group=3.ReadError:elink.
  1964. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1965. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1966. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1967. reftype=hd res=2128 dependent group=3.ReadError:elink. and the error
  1968. code returned by OS/2. If :link reftype=hd res=201 dependent
  1969. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  1970. group=3.errorHandler:elink. returns, an empty MTSequenceEA object
  1971. will be created.
  1972. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1973. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink.
  1974. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1975. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1976. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1977. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink. and 0.
  1978. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1979. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns, an
  1980. empty MTSequenceEA object will be created.
  1981. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1982. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  1983. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1984. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  1985. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1986. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink. and the
  1987. type found. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  1988. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns, an
  1989. empty MTSequenceEA object will be created.
  1990. :edl.
  1991. :p.
  1992. If an unknown extended attribute is found when reading the content of
  1993. the sequence, :link reftype=hd res=203 dependent
  1994. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2322
  1995. dependent group=3.errorFunction:elink. is called with the type
  1996. of the unknown extended attribute. If :link reftype=hd res=203 dependent
  1997. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2322
  1998. dependent group=3.errorFunction:elink. returns, the value returned is
  1999. inserted into the sequence.
  2000. :p.
  2001. :font facename=Courier size=10x8.
  2002. public&colon.
  2003. .br
  2004.   :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.(const
  2005. :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.&. mvea);
  2006. :font facename=default.
  2007. :p.
  2008. Initialise an :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.
  2009. object by copying the content of the
  2010. given sequence extended attribute.
  2011. :p.
  2012. Possible errors.
  2013. :sl compact.
  2014. :li.-
  2015. :esl.
  2016.  
  2017. :h3 hide res=2324 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.getCodePage
  2018. .br
  2019. :font facename=Courier size=10x8.
  2020. public&colon.
  2021. .br
  2022.   unsigned short getCodePage(void) const
  2023. :font facename=default.
  2024. :p.
  2025. Return the code page of the :link reftype=hd res=203 dependent
  2026. group=1.MTSequenceEA:elink. object. Code page 0 means
  2027. the default code page of the system. The code page of :link reftype=hd
  2028. res=203 dependent group=1.MTSequenceEA:elink.
  2029. objects defaults to 0.
  2030. :p.
  2031. Possible errors.
  2032. :sl compact.
  2033. :li.-
  2034. :esl.
  2035.  
  2036. :h3 hide res=2325 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.setCodePage
  2037. .br
  2038. :font facename=Courier size=10x8.
  2039. public&colon.
  2040. .br
  2041.   void setCodePage(unsigned short cp)
  2042. :font facename=default.
  2043. :p.
  2044. Set the code page of the :link reftype=hd res=203 dependent
  2045. group=1.MTSequenceEA:elink. object. By default, the
  2046. code page is 0, meaning the default code page of the system.
  2047. :p.
  2048. Possible errors.
  2049. :sl compact.
  2050. :li.-
  2051. :esl.
  2052.  
  2053. :h3 hide res=2326 x=30% width=70% height=50%. EA&colon.&colon.attributeId
  2054. .br
  2055. :font facename=Courier size=10x8.
  2056. public&colon.
  2057. .br
  2058.   :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2059. reftype=hd res=2121 dependent group=3.Identifier:elink. attributeId(void)
  2060. :font facename=default.
  2061. :p.
  2062. Returns :link reftype=hd res=203 dependent
  2063. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2332 dependent
  2064. group=3.id:elink..
  2065. :p.
  2066. Possible errors are&colon.
  2067. :sl compact.
  2068. :li.-
  2069. :esl.
  2070.  
  2071. :h3 hide res=2327 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.getFrom
  2072. .br
  2073. :font facename=Courier size=10x8.
  2074. public:
  2075. .br
  2076.   void getFrom(const IString&. file,
  2077. .br
  2078.                const IString&. name);
  2079. .br
  2080. .br
  2081.   void getFrom(fstreambase&. file,
  2082. .br
  2083.                const IString&. name);
  2084. :font facename=default.
  2085. :p.
  2086. Give the sequence extended attribute object a new value by assigning
  2087. it the value read from the named extended attribute.
  2088. Possible errors are&colon.
  2089. :dl tsize=25.
  2090. :dthd.:hp2.Error:ehp2.
  2091. :ddhd.:hp2.Action:ehp2.
  2092. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2093. reftype=hd res=2128 dependent group=3.ReadError:elink.
  2094. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2095. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2096. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2097. reftype=hd res=2128 dependent group=3.ReadError:elink. and the error
  2098. code returned by OS/2. If :link reftype=hd res=201 dependent
  2099. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  2100. group=3.errorHandler:elink. returns, the MTSequenceEA object
  2101. will remain unchanged.
  2102. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2103. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink.
  2104. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2105. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2106. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2107. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink. and 0.
  2108. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2109. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns, the
  2110. MTSequenceEA object will remain unchanged.
  2111. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2112. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  2113. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2114. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2115. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2116. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink. and the
  2117. type found. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2118. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns, the
  2119. MTSequenceEA object will remain unchanged.
  2120. :edl.
  2121. :p.
  2122. If an unknown extended attribute is found when reading the content of
  2123. the sequence, :link reftype=hd res=203 dependent
  2124. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2322
  2125. dependent group=3.errorFunction:elink. is called with the type
  2126. of the unknown extended attribute. If :link reftype=hd res=203 dependent
  2127. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2322
  2128. dependent group=3.errorFunction:elink. returns, the value returned is
  2129. inserted into the sequence.
  2130.  
  2131. :h3 hide res=2328 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.storeTo
  2132. .br
  2133. :font facename=Courier size=10x8.
  2134. public&colon.
  2135. .br
  2136.   void storeTo(const IString&. file,
  2137. .br
  2138.                const IString&. name);
  2139. .br
  2140. .br
  2141.   void storeTo(fstreambase&. file,
  2142. .br
  2143.                const IString&. name);
  2144. :font facename=default.
  2145. :p.
  2146. Store the value of the sequence extended attribute with the name given.
  2147. :p.
  2148. Possible errors are&colon.
  2149. :dl tsize=25.
  2150. :dthd.:hp2.Error:ehp2.
  2151. :ddhd.:hp2.Action:ehp2.
  2152. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2153. reftype=hd res=2128 dependent group=3.WriteError:elink.
  2154. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2155. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2156. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2157. reftype=hd res=2128 dependent group=3.WriteError:elink. and the
  2158. error code returned by OS/2.
  2159. :edl.
  2160.  
  2161. :h3 hide res=2329 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.cast
  2162. .br
  2163. :font facename=Courier size=10x8.
  2164. public&colon.
  2165. .br
  2166.   static :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.*
  2167. cast(:link reftype=hd res=201 dependent group=1.EA:elink.*)
  2168. .br
  2169.   static const :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.*
  2170. cast(const :link reftype=hd res=201 dependent group=1.EA:elink.*)
  2171. :font facename=default.
  2172. :p.
  2173. Cast pointers of :link reftype=hd res=201 dependent group=1.EA:elink.
  2174. to pointers of :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink..
  2175. Return the pointer value if, and only if, :link reftype=hd res=21216
  2176. dependent group=3.attributeId:elink.()
  2177. of the object pointed to returns :link reftype=hd res=203 dependent
  2178. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2332 dependent
  2179. group=3.id:elink..
  2180. Return 0 otherwise.
  2181. :p.
  2182. :caution.cast is unable to distinguish between MTSequenceEA and other
  2183. implementations of EAT_MVMT, since it compares the attribute id only.
  2184. :ecaution.
  2185. :p.
  2186. Possible errors are&colon.
  2187. :sl.
  2188. :li.-
  2189. :esl.
  2190.  
  2191. :h3 hide res=2330 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.allowDynamic
  2192. .br
  2193. :font facename=Courier size=10x8.
  2194. public&colon.
  2195. .br
  2196.   static void allowDynamic(:link reftype=hd res=201 dependent
  2197. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  2198. group=3.CreatorMap:elink.* pCM
  2199. .br
  2200.                            = &.:link reftype=hd res=201 dependent
  2201. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  2202. group=3.defaultCreatorMap:elink.,
  2203. .br
  2204.                            const :link reftype=hd res=201 dependent
  2205. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2122 dependent
  2206. group=3.Creator:elink.&. creator =
  2207. .br
  2208.                            :link reftype=hd res=205 dependent
  2209. group=1.TEA:elink.<:link reftype=hd res=203 dependent
  2210. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=203 dependent
  2211. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2332 dependent
  2212. group=3.id:elink.>&colon.&colon.createFrom)
  2213. :font facename=default.
  2214. :p.
  2215. Add :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.
  2216. to the creator map, making it possible to dynamically create string
  2217. extended attributes by calling :link reftype=hd res=201 dependent
  2218. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21213.newFrom:elink.
  2219. with that creator map. The :link reftype=hd res=203 dependent
  2220. group=1.MTSequenceEA:elink. object will be created with the provided
  2221. creator function.
  2222. :p.
  2223. Possible errors are&colon.
  2224. :sl compact.
  2225. :li.-
  2226. :esl.
  2227.  
  2228. :h3 hide res=2331 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.disallowDynamic
  2229. .br
  2230. :font facename=Courier size=10x8.
  2231. public&colon.
  2232. .br
  2233.   static void disallowDynamic(:link reftype=hd res=201 dependent
  2234. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  2235. group=3.CreatorMap:elink.* pCM
  2236. .br
  2237.                               = &.:link reftype=hd res=201 dependent
  2238. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  2239. group=3.defaultCreatorMap:elink.)
  2240. :font facename=default.
  2241. :p.
  2242. Remove :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink.
  2243. from the creator map, making it impossible to dynamically create string
  2244. extended attributes by calling :link reftype=hd res=201 dependent
  2245. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21213.newFrom:elink.
  2246. with that creator map.
  2247. :p.
  2248. Possible errors are&colon.
  2249. :sl compact.
  2250. :li.-
  2251. :esl.
  2252.  
  2253. :h3 hide res=2332 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.id
  2254. .br
  2255. :font facename=Courier size=10x8.
  2256. public&colon.
  2257. .br
  2258.   enum { id = EAT_MVMT };
  2259. :font facename=default.
  2260. :p.
  2261. The identifier of multi value sequence extended attributes. Use
  2262. (if you can't avoid it,) to compare with :link reftype=hd res=2326
  2263. dependent group=3.attributeId():elink.
  2264. of objects. It is usually better not to make that comparison, but to use
  2265. :link reftype=hd res=2329 dependent group=3.cast:elink. instead, and check
  2266. the return value of the pointer.
  2267.  
  2268. :h3 hide res=2333 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.readFrom
  2269. .br
  2270. :font facename=Courier size=10x8.
  2271. protected&colon.
  2272. .br
  2273.   virtual istrstream&. readFrom(istrstream&.)
  2274. :font facename=default.
  2275. :p.
  2276. Overrides :link reftype=hd res=201 dependent
  2277. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2135.readFrom:elink. to
  2278. read the content of the extended attribute and store its value to the
  2279. :link reftype=hd res=203 dependent group=1.MTSequenceEA:elink. object itself.
  2280. :p.
  2281. Possible errors are&colon.
  2282. :dl tsize=30.
  2283. :dthd.:hp2.Error:ehp2.
  2284. :ddhd.:hp2.Action:ehp2.
  2285. :dt.Unknown type read.
  2286. :dd.Calls :link reftype=hd res=203 dependent
  2287. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2322
  2288. dependent group=3.errorFunction:elink. with the type
  2289. of the unknown extended attribute. If :link reftype=hd res=203 dependent
  2290. group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd res=2322
  2291. dependent group=3.errorFunction:elink. returns, the value returned is
  2292. inserted into the sequence.
  2293. :edl.
  2294.  
  2295. :h3 hide res=2334 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.writeTo
  2296. .br
  2297. :font facename=Courier size=10x8.
  2298. protected&colon.
  2299. .br
  2300.   virtual ostrstream&. writeTo(ostrstream&.)
  2301. :font facename=default.
  2302. :p.
  2303. Overrides :link reftype=hd res=201 dependent
  2304. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2136.writeTo:elink. to
  2305. store the content of the :link reftype=hd res=203 dependent
  2306. group=1.MTSequenceEA:elink. object.
  2307. :p.
  2308. Possible errors are&colon.
  2309. :sl compact.
  2310. :li.-
  2311. :esl.
  2312.  
  2313.  
  2314. :h3 hide res=2335 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.~MTSequenceEA
  2315. .br
  2316. :font facename=Courier size=10x8.
  2317. public&colon.
  2318. .br
  2319.   virtual ~MTSequenceEA(void)
  2320. :font facename=default.
  2321. :p.
  2322. Destroys the MTSequenceEA object and deallocates all of its contents.
  2323. :nt.All EA objects pointed to by the MTSequenceEA object by the time of
  2324. destruction will be deallocated by a call to operator delete. If any
  2325. of the pointers is not to an object allocated on heap, a run time error
  2326. is most likely to occur. The reason for this behaviour is to avoid
  2327. memory leaks if an MTSequenceEA object is read when one is not
  2328. expected.
  2329. :ent.
  2330. :p.
  2331. Possible errors are&colon.
  2332. :sl compact.
  2333. :li.-
  2334. :esl.
  2335.  
  2336.  
  2337. :h3 hide res=2336 x=30% width=70% height=50%. MTSequenceEA&colon.&colon.operator=
  2338. .br
  2339. In order to make a copy assignment operation work without causing memory
  2340. leaks, both versions of operator= empties the contents, thus freeing
  2341. all the pointers in the collection, before the copy.
  2342. :nt.Since operator delete will be executed on all pointers, any pointer
  2343. referring to an element not allocated on heap is likely to cause a
  2344. run time error.
  2345. :ent.
  2346. :font facename=Courier size=10x8.
  2347. public&colon.
  2348. .br
  2349.   const MTSequenceEA&. operator=(const MTSequenceEA&. mvea);
  2350. :font facename=default.
  2351. :p.
  2352. Make self an exact copy of mvea. The contents of mvea will be cloned to
  2353. avoid getting several pointers to the same elements, and potential
  2354. dangling pointers at a later time.
  2355. :p.
  2356. Possible errors are&colon.
  2357. :sl compact.
  2358. :li.-
  2359. :esl.
  2360.  
  2361. :p.
  2362. :font facename=Courier size=10x8.
  2363. public&colon.
  2364. .br
  2365.   const MTSequenceEA&. operator=(const ISequence<:link reftype=hd res=201
  2366. dependent group=1.EA:elink.*>&. isea);
  2367. :font facename=default.
  2368. :p.
  2369. Keep the state of self, except for the content of the collection, which
  2370. is made an exact copy of isea. The contents of isea will be cloned to
  2371. avoid getting several pointers to the same elements, and potential
  2372. dangling pointers at a later time.
  2373. :p.
  2374. Possible errors are&colon.
  2375. :sl compact.
  2376. :li.-
  2377. :esl.
  2378.  
  2379.  
  2380. :h3 hide res=2337 x=30% width=70% height=50%. EA&colon.&colon.clone
  2381. .br
  2382. :font facename=Courier size=10x8.
  2383. public&colon.
  2384. .br
  2385.   virtual MTSequenceEA* clone(void) const;
  2386. :font facename=default.
  2387. :p.
  2388. Create an exact deep copy of self on the heap and return the pointer
  2389. to it. Used by the copy constructors and assignment operators of
  2390. extended attribute collections such as :link reftype=hd res=203
  2391. dependent group=1.MTSequenceEA:elink. and :link reftype=hd res=204
  2392. dependent group=1.TSequenceEA<T>:elink..
  2393. :p.
  2394. clone itself does not find or report any errors, but since it does
  2395. a deep copy of the collection, some of its containing objects
  2396. might. If and how this is done depends on the type of the
  2397. containig objects.
  2398.  
  2399. :h3 hide res=2338 x=30% width=70% height=50%. EA&colon.&colon.setCreatorMap
  2400. .br
  2401. :font facename=Courier size=10x8.
  2402. public&colon.
  2403. .br
  2404.   virtual void setCreatorMap(const :link reftype=hd res=201 dependent
  2405. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  2406. group=3.CreatorMap:elink.*)
  2407. :font facename=default.
  2408. :p.
  2409. Override of the empty default function in :link reftype=hd res=201
  2410. dependent group=1.EA:elink.. It sets the :link reftype=hd res=203
  2411. dependent group=1.MTSequenceEA:elink.&colon.&colon.:link reftype=hd
  2412. res=2321 dependent group=3.pCreatorMap:elink. to the map passed, to
  2413. make sure children are created from the correct creator map.
  2414. :p.
  2415. Possible errors are&colon.
  2416. :sl compact.
  2417. :li.-
  2418. :esl.
  2419.  
  2420. :h3 hide res=2420 x=30% width=70% height=50%. TSequenceEA<T>&colon.&colon.TSequenceEA
  2421. .br
  2422. :font facename=Courier size=10x8.
  2423. public&colon.
  2424. .br
  2425.   :link reftype=hd res=204 dependent group=1.TSequenceEA:elink.(:link
  2426. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link reftype=hd
  2427. res=2124 dependent group=3.CreatorMap:elink.* = &.:link reftype=hd res=201
  2428. dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  2429. group=3.defaultCreatorMap:elink.)
  2430. .br
  2431. :font facename=default.
  2432. :p.
  2433. Initialise a an empty :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  2434. object.
  2435. :p.
  2436. :font facename=Courier size=10x8.
  2437. public&colon.
  2438. .br
  2439.   :link reftype=hd res=204 dependent group=1.TSequenceEA:elink.(const
  2440. :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.&. t)
  2441. :font facename=default.
  2442. :p.
  2443. Copy constructor. Initialise a :link reftype=hd res=204 dependent
  2444. group=1.TSequenceEA<T>:elink. object by copying the
  2445. contents and status of t.
  2446. :p.
  2447. :font facename=Courier size=10x8.
  2448. public&colon.
  2449. .br
  2450.   :link reftype=hd res=204 dependent group=1.TSequenceEA:elink.(const
  2451. ISequence<T*>&. t,
  2452. .br
  2453.              :link
  2454. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link reftype=hd
  2455. res=2124 dependent group=3.CreatorMap:elink.* = &.:link reftype=hd res=201
  2456. dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  2457. group=3.defaultCreatorMap:elink.)
  2458. :font facename=default.
  2459. :p.
  2460. Initialise a :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  2461. object, by copying the contents of the provided ISequence<T*> object.
  2462. :p.
  2463. :font facename=Courier size=10x8.
  2464. public&colon.
  2465. .br
  2466.   :link reftype=hd res=204 dependent group=1.TSequenceEA:elink.(const
  2467. IString&. filename,
  2468. .br
  2469.               const IString&. eaname,
  2470. .br
  2471.               :link
  2472. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link reftype=hd
  2473. res=2124 dependent group=3.CreatorMap:elink.* = &.:link reftype=hd res=201
  2474. dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  2475. group=3.defaultCreatorMap:elink.)
  2476. .br
  2477.   :link reftype=hd res=204 dependent group=1.TSequenceEA:elink.(fstreambase&.
  2478. file,
  2479. .br
  2480.               const IString&. eaname,
  2481. .br
  2482.               :link
  2483. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link reftype=hd
  2484. res=2124 dependent group=3.CreatorMap:elink.* = &.:link reftype=hd res=201
  2485. dependent group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  2486. group=3.defaultCreatorMap:elink.)
  2487. :font facename=default.
  2488. :p.
  2489. Initialise a :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  2490. object by reading its contents from the named extended attribute of the file.
  2491. :p.
  2492. Possible errors are&colon.
  2493. :dl tsize=25.
  2494. :dthd.:hp2.Error:ehp2.
  2495. :ddhd.:hp2.Action:ehp2.
  2496. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2497. reftype=hd res=2128 dependent group=3.ReadError:elink.
  2498. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2499. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2500. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2501. reftype=hd res=2128 dependent group=3.ReadError:elink. and the error
  2502. code returned by OS/2. If :link reftype=hd res=201 dependent
  2503. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  2504. group=3.errorHandler:elink. returns, an empty TSequenceEA<T> object
  2505. will be created.
  2506. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2507. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink.
  2508. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2509. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2510. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2511. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink. and 0.
  2512. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2513. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns, an
  2514. empty TSequenceEA<T> object will be created.
  2515. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2516. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  2517. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2518. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2519. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2520. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink. and the
  2521. type found. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2522. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns,
  2523. an empty TSequenceEA<T> object will be created.
  2524. :edl.
  2525. :p.
  2526. :nt.In addition to the above error situations, it is possible that any
  2527. of the containing objects read into the sequence will find and report
  2528. errors. If that is done, and how, depends on the type of object read.
  2529. :ent.
  2530. :h3 hide res=2421 x=30% width=70% height=50%. TSequenceEA<T>&colon.&colon.operator=
  2531. .br
  2532. To avoid memory leaks, both versions of operator= empty the content
  2533. of self, and deallocates all pointers, before deep copying the content
  2534. of the source.
  2535. :nt.Since operator delete will be executed on all pointers, any pointer
  2536. referring to an element not allocated on heap is likely to cause a
  2537. run time error.
  2538. :ent.
  2539. :font facename=Courier size=10x8.
  2540. public&colon.
  2541. .br
  2542.   const :link reftype=hd res=204 dependent
  2543. group=1.TSequenceEA<T>:elink.&. operator=(const :link reftype=hd
  2544. res=204 dependent group=1.TSequenceEA<T>:elink.&. t)
  2545. :font facename=default.
  2546. :p.
  2547. Copy the content and status of t to self and return self reference.
  2548. :p.
  2549. Possible errors are&colon.
  2550. :sl compact.
  2551. :li.-
  2552. :esl.
  2553. :p.
  2554.    const :link reftype=hd res=204 dependent
  2555. group=1.TSequenceEA<T>:elink.&. operator=(const ISequence<T*>&. t)
  2556. :font facename=default.
  2557. :p.
  2558. Keep the state of the extended attribute object as is, but assign it
  2559. new values from the ISequence passed.
  2560. :p.
  2561. Possible errors are&colon.
  2562. :sl compact.
  2563. :li.-
  2564. :esl.
  2565. :p.
  2566. :nt.It is possible that some of the contained objects will find and
  2567. report errors. If that happens, and how, depends on the type of
  2568. the contained objects.
  2569. :ent.
  2570. :h3 hide res=2422 x=30% width=70% height=50%. TSequenceEA<T>&colon.&colon.~TSequenceEA
  2571. .br
  2572. :font facename=Courier size=10x8.
  2573. public&colon.
  2574. .br
  2575.   virtual ~:link reftype=hd res=204 dependent group=1.TSequenceEA:elink.(void)
  2576. :font facename=default.
  2577. :p.
  2578. Destructor.
  2579. :note.Unlike the destructor for ISequence, the destructor for :link
  2580. reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  2581. deallocates all pointers to its contents. This is to avoid memory leaks
  2582. in situations where a :link reftype=hd res=204 dependent
  2583. group=1.TSequenceEA<T>:elink. is read when you do not expect
  2584. one.
  2585. :warning.If there are extended attribute objects in the sequence that
  2586. are not allocated on heap, when the destructor is called, a run-time error
  2587. is very likely to occur since operator delete is called on every pointer
  2588. in the sequence.
  2589. :ewarning.
  2590. :p.
  2591. Possible errors are&colon.
  2592. :sl compact.
  2593. :li.-
  2594. :esl.
  2595. :nt.It is possible that some of the contained objects will find and
  2596. report errors. If that happens, and how, depends on the type of
  2597. the contained objects.
  2598. :ent.
  2599.  
  2600. :h3 hide res=24221 x=30% width=70% height=50%. TSequenceEA<T>&colon.&colon.allowDynamic
  2601. .br
  2602. :font facename=Courier size=10x8.
  2603. public&colon.
  2604. .br
  2605.   static void allowDynamic(:link reftype=hd res=201 dependent
  2606. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  2607. group=3.CreatorMap:elink.* pCM =
  2608. .br
  2609.                            &.:link reftype=hd res=201 dependent
  2610. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  2611. group=3.defaultCreatorMap:elink.,
  2612. .br
  2613.                            const :link reftype=hd res=201 dependent
  2614. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2122 dependent
  2615. group=3.Creator:elink.&. creator =
  2616. .br
  2617.                            :link reftype=hd res=204 dependent
  2618. group=1.TSequenceEA<T>:elink.&colon.&colon.createFrom)
  2619. :font facename=default.
  2620. :p.
  2621. Add :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink. to the
  2622. creator map, making it possible to dynamically create typed sequence extended
  2623. attributes by calling :link reftype=hd res=201 dependent
  2624. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21213 dependent
  2625. group=3.newFrom:elink. with that creator map. The :link reftype=hd
  2626. res=204 dependent group=1.TSequenceEA<T>:elink. object will be created
  2627. by a call to the provided creator function.
  2628. :p.
  2629. Possible errors.
  2630. :sl compact.
  2631. :li.-
  2632. :esl.
  2633.  
  2634. :h3 hide res=24222 x=30% width=70% height=50%. TSequenceEA<T>&colon.&colon.disallowDynamic
  2635. .br
  2636. :font facename=Courier size=10x8.
  2637. public&colon.
  2638. .br
  2639.   static void disallowDynamic(:link reftype=hd res=201 dependent
  2640. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  2641. group=3.CreatorMap:elink.* pCM =
  2642. .br
  2643.                               &.:link reftype=hd res=201 dependent
  2644. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  2645. group=3.defaultCreatorMap:elink.)
  2646. :font facename=default.
  2647. :p.
  2648. Remove the creator of :link reftype=hd res=204 dependent
  2649. group=1.TSequenceEA<T>:elink. from the provided creator map, making it
  2650. impossible to dynamically create :link reftype=hd res=204 dependent
  2651. group=1.TSequenceEA<T>:elink. objects from it.
  2652. :p.
  2653. Possible errors are&colon.
  2654. :sl compact.
  2655. :li.-
  2656. :esl.
  2657.  
  2658. :h3 hide res=24223 x=30% width=70% height=50%. TSequenceEA<T>&colon.&colon.cast
  2659. .br
  2660. :font facename=Courier size=10x8.
  2661. public&colon.
  2662. .br
  2663.   static :link reftype=hd res=204 dependent
  2664. group=1.TSequenceEA<T>:elink.* cast(:link reftype=hd res=201 dependent
  2665. group=1.EA:elink.*)
  2666. .br
  2667.   static const :link reftype=hd res=204 dependent
  2668. group=1.TSequenceEA<T>:elink.* cast(const :link reftype=hd res=201
  2669. dependent group=1.EA:elink.*)
  2670. :font facename=default.
  2671. :p.
  2672. Cast pointers of :link reftype=hd res=201 dependent group=1.EA:elink. to
  2673. pointers of :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink..
  2674. Return the pointer value if, and only if, :link reftype=hd res=2423
  2675. dependent group=3.attributeId:elink.() of the object equals :link
  2676. reftype=hd res=206 dependent group=1.SequenceEA:elink.&colon.&colon.:link
  2677. reftype=hd res=2634 dependent group=3.id:elink. and its :link reftype=hd
  2678. res=2625 dependent group=3.contentId:elink.() returns T&colon.&colon.:link
  2679. reftype=hd res=24224 dependent group=3.elementId:elink.. Otherwise the
  2680. value returned will be 0.
  2681. :p.
  2682. :caution.cast is unable to distinguish between TSequenceEA<T> and other
  2683. implementations of EAT_MVST, or TSequenceEA<T2> where T&colon.&colon.id
  2684. == T2&colon.&colon.id for that matter, since only the type identifiers
  2685. are compared.
  2686. :ecaution.
  2687.  
  2688. :h3 hide res=24224 x=30% width=70% height=50%. TSequenceEA<T>&colon.&colon.elementId
  2689. .br
  2690. :font facename=Courier size=10x8.
  2691. template <class T>
  2692. .br
  2693. class TSequenceEA &dot.&dot.&dot.
  2694. .br
  2695. {
  2696. .br
  2697.   enum { elementId = T&colon.&colon.id }
  2698. :font facename=default.
  2699. :p.
  2700. Constant for accessing the type identifier of the class that :link reftype=hd
  2701. res=204 dependent group=1.TSequenceEA<T>:elink. is
  2702. parametrised with. For example, :link reftype=hd res=204 dependent
  2703. group=1.TSequenceEA:elink.<:link reftype=hd res=202 dependent
  2704. group=1.StringEA:elink.>&colon.&colon.elementId == :link reftype=hd res=202
  2705. dependent group=1.StringEA:elink.&colon.&colon.:link reftype=hd
  2706. res=2227 dependent group=3.id:elink..
  2707. :p.
  2708. There is little reason to use this constant. It is used internally
  2709. by :link reftype=hd res=204 dependent
  2710. group=1.TSequenceEA<T>:elink.&colon.&colon.:link reftype=hd
  2711. res=24223 dependent group=3.cast:elink..
  2712.  
  2713. :h3 hide res=24225 x=30% width=70% height=50%. EA&colon.&colon.clone
  2714. .br
  2715. :font facename=Courier size=10x8.
  2716. public&colon.
  2717. .br
  2718.   virtual TSequenceEA<T>* clone(void) const
  2719. :font facename=default.
  2720. :p.
  2721. Create an exact deep copy of self on the heap and return the pointer
  2722. to it. Used by the copy constructors and assignment operators of
  2723. extended attribute collections such as :link reftype=hd res=203
  2724. dependent group=1.MTSequenceEA:elink. and :link reftype=hd res=204
  2725. dependent group=1.TSequenceEA<T>:elink..
  2726. :p.
  2727. clone itself does not find or report any errors, but since it does
  2728. a deep copy of the collection, some of the containing objects
  2729. might. If and how this is done depends on the type of the
  2730. containig objects.
  2731.  
  2732. :h3 hide res=2423 x=30% width=70% height=50%. EA&colon.&colon.attributeId
  2733. .br
  2734. :font facename=Courier size=10x8.
  2735. public&colon.
  2736. .br
  2737.   :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2738. reftype=hd res=2121 dependent group=3.Identifier:elink.
  2739. :link reftype=hd res=21216 dependent group=3.attributeId:elink.(void) const
  2740. :font facename=default.
  2741. :p.
  2742. Returns :link reftype=hd res=206 dependent
  2743. group=1.SequenceEA:elink.&colon.&colon.:link reftype=hd res=2634 dependent
  2744. group=3.id:elink.
  2745. :p.
  2746. Possible errors.
  2747. :sl compact.
  2748. :li.-
  2749. :esl.
  2750.  
  2751. :h3 hide res=2424 x=30% width=70% height=50%. EA&colon.&colon.getFrom
  2752. .br
  2753. :font facename=Courier size=10x8.
  2754. public&colon.
  2755. .br
  2756.   void getFrom(const IString&. file,
  2757. .br
  2758.                const IString&. name);
  2759. .br
  2760.   void getFrom(fstreambase&. file,
  2761. .br
  2762.                const IString&. name);
  2763. :font facename=default.
  2764. :p.
  2765. Read the value of the named extended attribute for the file into the
  2766. :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink. object.
  2767. :p.
  2768. Possible errors are&colon.
  2769. :dl tsize=25.
  2770. :dthd.:hp2.Error:ehp2.
  2771. :ddhd.:hp2.Action:ehp2.
  2772. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2773. reftype=hd res=2128 dependent group=3.ReadError:elink.
  2774. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2775. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2776. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2777. reftype=hd res=2128 dependent group=3.ReadError:elink. and the error
  2778. code returned by OS/2. If :link reftype=hd res=201 dependent
  2779. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21211 dependent
  2780. group=3.errorHandler:elink. returns, the TSequenceEA<T> object
  2781. will remains unchanged.
  2782. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2783. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink.
  2784. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2785. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2786. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2787. reftype=hd res=2128 dependent group=3.NoSuchEAError:elink. and 0.
  2788. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2789. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns, the
  2790. TSequenceEA<T> object will remain unchanged.
  2791. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2792. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  2793. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2794. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2795. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2796. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink. and the
  2797. type found. If :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2798. reftype=hd res=21211 dependent group=3.errorHandler:elink. returns,
  2799. the TSequenceEA<T> object will remain unchanged.
  2800. :edl.
  2801. :p.
  2802. :link reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  2803. is called both if the named attribute is not a typed
  2804. sequence extended attribute, and if the type of the content read is not
  2805. that of T.
  2806. :nt.In addition to the above, it is possible that some of the contained
  2807. objects will find and report errors. If and how that is done depends on
  2808. the type of the objects.
  2809. :ent.
  2810.  
  2811. :h3 hide res=2425 x=30% width=70% height=50%. EA&colon.&colon.storeTo
  2812. .br
  2813. :font facename=Courier size=10x8.
  2814. public&colon.
  2815. .br
  2816.   void storeTo(const IString&. file,
  2817. .br
  2818.                const IString&. name);
  2819. .br
  2820.   void storeTo(fstreambase&. file,
  2821. .br
  2822.                const IString&. name);
  2823. :font facename=default.
  2824. :p.
  2825. Write the value of the typed extended attribute sequence to the
  2826. file using the name given.
  2827. :p.
  2828. Possible errors are&colon.
  2829. :dl tsize=25.
  2830. :dthd.:hp2.Error:ehp2.
  2831. :ddhd.:hp2.Action:ehp2.
  2832. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2833. reftype=hd res=2128 dependent group=3.WriteError:elink.
  2834. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2835. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2836. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2837. reftype=hd res=2128 dependent group=3.WriteError:elink. and the
  2838. error code returned by OS/2.
  2839. :edl.
  2840. :h3 hide res=2426 x=30% width=70% height=50%. TSequenceEA<T>&colon.&colon.readFrom
  2841. .br
  2842. :font facename=Courier size=10x8.
  2843. protected&colon.
  2844. .br
  2845.   virtual istrstream&. readFrom(istrstream&. is)
  2846. :font facename=default.
  2847. :p.
  2848. Overrides :link reftype=hd res=201 dependent
  2849. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2135.readFrom:elink.
  2850. to read the content of the typed sequence extended attribute and
  2851. store its value in the :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink
  2852. object itself.
  2853. :p.
  2854. Possible errors are&colon.
  2855. :dl tsize=25.
  2856. :dthd.:hp2.Error:ehp2.
  2857. :ddhd.:hp2.Action:ehp2.
  2858. :dt.:link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2859. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink.
  2860. :dd.Call :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2861. reftype=hd res=21211 dependent group=3.errorHandler:elink. with
  2862. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  2863. reftype=hd res=2128 dependent group=3.TypeMismatchError:elink. and the
  2864. type found. This means that the content type of the sequence (i.e.
  2865. T&colon.&colon.id) was not the content type read from the stream.
  2866. :edl.
  2867. :nt.In addition to the above, it is possible that some of the contained
  2868. objects will find and report errors. If and how that is done depends on
  2869. the type of the objects.
  2870. :ent.
  2871.  
  2872.  
  2873. :h3 hide res=2427 x=30% width=70% height=50%. TSequenceEA<T>&colon.&colon.writeTo
  2874. .br
  2875. :font facename=Courier size=10x8.
  2876. protected&colon.
  2877. .br
  2878.   virtual ostrstream&. writeTo(ostrstream&. os)
  2879. :font facename=default.
  2880. :p.
  2881. Overrides :link reftype=hd res=201 dependent
  2882. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2136.writeTo:elink.
  2883. to write the content of the typed sequence extended attribute.
  2884. :p.
  2885. Possible errors are&colon.
  2886. :sl compact.
  2887. :li.-
  2888. :esl.
  2889. :nt.It is possible that some of the contained objects will find and
  2890. report errors. If and how that is done depends on the type of the objects.
  2891. :ent.
  2892. :h3 hide res=2520 x=30% width=70% height=50%. TEA<T,EA&colon.&colon.Identifier>&colon.&colon.id
  2893. .br
  2894. :font facename=Courier size=10x8.
  2895. template <class T, EA&colon.&colon.Identifier eaid>
  2896. .br
  2897. class TEA
  2898. .br
  2899. {
  2900. .br
  2901. public&colon.
  2902. .br
  2903.   struct { id = eaid; };
  2904. .br
  2905. &dot.&dot.&dot.
  2906. .br
  2907. :font facename=default.
  2908. A named class constant with the value passed when instantiating :link
  2909. reftype=hd res=205 dependent group=1.TEA:elink..
  2910. Representing the type for the concrete extended attribute object
  2911. inheriting from :link reftype=hd res=205 dependent group=1.TEA:elink..
  2912.  
  2913. :fn id=2521.
  2914. Destructor for TEA. Does nothing explicit, since TEA does not have
  2915. any data of its own.
  2916. :efn.
  2917.  
  2918. :h3 hide res=2522 x=30% width=70% height=50%. TEA<T,EA&colon.&colon.Identifier>&colon.&colon.cast
  2919. .br
  2920. :font facename=Courier size=10x8.
  2921. template <class T,EA&colon.&colon.Identifier eaid>
  2922. .br
  2923. class TEA<T,eaid>
  2924. .br
  2925. {
  2926. .br
  2927. public&colon.
  2928. .br
  2929.   static T* cast(:link reftype=hd res=201 dependent group=1.EA:elink.*);
  2930. .br
  2931.   static const T* cast(const :link reftype=hd res=201 dependent group=1.EA:elink.*);
  2932. .br
  2933.   &dot.&dot.&dot.
  2934. :font facename=default.
  2935. :p.
  2936. Cast pointers to :link reftype=hd res=201 dependent group=1.EA:elink. to
  2937. pointers of class T if, and only if, the type identifier of the :link
  2938. reftype=hd res=201 dependent group=1.EA:elink. object is identical to
  2939. the typeid :link reftype=hd res=205 dependent group=1.TEA:elink. is
  2940. instantiated with (i.e. T&colon.&colon.:link reftype=hd res=2520
  2941. dependent group=1.id:elink..) Return 0 otherwise.
  2942. :p.
  2943. :caution.cast is unable to differ between objects of class T and other
  2944. implementation of T&colon.&colon.id, since only the attribute id is compared.
  2945. :ecaution.
  2946. :p.
  2947. Possible errors are&colon.
  2948. :sl compact.
  2949. :li.-
  2950. :esl.
  2951.  
  2952. :h3 hide res=2523 x=30% width=70% height=50%. TEA<T,EA&colon.&colon.Identifier>&colon.&colon.allowDynamic
  2953. .br
  2954. :font facename=Courier size=10x8.
  2955. public&colon.
  2956. .br
  2957. static void allowDynamic(:link reftype=hd res=201 dependent
  2958. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  2959. group=3.CreatorMap:elink.* pCM =
  2960. .br
  2961.                          &.:link reftype=hd res=201 dependent
  2962. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  2963. group=3.defaultCreatorMap:elink.,
  2964. .br
  2965.                          const :link reftype=hd res=201 dependent
  2966. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2122 dependent
  2967. group=3.Creator:elink.&. = :link reftype=hd res=205 dependent
  2968. group=1.TEA:elink.<T,:link reftype=hd res=201 dependent
  2969. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2121 dependent
  2970. group=3.Identifier:elink.>&colon.&colon.createFrom);
  2971. :font facename=default.
  2972. :p.
  2973. Add the creator of the descendant of TEA to the provided creator map.
  2974. :note text='Note for designers of new classes'.
  2975. A default creator is provided by TEA. If you need a different one,
  2976. you must write an allowDynamic function for your own class, and a
  2977. special creator function for it. If you have only a specific
  2978. creator function, override allowDynamic to take the creator function
  2979. as its default argument, and call TEA&colon.&colon.allowDynamic from your own
  2980. override.
  2981. :p.
  2982. Possible errors are&colon.
  2983. :sl compact.
  2984. :li.-
  2985. :esl.
  2986.  
  2987. :h3 hide res=2524 x=30% width=70% height=50%. TEA<T,EA&colon.&colon.Identifier>&colon.&colon.disallowDynamic
  2988. .br
  2989. :font facename=Courier size=10x8.
  2990. public&colon.
  2991. .br
  2992.   static void
  2993. .br
  2994.     disallowDynamic(:link reftype=hd res=201 dependent
  2995. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124
  2996. dependent group=1.CreatorMap:elink.* pCM =
  2997. .br
  2998.                     &.:link reftype=hd res=201 dependent
  2999. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210
  3000. dependent group=1.defaultCreatorMap:elink.);
  3001. :font facename=default.
  3002. :p.
  3003. Remove the creator of the descendant of :link reftype=hd res=205
  3004. dependent group=1.TEA:elink. from the provided creator map.
  3005. :p.
  3006. Possible errors are&colon.
  3007. :sl compact.
  3008. :li.-
  3009. :esl.
  3010.  
  3011. :h3 hide res=2525 x=30% width=70% height=50%. TEA<T,EA&colon.&colon.Identifier>&colon.&colon.TEA
  3012. .br
  3013. :font facename=Courier size=10x8.
  3014. protected&colon.
  3015. .br
  3016.   :link reftype=hd res=205 dependent group=1.TEA:elink.(void);
  3017. .br
  3018.   :link reftype=hd res=205 dependent group=1.TEA:elink.(const :link
  3019. reftype=hd res=205 dependent group=1.TEA:elink.<T, :link reftype=hd
  3020. res=201 dependent group=1.EA:elink.&colon.&colon.:link reftype=hd
  3021. res=2121 dependent group=3.Identifier>:elink.&.t);
  3022. :font facename=default.
  3023. :p.
  3024. Initialise the extended attribute base object. Use when implementing
  3025. descendant extended attribute classes.
  3026. :p.
  3027. Possible errors are&colon.
  3028. :sl compact.
  3029. :li.-
  3030. :esl.
  3031.  
  3032. :h3 hide res=2526 x=30% width=70% height=50%. TEA<T,EA&colon.&colon.Identifier>&colon.&colon.operator=
  3033. .br
  3034. :font facename=Courier size=10x8.
  3035. protected&colon.
  3036. .br
  3037.   const :link reftype=hd res=205 dependent group=1.TEA:elink.<T, :link
  3038. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  3039. reftype=hd res=2121 dependent group=3.Identifier:elink.>&. operator=(const
  3040. :link reftype=hd res=205 dependent group=1.TEA:elink.<T, :link
  3041. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  3042. reftype=hd res=2121 dependent group=3.Identifier:elink.>&. t)
  3043. :font facename=default.
  3044. :p.
  3045. Copy the content and status of t to self and return self reference. Use
  3046. in the implementation of descendants from :link reftype=hd res=205
  3047. dependent group=1.TEA:elink.<T, :link reftype=hd res=201 dependent
  3048. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2121 dependent
  3049. group=3.Identifier:elink.>.
  3050. :p.
  3051. Possible errors are&colon.
  3052. :sl compact.
  3053. :li.-
  3054. :esl.
  3055.  
  3056. :h3 hide res=2621 x=30% width=70% height=50%. SequenceEA&colon.&colon.errorFunction
  3057. .br
  3058. :font facename=Courier size=10x8.
  3059. public&colon.
  3060. .br
  3061.   static :link reftype=hd res=201 dependent group=1.EA:elink.*
  3062. (*errorFunction)(:link reftype=hd res=201 dependent
  3063. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2121 dependent
  3064. group=3.Identifier:elink.);
  3065. :font facename=default.
  3066. :p.
  3067. The error function called if a :link reftype=hd res=204 dependent
  3068. group=1.TSequenceEA<T>:elink., for which allowDynamic
  3069. has not been called (but another :link reftype=hd res=204 dependent
  3070. group=1.TSequenceEA<T>:elink. has been allowed,) is
  3071. attempted to be read anonymously (by
  3072. :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  3073. reftype=hd res=21213 dependent group=3.newFrom:elink.
  3074. or as an element in :link reftype=hd res=203 dependent
  3075. group=1.MTSequenceEA:elink.) The default function throws an
  3076. EATSequenceEAInstError exception, with the identifier of the content
  3077. type as the error code. To override this function, simply assign it
  3078. your own. The value returned from the function (if it returns) is
  3079. what :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  3080. reftype=hd res=21213 dependent group=3.newFrom:elink. or :link
  3081. reftype=hd res=203 dependent group=1.MTSequenceEA:elink. gets.
  3082.  
  3083. :h3 hide res=2622 x=30% width=70% height=50%. SequenceEA&colon.&colon.~SequenceEA
  3084. .br
  3085. :font facename=Courier size=10x8.
  3086. public&colon.
  3087. .br
  3088.   virtual ~:link reftype=hd res=206 dependent group=1.SequenceEA:elink.(void)
  3089. :font facename=default.
  3090. :p.
  3091. Destroy the :link reftype=hd res=206 dependent group=1.SequenceEA:elink.
  3092. object.
  3093. :p.
  3094. Possible errors are&colon.
  3095. :sl compact.
  3096. :li.-
  3097. :esl.
  3098.  
  3099. :h3 hide res=2623 x=30% width=70% height=50%. SequenceEA&colon.&colon.getCodePage
  3100. .br
  3101. :font facename=Courier size=10x8.
  3102. public&colon.
  3103. .br
  3104.   unsigned short getCodePage(void) const;
  3105. :font facename=default.
  3106. :p.
  3107. Return the code page used by the :link reftype=hd res=204 dependent
  3108. group=1.TSequenceEA<T>:elink. object. Code page 0
  3109. means the same code page as used by the application.
  3110. :p.
  3111. Possible errors are&colon.
  3112. :sl compact.
  3113. :li.-
  3114. :esl.
  3115.  
  3116. :h3 hide res=2624 x=30% width=70% height=50%. SequenceEA&colon.&colon.setCodePage
  3117. .br
  3118. :font facename=Courier size=10x8.
  3119. public&colon.
  3120. .br
  3121.   void setCodePage(unsigned short p)
  3122. :font facename=default.
  3123. :p.
  3124. Set the code page for the instance of :link reftype=hd res=204
  3125. dependent group=1.TSequenceEA<T>:elink.. Code page 0 means
  3126. to use the same code page as the application.
  3127. :p.
  3128. Possible errors are&colon.
  3129. :sl compact.
  3130. :li.-
  3131. :esl.
  3132.  
  3133. :h3 hide res=2625 x=30% width=70% height=50%. SequenceEA&colon.&colon.contentId
  3134. .br
  3135. :font facename=Courier size=10x8.
  3136. public&colon.
  3137. .br
  3138.   :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  3139. reftype=hd res=2121 dependent group=3.Identifier:elink. contentId(void) const
  3140. :font facename=deafult.
  3141. :p.
  3142. Returns the identifier of the content type, i.e. :link reftype=hd
  3143. res=204 dependent group=1.TSequenceEA<T>:elink.&colon.&colon.contentId()
  3144. returns T&colon.&colon.id. Since you will normally not work with :link
  3145. reftype=hd res=206 dependent group=1.SequenceEA:elink. directly,
  3146. but rather instances of :link reftype=hd res=204 dependent
  3147. group=1.TSequenceEA<T>:elink., there will be little need for
  3148. this function. It is used internally by the :link reftype=hd res=204
  3149. dependent group=1.TSequenceEA<T>:elink. override of
  3150. :link reftype=hd res=205 dependent group=1.TEA:elink.<T,:link
  3151. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  3152. reftype=hd res=2121 dependent group=3.Identifier:elink.>&colon.&colon.:link
  3153. reftype=hd res=2522 dependent group=3.cast:elink.
  3154. functions.
  3155. :p.
  3156. Possible errors are&colon.
  3157. :sl compact.
  3158. :li.-
  3159. :esl.
  3160.  
  3161. :h3 hide res=2626 x=30% width=70% height=50%. SequenceEA&colon.&colon.clone
  3162. .br
  3163. :font facename=Courier size=10x8.
  3164. public&colon.
  3165. .br
  3166.   virtual :link reftype=hd res=206 dependent group=1.SequenceEA:elink.*
  3167. clone(void) const
  3168. :font facename=default.
  3169. :p.
  3170. Returns 0. This version of clone should never be called, since
  3171. :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink. overrides
  3172. it.
  3173. :p.
  3174. Possible errors are&colon.
  3175. :sl compact.
  3176. :li.-
  3177. :esl.
  3178.  
  3179. :h3 hide res=2627 x=30% width=70% height=50%. EA&colon.&colon.setCreatorMap
  3180. .br
  3181. :font facename=Courier size=10x8.
  3182. public&colon.
  3183. .br
  3184.   virtual void setCreatorMap(const :link reftype=hd res=201 dependent
  3185. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  3186. group=1.CreatorMap:elink.*)
  3187. :font facename=default.
  3188. :p.
  3189. Override of the empty default function in :link reftype=hd res=201
  3190. dependent group=1.EA:elink.. It sets the :link reftype=hd res=206
  3191. dependent group=1.SequenceEA:elink.&colon.&colon.:link reftype=hd
  3192. res=2628 dependent group=3.pCreatorMap:elink. to
  3193. the map passed, to make sure children of the :link reftype=hd
  3194. res=204 dependent group=1.TSequenceEA<T>:elink. object are created from the
  3195. correct creator map.
  3196. :p.
  3197. Possible errors are&colon.
  3198. :sl compact.
  3199. :li.-
  3200. :esl.
  3201.  
  3202. :h3 hide res=2628 x=30% width=70% height=50%. SequenceEA&colon.&colon.pCreatorMap
  3203. .br
  3204. :font facename=Courier size=10x8.
  3205. protected&colon.
  3206. .br
  3207.   const :link reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  3208. reftype=hd res=2124 dependent group=3.CreatorMap:elink.* pCreatorMap
  3209. :font facename=default.
  3210. :p.
  3211. Creator map passed to the containing objects of the :link reftype=hd
  3212. res=204 dependent group=1.TSequenceEA<T>:elink. inheriting
  3213. :link reftype=hd res=206 dependent group=1.SequenceEA:elink., as they are
  3214. created, to make sure they are read from the creator map specified. This
  3215. is only needed if the type of T is a collection class.
  3216.  
  3217. :h3 hide res=2629 x=30% width=70% height=50%. SequenceEA&colon.&colon.allowDynamic
  3218. .br
  3219. :font facename=Courier size=10x8.
  3220. protected&colon.
  3221. .br
  3222.   static void allowDynamic(:link reftype=hd res=201 dependent
  3223. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  3224. group=3.CreatorMap:elink.* pCM,
  3225. .br
  3226.                            const :link reftype=hd res=201 dependent
  3227. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2122 dependent
  3228. group=3.Creator:elink.&. creator = :link reftype=hd res=206 dependent
  3229. group=1.SequenceEA:elink.&colon.&colon.createFrom)
  3230. :font facename=default.
  3231. :p.
  3232. Override of the default from :link reftype=hd res=205 dependent
  3233. group=1.TEA:elink., to allow descendants of :link reftype=hd res=206
  3234. dependent group=1.SequenceEA:elink. to allow creation of :link
  3235. reftype=hd res=206 dependent group=1.SequenceEA:elink. objects through
  3236. the private creator function :link reftype=hd res=201 dependent
  3237. group=1.SequenceEA:elink.&colon.&colon.createFrom.
  3238.  
  3239. :h3 hide res=2630 x=30% width=70% height=50%. SequenceEA&colon.&colon.SequenceEA
  3240. .br
  3241. :font facename=Courier size=10x8.
  3242. protected&colon.
  3243. .br
  3244.   :link reftype=hd res=206 dependent group=1.SequenceEA:elink.(:link
  3245. reftype=hd res=201 dependent group=1.EA:elink.&colon.&colon.:link
  3246. reftype=hd res=2121 dependent group=3.Identifier:elink. id,
  3247. .br
  3248.              :link reftype=hd res=201 dependent
  3249. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2124 dependent
  3250. group=3.CreatorMap:elink.* pCM = &.:link reftype=hd res=201 dependent
  3251. group=1.EA:elink.&colon.&colon.:link reftype=hd res=21210 dependent
  3252. group=3.defaultCreatorMap:elink.);
  3253. .br
  3254.   :link reftype=hd res=206 dependent group=1.SequenceEA:elink.(const
  3255. :link reftype=hd res=206 dependent group=1.SequenceEA:elink.&. mvea);
  3256. :font facename=default.
  3257. :p.
  3258. Initialise instance of :link reftype=hd res=206 dependent
  3259. group=1.SequenceEA:elink.. Used by the constructors for
  3260. :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink..
  3261. :p.
  3262. Possible errors are&colon.
  3263. :sl compact.
  3264. :li.-
  3265. :esl.
  3266.  
  3267. :h3 hide res=2631 x=30% width=70% height=50%. SequenceEA&colon.&colon.operator=
  3268. .br
  3269. :font facename=Courier size=10x8.
  3270. protected&colon.
  3271. .br
  3272.   const :link reftype=hd res=206 dependent group=1.SequenceEA:elink.&.
  3273. operator=(const :link reftype=hd res=206 dependent
  3274. group=1.SequenceEA:elink.&. mvea);
  3275. :font facename=default.
  3276. :p.
  3277. Copy content and status of mvea to self and return self reference. Used
  3278. by the assignment operator in :link reftype=hd res=204 dependent
  3279. group=1.TSequenceEA<T>:elink.
  3280. :p.
  3281. Possible errors are&colon.
  3282. :sl compact.
  3283. :li.-
  3284. :esl.
  3285.  
  3286. :h3 hide res=2632 x=30% width=70% height=50%. SequenceEA&colon.&colon.writeTo
  3287. .br
  3288. :font facename=Courier size=10x8.
  3289. protected&colon.
  3290. .br
  3291.   virtual ostrstream&. writeTo(ostrstream&. os)
  3292. :font facename=default.
  3293. :p.
  3294. Override of :link reftype=hd res=201 dependent
  3295. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2136 dependent
  3296. group=3.writeTo:elink. that does nothing. Should never be called
  3297. since :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  3298. overrides it.
  3299. :p.
  3300. Possible errors are&colon.
  3301. :sl compact.
  3302. :li.-
  3303. :esl.
  3304.  
  3305. :h3 hide res=2633 x=30% width=70% height=50%. SequenceEA&colon.&colon.readFrom
  3306. .br
  3307. :font facename=Courier size=10x8.
  3308. protected&colon.
  3309. .br
  3310.   virtual istrstream&. readFrom(istrstream&. is)
  3311. :font facename=default.
  3312. :p.
  3313. Override of :link reftype=hd res=201 dependent
  3314. group=1.EA:elink.&colon.&colon.:link reftype=hd res=2135 dependent
  3315. group=3.readFrom:elink. that does nothing. Should never be called since
  3316. :link reftype=hd res=204 dependent group=1.TSequenceEA<T>:elink.
  3317. overrides it.
  3318. :p.
  3319. Possible errors are&colon.
  3320. :sl compact.
  3321. :li.-
  3322. :esl.
  3323.  
  3324. :h3 hide res=2634 x=30% width=70% height=50%. SequenceEA&colon.&colon.id
  3325. .br
  3326. :font facename=Courier size=10x8.
  3327. public&colon.
  3328. .br
  3329.   enum { id = EAT_MVST };
  3330. :font facename=default.
  3331. :p.
  3332. :euserdoc.
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.