%!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) 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) show 12 f0 0 185.2 moveto (The commands in this example are, `BEGIN'and `END'. 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) show 10 f4 0 127 moveto ( // ....) show 10 f4 0 106 moveto ( // = END) 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 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 (`' 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 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 ( // 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 ( ) 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) show 10 f4 0 535.1 moveto ( class OTC_List : public OTC_Collection) 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 ( // , 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