summaryrefslogtreecommitdiff
path: root/bin/classinfo.ps
blob: 950535ed86e5a8b4c9798b03500a0430d873c95e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
%!PS-Adobe-3.0
%%BoundingBox: 54 72 558 720
%%Creator: Mozilla (NetScape) HTML->PS
%%DocumentData: Clean7Bit
%%Orientation: Portrait
%%Pages: 9
%%PageOrder: Ascend
%%Title: Classinfo Tools
%%EndComments
%%BeginProlog
[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
 /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
 /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
 /two /three /four /five /six /seven /eight /nine /colon /semicolon
 /less /equal /greater /question /at /A /B /C /D /E
 /F /G /H /I /J /K /L /M /N /O
 /P /Q /R /S /T /U /V /W /X /Y
 /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
 /d /e /f /g /h /i /j /k /l /m
 /n /o /p /q /r /s /t /u /v /w
 /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
 /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
 /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
 /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
 /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
 /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
 /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
 /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
 /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
 /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
/c { matrix currentmatrix currentpoint translate
     3 1 roll scale newpath 0 0 1 0 360 arc setmatrix } bind def
/F0
    /Times-Roman findfont
    dup length dict begin
	{1 index /FID ne {def} {pop pop} ifelse} forall
	/Encoding isolatin1encoding def
    currentdict end
definefont pop
/f0 { /F0 findfont exch scalefont setfont } bind def
/F1
    /Times-Bold findfont
    dup length dict begin
	{1 index /FID ne {def} {pop pop} ifelse} forall
	/Encoding isolatin1encoding def
    currentdict end
definefont pop
/f1 { /F1 findfont exch scalefont setfont } bind def
/F2
    /Times-Italic findfont
    dup length dict begin
	{1 index /FID ne {def} {pop pop} ifelse} forall
	/Encoding isolatin1encoding def
    currentdict end
definefont pop
/f2 { /F2 findfont exch scalefont setfont } bind def
/F3
    /Times-BoldItalic findfont
    dup length dict begin
	{1 index /FID ne {def} {pop pop} ifelse} forall
	/Encoding isolatin1encoding def
    currentdict end
definefont pop
/f3 { /F3 findfont exch scalefont setfont } bind def
/F4
    /Courier findfont
    dup length dict begin
	{1 index /FID ne {def} {pop pop} ifelse} forall
	/Encoding isolatin1encoding def
    currentdict end
definefont pop
/f4 { /F4 findfont exch scalefont setfont } bind def
/F5
    /Courier-Bold findfont
    dup length dict begin
	{1 index /FID ne {def} {pop pop} ifelse} forall
	/Encoding isolatin1encoding def
    currentdict end
definefont pop
/f5 { /F5 findfont exch scalefont setfont } bind def
/F6
    /Courier-Oblique findfont
    dup length dict begin
	{1 index /FID ne {def} {pop pop} ifelse} forall
	/Encoding isolatin1encoding def
    currentdict end
definefont pop
/f6 { /F6 findfont exch scalefont setfont } bind def
/F7
    /Courier-BoldOblique findfont
    dup length dict begin
	{1 index /FID ne {def} {pop pop} ifelse} forall
	/Encoding isolatin1encoding def
    currentdict end
definefont pop
/f7 { /F7 findfont exch scalefont setfont } bind def
/rhc {
    {
        currentfile read {
	    dup 97 ge
		{ 87 sub true exit }
		{ dup 48 ge { 48 sub true exit } { pop } ifelse }
	    ifelse
	} {
	    false
	    exit
	} ifelse
    } loop
} bind def

/cvgray { % xtra_char npix cvgray - (string npix long)
    dup string
    0
    {
	rhc { cvr 4.784 mul } { exit } ifelse
	rhc { cvr 9.392 mul } { exit } ifelse
	rhc { cvr 1.824 mul } { exit } ifelse
	add add cvi 3 copy put pop
	1 add
	dup 3 index ge { exit } if
    } loop
    pop
    3 -1 roll 0 ne { rhc { pop } if } if
    exch pop
} bind def

/smartimage12rgb { % w h b [matrix] smartimage12rgb -
    /colorimage where {
	pop
	{ currentfile rowdata readhexstring pop }
	false 3
	colorimage
    } {
	exch pop 8 exch
	3 index 12 mul 8 mod 0 ne { 1 } { 0 } ifelse
	4 index
	6 2 roll
	{ 2 copy cvgray }
	image
	pop pop
    } ifelse
} def
/cshow { dup stringwidth pop 2 div neg 0 rmoveto show } bind def
/rshow { dup stringwidth pop neg 0 rmoveto show } bind def
%%EndProlog
%%Page: 1 1
%%BeginPageSetup
/pagelevel save def
54 0 translate
%%EndPageSetup
newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath
24 f1 0 697.5 moveto
(OSE - Tools User Guide) show
12 f2 0 668.5 moveto
(Graham Dumpleton) show
12 f2 0 655.4 moveto
(Dumpleton Software Consulting Pty Limited) show
12 f2 0 642.3 moveto
(PO BOX 3150) show
12 f2 0 629.2 moveto
(Parramatta, 2124) show
12 f2 0.2 616.1 moveto
(N.S.W, Australia) show
12 f2 0 603 moveto
(email: grahamd@nms.otc.com.au) show
0 593.9 moveto
504 0 rlineto 0 -1.4 rlineto -504 0 rlineto closepath  fill 
18 f1 0 557.2 moveto
(Table of Contents) show
12 f1 0 528.8 moveto
(Classinfo Tools) show
12 f0 78.3 528.8 moveto
( ) show
12 f1 28 501.7 moveto
(1 Available Programs) show
12 f0 139.3 501.7 moveto
( ) show
12 f1 28 487.9 moveto
(2 Global Sections) show
12 f0 116.6 487.9 moveto
( ) show
12 f1 28 474.1 moveto
(3 Block Formatting) show
12 f0 127.9 474.1 moveto
( ) show
12 f1 28 460.3 moveto
(4 Inline Formatting) show
12 f0 128.6 460.3 moveto
( ) show
12 f1 28 446.5 moveto
(5 Class Sections) show
12 f0 109.3 446.5 moveto
( ) show
12 f1 28 432.7 moveto
(6 Member Documentation) show
12 f0 162.6 432.7 moveto
( ) show
12 f1 28 418.9 moveto
(7 Contract Section) show
12 f0 123.3 418.9 moveto
( ) show
0 396.5 moveto
504 0 rlineto 0 -1.4 rlineto -504 0 rlineto closepath  fill 
24 f1 0 354 moveto
(Classinfo Tools) show
18 f1 0 318.7 moveto
(1 Available Programs) show
12 f0 0 290.8 moveto
(The documentation tools provided with the OSE build environment, allow comments in your code files,) show
12 f0 0 277.5 moveto
(to be extracted and formatted into end user documentation. To enable the tools to do this in a predictable) show
12 f0 0 264.2 moveto
(manner, the comments must be formatted according to a small set of rules. At present, the tools can) show
12 f0 0 250.9 moveto
(extract comments from C++ class header files and produce either UNIX style manual pages, of Frame) show
12 f0 0 237.6 moveto
(mml files. The tools provided are described below.) show
10 f4 0 213.7 moveto
(-------------------------------------------------------------------------------) show
10 f5 0 203.2 moveto
(Program) show
10 f4 42.2 203.2 moveto
(     ) show
10 f5 72.2 203.2 moveto
(Purpose) show
10 f4 114.2 203.2 moveto
(                                                              ) show
10 f4 0 192.7 moveto
(-------------------------------------------------------------------------------) show
10 f4 0 182.2 moveto
(class2info  Parses a C++ header file and produces a file which contains infor    ) show
10 f4 0 171.7 moveto
(            mation about the class in the header file, in a form which is more   ) show
10 f4 0 161.2 moveto
(            easily parsed by other tools.                                        ) show
10 f4 0 150.7 moveto
(info2man    Takes the output file from class2info and produces a UNIX            ) show
10 f4 0 140.2 moveto
(            style manual page for each class described in the input file.        ) show
10 f4 0 129.7 moveto
(class2man   Combines the programs class2info and info2man, to pro                ) show
10 f4 0 119.2 moveto
(            duce a UNIX style manual page for each class declaration in a        ) show
10 f4 0 108.7 moveto
(            header file.                                                         ) show
10 f4 0 98.2 moveto
(info2mml    Takes the output file from class2info and produces a Frame           ) show
10 f4 0 87.7 moveto
(            mml file for each class described in the inout file.                 ) show
10 f4 0 77.2 moveto
(class2mml   Combines the programs class2info and info2mml, to pro                ) show
pagelevel restore
showpage
%%Page: 2 2
%%BeginPageSetup
/pagelevel save def
54 0 translate
%%EndPageSetup
newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath
10 f4 0 711.9 moveto
(            duce a Frame mml file for each class declaration in a header file.   ) show
10 f4 0 701.4 moveto
(-------------------------------------------------------------------------------) show
12 f0 0 677.7 moveto
(Using the same front end parser as the documentation extraction tools, are the following tools:) show
10 f4 0 653.8 moveto
(----------------------------------------------------------------------------) show
10 f5 0 643.3 moveto
(Program) show
10 f4 42.2 643.3 moveto
(    ) show
10 f5 66.2 643.3 moveto
(Purpose) show
10 f4 108.2 643.3 moveto
(                                                            ) show
10 f4 0 632.8 moveto
(----------------------------------------------------------------------------) show
10 f4 0 622.3 moveto
(info2src   Takes the output file from class2info and produces on stan         ) show
10 f4 0 611.8 moveto
(           dard output, empty stub functions for each of the member func      ) show
10 f4 0 601.3 moveto
(           tions listed in the class declarations described in the file.      ) show
10 f4 0 590.8 moveto
(class2src  Combines the programs class2info and info2src, to pro              ) show
10 f4 0 580.3 moveto
(           duce on standard output, empty stub functions for each of the      ) show
10 f4 0 569.8 moveto
(           member functions listed in the class declarations described in a   ) show
10 f4 0 559.3 moveto
(           header file.                                                       ) show
10 f4 0 548.8 moveto
(----------------------------------------------------------------------------) show
12 f0 0 525.1 moveto
(These use information contained in a C++ class header file, to produce code stubs suitable for the) show
12 f0 0 511.8 moveto
(corresponding implementation file for that class.) show
12 f0 0 485.2 moveto
(The format which C++ class header files must adhere to is the subject of the remainder of this document.) show
18 f1 0 452.5 moveto
(2 Global Sections) show
12 f0 0 424.6 moveto
(To include a section in the manual page of each class in a header file, the comment containing the body) show
12 f0 0 411.3 moveto
(text of the section, must appear at global scope within the header file. The title of the section must) show
12 f0 0 398 moveto
(appear on a separate line, immediately prior to the body text of the section. To distinguish the title of the) show
12 f0 0 384.7 moveto
(section from the body text, you must precede it with a tag, consisting of the character `='. There must be) show
12 f0 0 371.4 moveto
(a single space only, before and after the tag. For example:) show
10 f4 0 347.5 moveto
(  // = SECTION TITLE) show
10 f4 0 326.5 moveto
(  //     Body text.) show
12 f0 0 302.8 moveto
(Any text following the title of the section, up till the end of the comment, the start of another section, or) show
12 f0 0 289.5 moveto
(a line commencing with `==', is interpreted to be the body text for that section. Multiple sections may be) show
12 f0 0 276.2 moveto
(documented in a single comment block. Any leading, or trailing blank lines will be discarded in the) show
12 f0 0 262.9 moveto
(output. An example of a comment block containing multiple sections is given below.) show
10 f4 0 239 moveto
(  // =====================================================) show
10 f4 0 218 moveto
(  //) show
10 f4 0 197 moveto
(  // = SECTION TITLE1) show
10 f4 0 176 moveto
(  //     Body text.) show
10 f4 0 155 moveto
(  //) show
10 f4 0 134 moveto
(  // = SECTION TITLE2) show
10 f4 0 113 moveto
(  //     Body text.) show
10 f4 0 92 moveto
(  //) show
pagelevel restore
showpage
%%Page: 3 3
%%BeginPageSetup
/pagelevel save def
54 0 translate
%%EndPageSetup
newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath
10 f4 0 711.9 moveto
(  // =====================================================) show
12 f0 0 688.2 moveto
(Certain sections, appearing at global scope, are given special treatment in the generated manual pages.) show
12 f0 0 674.9 moveto
(These are:) show
10 f4 0 651 moveto
(-------------------------------------------------------------------------------) show
10 f5 0 640.5 moveto
(Section) show
10 f4 42 640.5 moveto
(        ) show
10 f5 90 640.5 moveto
(Description) show
10 f4 156 640.5 moveto
(                                                       ) show
10 f4 0 630 moveto
(-------------------------------------------------------------------------------) show
10 f4 0 619.5 moveto
(LIBRARY        The name of the library, of which the file is a part. This will   ) show
10 f4 0 609 moveto
(               appear in the header of each manual page.                         ) show
10 f4 0 598.5 moveto
(FILENAME       The name of the file. This will be used in conjunction with       ) show
10 f4 0 588 moveto
(               the library name, to produce an include line in the synopsis.     ) show
10 f4 0 577.5 moveto
(AUTHOR\(S\)      The names of the authors. If the authors are placed on sepa       ) show
10 f4 0 567 moveto
(               rate lines, commas should not be used to terminate each line.     ) show
10 f4 0 556.5 moveto
(               If more than one author is placed on a single line, a comma       ) show
10 f4 0 546 moveto
(               should be used to separate each.                                  ) show
10 f4 0 535.5 moveto
(COPYRIGHT      The copyright applying to the contents of the file.               ) show
10 f4 0 525 moveto
(VERSION        The version number of the file. If using RCS, this would be       ) show
10 f4 0 514.5 moveto
(               set to `$Revision$'.                                              ) show
10 f4 0 504 moveto
(DATE RELEASED  The date that the current version of the file was released. If    ) show
10 f4 0 493.5 moveto
(               using RCS, this would be set to `$Date$'.                         ) show
10 f4 0 483 moveto
(RCSID          The raw ID produced by RCS. Normally set to `$Id$'.               ) show
10 f4 0 472.5 moveto
(SCCSID         The raw ID produced by SCCS. Normally set to `%W%'.               ) show
10 f4 0 462 moveto
(-------------------------------------------------------------------------------) show
12 f0 0 438.3 moveto
(Using these tags, you can construct a comment block at the start of each file, which describes the file,) show
12 f0 0 425 moveto
(authors and version of the file. For example:) show
10 f4 0 401.1 moveto
(  /*) show
10 f4 0 380.1 moveto
(  // ========================================================) show
10 f4 0 359.1 moveto
(  //) show
10 f4 0 338.1 moveto
(  // = LIBRARY) show
10 f4 0 317.1 moveto
(  //     OTC) show
10 f4 0 296.1 moveto
(  //) show
10 f4 0 275.1 moveto
(  // = FILENAME) show
10 f4 0 254.1 moveto
(  //     collctn/list.hh) show
10 f4 0 233.1 moveto
(  //) show
10 f4 0 212.1 moveto
(  // = RCSID) show
10 f4 0 191.1 moveto
(  //     $Id$) show
10 f4 0 170.1 moveto
(  //) show
10 f4 0 149.1 moveto
(  // = AUTHOR\(S\)) show
10 f4 0 128.1 moveto
(  //     Graham Dumpleton) show
10 f4 0 107.1 moveto
(  //) show
10 f4 0 86.1 moveto
(  // = COPYRIGHT) show
pagelevel restore
showpage
%%Page: 4 4
%%BeginPageSetup
/pagelevel save def
54 0 translate
%%EndPageSetup
newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath
10 f4 0 711.9 moveto
(  //     Copyright 1991 1992 1993 OTC LIMITED) show
10 f4 0 690.9 moveto
(  //) show
10 f4 0 669.9 moveto
(  // =====================================================) show
10 f4 0 648.9 moveto
(  */) show
18 f1 0 619.1 moveto
(3 Block Formatting) show
12 f0 0 591.2 moveto
(When the text of your comments appear in the manual page, they will be reformatted. If you need to) show
12 f0 0 577.9 moveto
(include an excerpt of code in the manual page, for example:) show
10 f4 0 554 moveto
(  // = EXAMPLE) show
10 f4 0 533 moveto
(  //     void dump\(Class* theClass\)) show
10 f4 0 512 moveto
(  //     {) show
10 f4 0 491 moveto
(  //       cout << theClass->name\(\) << endl;) show
10 f4 0 470 moveto
(  //     }) show
12 f0 0 446.3 moveto
(it will appear as:) show
10 f4 0 422.4 moveto
(  void dump\(Class* theClass\) { cout << *theClass << endl; }) show
12 f0 0 398.7 moveto
(If the example is complicated, the result will be unreadable.) show
12 f0 0 372.1 moveto
(To let the documentation tools know that the text you have included is special and should not be) show
12 f0 0 358.8 moveto
(reformatted, you can mark it as being a code example. For example:) show
10 f4 0 334.9 moveto
(  // = EXAMPLE) show
10 f4 0 313.9 moveto
(  // = BEGIN<CODE>) show
10 f4 0 292.9 moveto
(  //     void dump\(Class* theClass\)) show
10 f4 0 271.9 moveto
(  //     {) show
10 f4 0 250.9 moveto
(  //       cout << *theClass << endl;) show
10 f4 0 229.9 moveto
(  //     }) show
10 f4 0 208.9 moveto
(  // = END<CODE>) show
12 f0 0 185.2 moveto
(The commands in this example are, `BEGIN<CODE>'and `END<CODE>'. In all cases, the format of) show
12 f0 0 171.9 moveto
(commands used to change the formatting of a block of text is:) show
10 f4 0 148 moveto
(  // = BEGIN<COMMAND>) show
10 f4 0 127 moveto
(  // ....) show
10 f4 0 106 moveto
(  // = END<COMMAND>) show
12 f0 0 82.3 moveto
(The `BEGIN' for a command, must always have a matching `END'. The commands which are currently) show
pagelevel restore
showpage
%%Page: 5 5
%%BeginPageSetup
/pagelevel save def
54 0 translate
%%EndPageSetup
newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath
12 f0 0 709.2 moveto
(understood by the documentation tools are:) show
10 f4 0 685.3 moveto
(--------------------------------------------------------------------) show
10 f5 0 674.8 moveto
(Command) show
10 f4 42 674.8 moveto
(  ) show
10 f5 54 674.8 moveto
(Description) show
10 f4 120 674.8 moveto
(                                                  ) show
10 f4 0 664.3 moveto
(--------------------------------------------------------------------) show
10 f4 0 653.8 moveto
(INDENT   Text will be indented with respect to the surrounding text.  ) show
10 f4 0 643.3 moveto
(NOFILL   Text will be output with indentation and formatting as it    ) show
10 f4 0 632.8 moveto
(         appears.                                                     ) show
10 f4 0 622.3 moveto
(CODE     Text is output in `NOFILL' mode using a fixed width font.    ) show
10 f4 0 611.8 moveto
(COMMENT  Text will not be output. This command would be used to sur   ) show
10 f4 0 601.3 moveto
(         round comments about the implementation, which should not    ) show
10 f4 0 590.8 moveto
(         appear in the user documentation.                            ) show
10 f4 0 580.3 moveto
(--------------------------------------------------------------------) show
12 f0 0 556.6 moveto
(Commands may be nested, with the exception that no commands should be nested within a `CODE') show
12 f0 0 543.3 moveto
(block.) show
18 f1 0 510.6 moveto
(4 Inline Formatting) show
12 f0 0 482.7 moveto
(As well as changing the formatting of a block of text, you can change the font style used. This is done) show
12 f0 0 469.4 moveto
(by placing special sequences of characters in the body of the text. Inline formatting commands come in) show
12 f0 0 456.1 moveto
(the following three forms:) show
10 f4 0 432.2 moveto
(----------------------------------------------------------------------------------) show
10 f5 0 421.7 moveto
(Command) show
10 f4 42 421.7 moveto
(         ) show
10 f5 96 421.7 moveto
(Description) show
10 f4 162 421.7 moveto
(                                                         ) show
10 f4 0 411.2 moveto
(----------------------------------------------------------------------------------) show
10 f4 0 400.7 moveto
(<text>    Text between `<` and `>', is displayed in a fixed with font.  ) show
10 f4 0 390.2 moveto
(<{text}>  Text between `<{` and `}>', is displayed in an italic font.   ) show
10 f4 0 379.7 moveto
(<[text]>  Text between `<[` and `]>', is displayed in a bold font.      ) show
10 f4 0 369.2 moveto
(----------------------------------------------------------------------------------) show
12 f0 0 345.5 moveto
(`<text>' should be used for all C++ keywords, function names, variable names, class names, expressions) show
12 f0 0 332.2 moveto
(etc. The others can be used to highlight text. An example of how inline formatting commands may be) show
12 f0 0 318.9 moveto
(used, follows:) show
10 f4 0 295 moveto
(  // = ASSERTIONS) show
10 f4 0 274 moveto
(  //     Assertion checks can be placed into code using) show
10 f4 0 253 moveto
(  //     the <OTCLIB_ASSERT\(\)> macro. Note that you should) show
10 f4 0 232 moveto
(  //     <[NOT]> use an expression in the condition check,) show
10 f4 0 211 moveto
(  //     which has a side effect, the result of which is) show
10 f4 0 190 moveto
(  //     necessary for the correct operation of the) show
10 f4 0 169 moveto
(  //     program. The reason for this, is that assertions) show
10 f4 0 148 moveto
(  //     can be compiled out of your code by defining the) show
10 f4 0 127 moveto
(  //     <NDEBUG> symbol.) show
12 f0 0 103.3 moveto
(Since `<`, and `>' are special characters, you must prefix them with a `\\' if the actual character needs to) show
12 f0 0 90 moveto
(printed. For example:) show
pagelevel restore
showpage
%%Page: 6 6
%%BeginPageSetup
/pagelevel save def
54 0 translate
%%EndPageSetup
newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath
10 f4 0 711.9 moveto
(  <operator\\<\(\)>) show
12 f0 0 688.2 moveto
(If `{`, `}', `[` or `]' appear adjacent to either `<` or `>' in the forms described above, they will also need) show
12 f0 0 674.9 moveto
(to be prefixed with a `\\'. For example:) show
10 f4 0 651 moveto
(  <\\[A-Za-z_]*>) show
18 f1 0 621.2 moveto
(5 Class Sections) show
12 f0 0 593.3 moveto
(Sections pertaining to a class, are placed in the class declaration before the initial opening brace. For) show
12 f0 0 580 moveto
(example:) show
10 f4 0 556.1 moveto
(  template<class T>) show
10 f4 0 535.1 moveto
(  class OTC_List : public OTC_Collection<T>) show
10 f4 0 514.1 moveto
(      // = SECTION NAME) show
10 f4 0 493.1 moveto
(      //     Body text.) show
10 f4 0 472.1 moveto
(  {) show
10 f4 0 451.1 moveto
(    ...) show
10 f4 0 430.1 moveto
(  };) show
12 f0 0 406.4 moveto
(These sections will only appear in the manual page for that class. Sections appearing with a class, which) show
12 f0 0 393.1 moveto
(are given special treatment in the manual page are:) show
10 f4 0 369.2 moveto
(-----------------------------------------------------------------------------) show
10 f5 0 358.7 moveto
(Section) show
10 f4 42 358.7 moveto
(      ) show
10 f5 78 358.7 moveto
(Description) show
10 f4 144 358.7 moveto
(                                                       ) show
10 f4 0 348.2 moveto
(-----------------------------------------------------------------------------) show
10 f4 0 337.7 moveto
(TITLE        A one line description of the class. This will be used in the     ) show
10 f4 0 327.2 moveto
(             `NAME' section of the manual page.                                ) show
10 f4 0 316.7 moveto
(CLASS TYPE   The type of class. For example: Abstract or Concrete.             ) show
10 f4 0 306.2 moveto
(AUDIENCE     Who may use the class. For example, the class may only be         ) show
10 f4 0 295.7 moveto
(             of interest to the class librarian.                               ) show
10 f4 0 285.2 moveto
(DESCRIPTION  A description of the class.                                       ) show
10 f4 0 274.7 moveto
(NOTES        Any special features, unimplemented but desirable features,       ) show
10 f4 0 264.2 moveto
(             side effects, or known bugs.                                      ) show
10 f4 0 253.7 moveto
(SEE ALSO     References to any associated documents, systems or classes.       ) show
10 f4 0 243.2 moveto
(             If listed separately on each line, no comma should be used at     ) show
10 f4 0 232.7 moveto
(             the end of the line. If more than one appears on a single line,   ) show
10 f4 0 222.2 moveto
(             a comma should be used to separate them.                          ) show
10 f4 0 211.7 moveto
(EXAMPLE      If realistic, a brief example of how the class may be used.       ) show
10 f4 0 201.2 moveto
(             Copious examples should not be included here, but should be       ) show
10 f4 0 190.7 moveto
(             described in a separate user guide.                               ) show
10 f4 0 180.2 moveto
(-----------------------------------------------------------------------------) show
18 f1 0 150.4 moveto
(6 Member Documentation) show
12 f0 0 122.5 moveto
(Documentation for member variables and member functions do not have to be tagged, as has been the) show
12 f0 0 109.2 moveto
(case so far. It does however have to be put in a certain place with respect to the member variable or) show
12 f0 0 95.9 moveto
(function declaration. The locations, where comments related to a member function or variable can be) show
12 f0 0 82.6 moveto
(placed, are on the same line as the declaration following the semi-colon,) show
pagelevel restore
showpage
%%Page: 7 7
%%BeginPageSetup
/pagelevel save def
54 0 translate
%%EndPageSetup
newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath
10 f4 0 706.7 moveto
(  void func1\(\); // Comment) show
10 f4 0 685.7 moveto
(  void func2\(\); // Comment) show
12 f0 0 662 moveto
(or on the line immediately following the declaration.) show
10 f4 0 638.1 moveto
(  void func1\(\);) show
10 f4 0 617.1 moveto
(    // Comment) show
10 f4 0 585.6 moveto
(  void func2\(\);) show
10 f4 0 564.6 moveto
(    // Comment) show
12 f0 0 540.9 moveto
(The comment may extend over more than one line. A comment for a particular member variable or) show
12 f0 0 527.6 moveto
(function will be terminated by any line which doesn't contain only a comment. A comment will only be) show
12 f0 0 514.3 moveto
(associated with the declaration which immediately preceeds it. For example:) show
10 f4 0 490.4 moveto
(  void func1\(\);) show
10 f4 0 469.4 moveto
(  void func2\(\);) show
10 f4 0 448.4 moveto
(    // Comment) show
12 f0 0 424.7 moveto
(the comment is associated with func2\(\) only and not func1\(\).) show
12 f0 0 398.1 moveto
(If a member function is defined inline, the comment must be placed after the code. For example:) show
10 f4 0 374.2 moveto
(  void func1\(\) { ... }) show
10 f4 0 353.2 moveto
(    // Comment) show
10 f4 0 321.7 moveto
(  void func2\(\)) show
10 f4 0 300.7 moveto
(    { ... }) show
10 f4 0 279.7 moveto
(    // Comment) show
12 f0 0 256 moveto
(A limitation of the extraction tools, currently requires that you do not place comments, or blank lines,) show
12 f0 0 242.7 moveto
(within the body of the inline code.) show
18 f1 0 210 moveto
(7 Contract Section) show
12 f0 0 182.1 moveto
(Contracts allow grouping of related member functions and variables. This) show
12 f0 0 155.5 moveto
(makes it easier to find a function which serves the purpose you require.) show
12 f0 0 128.9 moveto
(A contract is a grouping of operations which fulfill a responsibility of the class. Contracts could include:) show
18.1 106.4 moveto
3.3 3.3 c  fill 
12 f0 28 102.3 moveto
(Initialisation of the class.) show
18.1 93.1 moveto
3.3 3.3 c  fill 
12 f0 28 89 moveto
(Destruction of the class.) show
18.1 79.8 moveto
3.3 3.3 c  fill 
12 f0 28 75.7 moveto
(The ability to insert items into, or modify a particular aspect of a class.) show
pagelevel restore
showpage
%%Page: 8 8
%%BeginPageSetup
/pagelevel save def
54 0 translate
%%EndPageSetup
newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath
18.1 713.3 moveto
3.3 3.3 c  fill 
12 f0 28 709.2 moveto
(The ability to make queries about a class or iterate over data it contains.) show
12 f0 0 682.6 moveto
(A contract section is started by placing a comment containing the section title, prior to the functions in) show
12 f0 0 669.3 moveto
(the class that are being grouped together. The list of functions in a contract is terminated by the) show
12 f0 0 656 moveto
(commencement of another contract, a new public, protected, or private section, or the end of the class.) show
12 f0 0 629.4 moveto
(If contract sections are used, only functions which appear under a contract section will appear in the) show
12 f0 0 616.1 moveto
(manual page. Functions which are not in a contract section are not displayed. If no contract sections are) show
12 f0 0 602.8 moveto
(used, two default contract sections, with labels `PROTECTED MEMBERS' and `PUBLIC) show
12 f0 0 589.5 moveto
(MEMBERS', will be created.) show
12 f0 0 562.9 moveto
(An example of a class using contracts is:) show
10 f4 0 539 moveto
(  class Class) show
10 f4 0 518 moveto
(      // ...) show
10 f4 0 497 moveto
(  {) show
10 f4 0 476 moveto
(    public:) show
10 f4 0 444.5 moveto
(      ~Class\(\);) show
10 f4 0 423.5 moveto
(        // This will not appear in the) show
10 f4 0 402.5 moveto
(        // manual page.) show
10 f4 0 371 moveto
(      // = INITIALISATION) show
10 f4 0 339.5 moveto
(      Class\(char const* theString\);) show
10 f4 0 318.5 moveto
(        // This will appear in the manual) show
10 f4 0 297.5 moveto
(        // page in section INITIALISATION.) show
10 f4 0 276.5 moveto
(        //) show
10 f4 0 255.5 moveto
(        // Inline formatting, for example:) show
10 f4 0 234.5 moveto
(        // <theString>, may be used, as may) show
10 f4 0 213.5 moveto
(        // block formatting commands.) show
10 f4 0 182 moveto
(      // = QUERY) show
10 f4 0 161 moveto
(      //     As with all other sections, a contract) show
10 f4 0 140 moveto
(      //     section can have body text. This will appear) show
10 f4 0 119 moveto
(      //     in the manual page after the section name and) show
10 f4 0 98 moveto
(      //     before the functions are listed.) show
pagelevel restore
showpage
%%Page: 9 9
%%BeginPageSetup
/pagelevel save def
54 0 translate
%%EndPageSetup
newpath 0 72 moveto 504 0 rlineto 0 648 rlineto -504 0 rlineto  closepath clip newpath
10 f4 0 711.9 moveto
(      char const* string\(\);) show
10 f4 0 680.4 moveto
(      // Extra information for the current contract may) show
10 f4 0 659.4 moveto
(      // also be included between members. This is) show
10 f4 0 638.4 moveto
(      // generally used where it is necessary to make a) show
10 f4 0 617.4 moveto
(      // comment about a specific set of members in a) show
10 f4 0 596.4 moveto
(      // contract.) show
10 f4 0 564.9 moveto
(      OTC_Boolean isValid\(\) const;) show
10 f4 0 543.9 moveto
(  };) show
10 f4 0 522.9 moveto
( ) show
pagelevel restore
showpage
%%EOF