diff --git a/generators/ghostview/DESIGN b/generators/ghostview/DESIGN new file mode 100644 index 000000000..987a88235 --- /dev/null +++ b/generators/ghostview/DESIGN @@ -0,0 +1,16 @@ +Quick Ghostview Generator design explanation +-------------------------------------------- + +libgs has a limitation that there can only be a gs instance per process. + +To overcome that problem there is zero (when no gs document has been opened) +or one GSInterpreterCMD threads running (when on or more gs documents are open +in the same okular process) + +GSHandler is the libgs dependant code, it could be in GSInterpreterCMD as there +is the same amount of GSHandler and GSInterpreterCMD instances but i thought it +made sense to separate them + +As there is only one GSInterpreterCMD for potentially N GSGenerator, the imageDone +signal from GSInterpreterCMD also emits the request and the GSGenerator checks +if it is its request that was done or from another GSGenerator.