quantum_package/ocaml/TaskServer.mli

79 lines
2.2 KiB
OCaml
Raw Permalink Normal View History

type t =
{
2017-11-29 19:10:27 +01:00
queue : Queuing_system.t ;
state : Message.State.t option ;
address_tcp : Address.Tcp.t option ;
address_inproc : Address.Inproc.t option ;
progress_bar : Progress_bar.t option ;
running : bool;
accepting_clients : bool;
data : (string, string) Core.Hashtbl.t ;
}
(** {1} Debugging *)
(** Fetch the QP_TASK_DEBUG environment variable *)
val debug_env : bool
(** Print a debug message *)
val debug : string -> unit
2018-05-09 12:22:54 +02:00
(** {1} Zmq *)
(** ZeroMQ context *)
2018-05-09 12:22:54 +02:00
val zmq_context : Zmq.Context.t
2018-05-09 12:22:54 +02:00
(** Bind a Zmq socket to a TCP port and to an IPC file /tmp/qp_run.<port> *)
val bind_socket :
2018-05-09 12:22:54 +02:00
socket_type:string -> socket:'a Zmq.Socket.t -> port:int -> unit
(** Name of the host on which the server runs *)
val hostname : string lazy_t
(** IP address of the current host *)
val ip_address : string lazy_t
(** Standard messages *)
2018-05-09 12:22:54 +02:00
val reply_ok : [> `Req ] Zmq.Socket.t -> unit
val reply_wrong_state : [> `Req ] Zmq.Socket.t -> unit
(** Stop server *)
val stop : port:int -> unit
(** {1} Server functions *)
(** Create a new job *)
2018-05-09 12:22:54 +02:00
val new_job : Message.Newjob_msg.t -> t -> [> `Req ] Zmq.Socket.t -> [> `Pair] Zmq.Socket.t -> t
(** Finish a running job *)
2018-05-09 12:22:54 +02:00
val end_job : Message.Endjob_msg.t -> t -> [> `Req ] Zmq.Socket.t -> [> `Pair] Zmq.Socket.t -> t
(** Connect a client *)
2018-05-09 12:22:54 +02:00
val connect: Message.Connect_msg.t -> t -> [> `Req ] Zmq.Socket.t -> t
(** Disconnect a client *)
2018-05-09 12:22:54 +02:00
val disconnect: Message.Disconnect_msg.t -> t -> [> `Req ] Zmq.Socket.t -> t
(** Add a task to the pool *)
2018-05-09 12:22:54 +02:00
val add_task: Message.AddTask_msg.t -> t -> [> `Req ] Zmq.Socket.t -> t
(** Mark the task as done by the client *)
2018-05-09 12:22:54 +02:00
val task_done: Message.TaskDone_msg.t -> t -> [> `Req ] Zmq.Socket.t -> t
(** Delete a task when it has been pulled by the collector *)
2018-05-09 12:22:54 +02:00
val del_task: Message.DelTask_msg.t -> t -> [> `Req ] Zmq.Socket.t -> t
(** The client get a new task to execute *)
2018-05-09 12:22:54 +02:00
val get_task: Message.GetTask_msg.t -> t -> [> `Req ] Zmq.Socket.t -> [> `Pair] Zmq.Socket.t -> t
(** Terminate server *)
2018-05-09 12:22:54 +02:00
val terminate : t -> [> `Req ] Zmq.Socket.t -> t
(** Reply an Error message *)
2018-05-09 12:22:54 +02:00
val error : string -> t -> [> `Req ] Zmq.Socket.t -> t
(** Run server *)
val run : port:int -> unit