8 DeathSockets Internal Flow
Craig Oates edited this page 4 years ago

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.

deathsocket internal flow

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