mirror of
https://github.com/KevinMidboe/linguist.git
synced 2026-01-10 11:25:32 +00:00
add a sample of FLUX code
These samples were taken from the paper "Flux: A Language for Programming High-Performance Servers", by Burns et al and Flux V0.02 which can be found here: https://plasma.cs.umass.edu/emery/flux.1.html
This commit is contained in:
44
samples/FLUX/imageserver.fx
Normal file
44
samples/FLUX/imageserver.fx
Normal file
@@ -0,0 +1,44 @@
|
||||
typedef xml TestXML;
|
||||
typedef html TestHTML;
|
||||
|
||||
typedef inCache TestInCache;
|
||||
|
||||
Page (int socket) => ();
|
||||
|
||||
ReadRequest (int socket) => (int socket, bool close, image_tag *request);
|
||||
|
||||
CheckCache (int socket, bool close, image_tag *request)
|
||||
=> (int socket, bool close, image_tag *request);
|
||||
|
||||
Handler (int socket, bool close, image_tag *request)
|
||||
=> (int socket, bool close, image_tag *request);
|
||||
|
||||
Complete (int socket, bool close, image_tag *request) => ();
|
||||
|
||||
ReadInFromDisk (int socket, bool close, image_tag *request)
|
||||
=> (int socket, bool close, image_tag *request, __u8 *rgb_data);
|
||||
|
||||
Write (int socket, bool close, image_tag *request)
|
||||
=> (int socket, bool close, image_tag *request);
|
||||
|
||||
Compress(int socket, bool close, image_tag *request, __u8 *rgb_data)
|
||||
=> (int socket, bool close, image_tag *request);
|
||||
|
||||
StoreInCache(int socket, bool close, image_tag *request)
|
||||
=> (int socket, bool close, image_tag *request);
|
||||
|
||||
Listen ()
|
||||
=> (int socket);
|
||||
|
||||
source Listen => Page;
|
||||
|
||||
Handler:[_, _, inCache]=;
|
||||
Handler:[_, _, _]=ReadInFromDisk -> Compress -> StoreInCache;
|
||||
|
||||
Page = ReadRequest -> CheckCache-> Handler -> Write -> Complete;
|
||||
|
||||
atomic CheckCache:{cache};
|
||||
atomic StoreInCache:{cache};
|
||||
atomic Complete:{cache};
|
||||
|
||||
handle error ReadInFromDisk => FourOhFor;
|
||||
Reference in New Issue
Block a user