18.10.2014 Views

Object-oriented Software in Ada 95

Object-oriented Software in Ada 95

Object-oriented Software in Ada 95

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!