next up previous contents
Next: Development Issues Up: Implementation Previous: Restarting the Route-Engine   Contents


Object Oriented Design

As the final server program consists of two quite independent parts, the network server and the route-engine, a system to simply integrate them had to be developed. The solution chosen was to use C++ and create a class for each. The main program therefore just had to create an instance of each and start the network server. An abstract class was developed for the route-engine, which is detailed in Appendix B. Any class derived from this could be used in the final program, with only a single line change to the code, and so the transition from a test engine written for server development to the functional engine was very straightforward.

There were very limited uses for object-oriented programming in the network server section of the program due to its inherently procedural nature. Separate classes were used for administrative and end-user clients, but shared no code and so inheritance was not used. The structure did allow for the possibility of supporting different end-user client types, and a telnet interface was attempted, but abandoned due to time constraints.

Late in the project, a log-server was developed (see Section 2.5). This followed the model of the route-engine, using an abstract class for the client2.11 from which different types were derived. Thus, the type of logging used could be selected by the main routine on execution.


next up previous contents
Next: Development Issues Up: Implementation Previous: Restarting the Route-Engine   Contents

2000-10-20