-
Ciarán Ó Rourke authored
Project consists of three components: server, stream, and storage. Each need not know the implementation details of the others. Stream and Storage are presented as base classes with Fifo and Phobos_file serving as implementations. Inter-component communication is reworked such that the stream acts as an exclusive interface between the server and storage. Change Log: * Rename backend to storage * Rename fifo to stream * PUT logic functions like server->stream->storage * GET logic functions like storage->stream->server * Each stage represented by a class * Communication between stages handled by class ownership * Ownership is server<stream<storage * Server does not communicate with storage and visa/versa * Each stage Know nothing of the implementation details of the others * Stages see each other ass abstract interfaces * Request handlers must be initialised with unique pointer to a Stream derived class as a constructor argument. * Streams must be initialised with unique pointer to a Storage derived class as a constructor argument. * Phobos_file closes file immediatley after finish IO to prevent Stream from blocking in the case of FIFO Stream implementation * Remove DEBUG print statements * Rename server.cc to server.main.cc to reflect presense or main function
9a8740af