Object-oriented Software in Ada 95
Object-oriented Software in Ada 95
Object-oriented Software in Ada 95
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
x<br />
Contents<br />
16.8.1 Convert<strong>in</strong>g a base class to a derived class...........................................................................................239<br />
16.9 THE OBSERVE-OBSERVER PATTERN...........................................................................................................240<br />
16.9.1 The Observer’s responsibilities..............................................................................................................241<br />
16.9.2 The responsibilities of the observable object.......................................................................................241<br />
16.9.3 Putt<strong>in</strong>g it all together ...............................................................................................................................242<br />
16.10 USING THE OBSERVE-OBSERVER PATTERN.........................................................................................244<br />
16.10.1 The observed board object..................................................................................................................244<br />
16.10.2 An observer for the class Board.......................................................................................................246<br />
16.10.3 The driver code for the program of nought and crosses................................................................246<br />
16.11 SELF-ASSESSMENT ......................................................................................................................................247<br />
16.12 EXERCISES ......................................................................................................................................................248<br />
17 CONTAINERS .......................................................................................................................................... 249<br />
17.1 LIST OBJECT .......................................................................................................................................................249<br />
17.1.1 List vs. array...............................................................................................................................................251<br />
17.2 METHODS IMPLEMENTED IN A LIST............................................................................................................251<br />
17.2.1 Example of use...........................................................................................................................................251<br />
17.3 SPECIFICATION AND IMPLEMENTATION OF THE LIST CONTAINER...................................................253<br />
17.3.1 The list iterator..........................................................................................................................................256<br />
17.3.2 Relationship between a list and its iterator..........................................................................................260<br />
17.4 LIMITATIONS OF THE LIST IMPLEMENTATION ........................................................................................260<br />
17.5 REFERENCE COUNTING...................................................................................................................................262<br />
17.6 IMPLEMENTATION OF A REFERENCE COUNTING SCHEME...................................................................264<br />
17.6.1 <strong>Ada</strong> specification.......................................................................................................................................265<br />
17.6.2 <strong>Ada</strong> implementation..................................................................................................................................266<br />
17.6.3 Putt<strong>in</strong>g it all together ...............................................................................................................................268<br />
17.7 A SET ....................................................................................................................................................................269<br />
17.7.1 Putt<strong>in</strong>g it all together ...............................................................................................................................271<br />
17.8 SELF-ASSESSMENT ...........................................................................................................................................271<br />
17.9 EXERCISES...........................................................................................................................................................272<br />
18 INPUT AND OUTPUT............................................................................................................................ 273<br />
18.1 THE INPUT AND OUTPUT MECHANISM .......................................................................................................273<br />
18.1.1 Putt<strong>in</strong>g it all together ...............................................................................................................................274<br />
18.2 READING AND WRITING TO FILES ...............................................................................................................275<br />
18.3 READING AND WRITING BINARY DATA .....................................................................................................276<br />
18.4 SWITCHING THE DEFAULT INPUT AND OUTPUT STREAMS ..................................................................278<br />
18.4.1 Putt<strong>in</strong>g it all together ...............................................................................................................................278<br />
18.5 SELF-ASSESSMENT ...........................................................................................................................................279<br />
18.6 EXERCISES...........................................................................................................................................................279<br />
19 PERSISTENCE......................................................................................................................................... 280<br />
19.1 A PERSISTENT INDEXED COLLECTION.......................................................................................................280<br />
19.1.1 Putt<strong>in</strong>g it all together ...............................................................................................................................282<br />
19.1.2 Sett<strong>in</strong>g up the persistent object...............................................................................................................282<br />
19.2 THE CLASS PIC.................................................................................................................................................282<br />
20 TASKS ......................................................................................................................................................... 289<br />
20.1 THE TASK MECHANISM ...................................................................................................................................289<br />
20.1.1 Putt<strong>in</strong>g it all together ...............................................................................................................................290<br />
20.1.2 Task rendezvous........................................................................................................................................291<br />
20.1.3 The task’s implementation.......................................................................................................................292<br />
20.2 PARAMETERS TO A TASK TYPE.....................................................................................................................293<br />
20.2.1 Putt<strong>in</strong>g it all together ...............................................................................................................................294<br />
20.3 MUTUAL EXCLUSION AND CRITICAL SECTIONS .....................................................................................294<br />
20.4 PROTECTED TYPE..............................................................................................................................................2<strong>95</strong><br />
20.5 IMPLEMENTATION............................................................................................................................................2<strong>95</strong><br />
© M A Smith - May not be reproduced without permission