Although the system has a restricted input-output (I/O) flow from the outside, the internal flow is a bit more flexible. There is still a rigidity to it but it is not as one-dimensional. To help explain, please consider the image below.
How this works is GridPainter
receives input, usually a record type provided by Domain
. From there, GridPainter
will validate the input by making calls to ValidationServices
. If the input is valid, GridPainter
calls into ImageServices
which then makes the various calls into ColourServices
and ImagePrep
. When the task is complete, ImagesServices
returns the output to GridPainter
which then returns it to your/the bigger system. If the input is invalid, DeathSocket will throw a FileNotFoundExcpetion
.
If you decide to add new features to the library, please try to keep to this flow/structure.
Note: The modules listed above are situated in files with the same names -- for example, GridPainter
resides in "GridPainter.fs", Domain
resides in "Domain.fs" Etc.
Module Name | Name-Space | File Location |
---|---|---|
GridPainter |
DeathSocket |
GridPainter.fs |
ColourServices |
N.A. | ColourServices.fs |
Domain |
DeathSocket |
Domain.fs |
ImageServices |
N.A. | ImageServices.fs |
ImagePrep |
N.A. | ImagePrep.fs |
ValidationServices |
N.A. | ValidationServices.fs |