package frama-c
Install
Dune Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
NNicolas Bellec
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
VVincent Botbol
-
QQuentin Bouillaguet
-
DDavid Bühler
-
ZZakaria Chihani
-
SSylvain Chiron
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
MMaxime Jacquemin
-
BBenjamin Jorge
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
TTristan Le Gall
-
KKilyan Le Gallic
-
JJean-Christophe Léchenet
-
MMatthieu Lemerre
-
DDara Ly
-
DDavid Maison
-
CClaude Marché
-
AAndré Maroneze
-
TThibault Martin
-
FFonenantsoa Maurica
-
MMelody Méaulle
-
BBenjamin Monate
-
YYannick Moy
-
PPierre Nigron
-
AAnne Pacalet
-
VValentin Perrelle
-
GGuillaume Petiot
-
DDario Pinto
-
VVirgile Prevosto
-
AArmand Puccetti
-
FFélix Ridoux
-
VVirgile Robles
-
JJan Rochel
-
MMuriel Roger
-
CCécile Ruet-Cros
-
JJulien Signoles
-
NNicolas Stouls
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
sha256=a94384f00d53791cbb4b4d83ab41607bc71962d42461f02d71116c4ff6dca567
doc/frama-c-server.core/Server/Main/index.html
Module Server.Main
Source
Server Main Process
Request Registry
Signals Registry
Server Main Process
type 'a request = [
| `Poll
| `Request of 'a * string * json
| `Kill of 'a
| `SigOn of string
| `SigOff of string
| `Shutdown
]
Type of request messages. Parametrized by the type of request identifiers.
type 'a response = [
| `Data of 'a * json
| `Error of 'a * string
| `Killed of 'a
| `Rejected of 'a
| `Signal of string
| `CmdLineOn
| `CmdLineOff
]
Type of response messages. Parametrized by the type of request identifiers.
A paired request-response message. The callback will be called exactly once for each received message.
val create :
pretty:(Stdlib.Format.formatter -> 'a -> unit) ->
?equal:('a -> 'a -> bool) ->
fetch:(unit -> 'a message option) ->
unit ->
'a server
Run a server with the provided low-level network primitives to actually exchange data. Logs are monitored unless ~logs:false
is specified.
Default equality is the standard `(=)` one.
Start the server in background.
The function returns immediately after installing a daemon that (only) accepts GET requests received by the server on calls to Async.yield()
.
Shall be scheduled at command line main stage via Boot.Main.extend
extension point.
Stop the server if it is running in background.
Can be invoked to force server shutdown at any time.
It shall be typically scheduled via Extlib.safe_at_exit
along with other system cleanup operations to make sure the server is property shutdown before Frama-C main process exits.
Run the server forever. The server would now accept any kind of requests and start handling them. While executing an `EXEC
request, the server would continue to handle (only) `GET
pending requests on Async.yield()
at every server.polling
time interval.
The function will not return until the server is actually shutdown.
Shall be scheduled at normal command line termination via Cmdline.at_normal_exit
extension point.
Kill the currently running request by raising an exception.
Register a callback on signal listening.
The callback is invoked with true
on SIGON
command and false
on SIGOFF
.
Register a callback to listen for server activity. All callbacks are executed in their order of registration. Callbacks shall never raise any exception.
Register a callback to listen for server initialization. All callbacks are executed once, in their order of registration, and before activity callbacks. Callbacks shall never raise any exception.
Register an asynchronous task on the server. When the server is not working in background, this is equivalent to Task.call
; otherwize, the continuation is scheduled on the server like an `EXEC
request.
Returns true if the server is currently running.