Implement pre functions.
[whenjobs.git] / lib / whenexpr.mli
index 818c75d..7310387 100644 (file)
@@ -60,9 +60,33 @@ type shell_script = {
 }
 (** A shell script. *)
 
+type variable =
+  | T_unit
+  | T_bool of bool
+  | T_string of string
+  | T_int of Big_int.big_int
+  | T_float of float
+(** Typed variable (see also [whenproto.x]) *)
+
+val string_of_variable : variable -> string
+
+val variable_of_rpc : Whenproto_aux.variable -> variable
+val rpc_of_variable : variable -> Whenproto_aux.variable
+
+type variables = variable Whenutils.StringMap.t
+(** A set of variables. *)
+
 type preinfo = {
   pi_job_name : string;                 (** Job name. *)
   pi_serial : Big_int.big_int;          (** Job serial number. *)
+  pi_variables : (string * variable) list; (** Variables set in job. *)
+  pi_running : preinfo_running_job list; (** List of running jobs. *)
+}
+and preinfo_running_job = {
+  pirun_job_name : string;              (** Running job name. *)
+  pirun_serial : Big_int.big_int;       (** Running job serial number. *)
+  pirun_start_time : float;             (** Running job start time. *)
+  pirun_pid : int;                      (** Running job process ID. *)
 }
 (** Information available to pre function before the job runs. *)
 
@@ -80,22 +104,6 @@ type pre = preinfo -> bool
 type post = result -> unit
 (** Pre and post functions. *)
 
-type variable =
-  | T_unit
-  | T_bool of bool
-  | T_string of string
-  | T_int of Big_int.big_int
-  | T_float of float
-(** Typed variable (see also [whenproto.x]) *)
-
-val string_of_variable : variable -> string
-
-val variable_of_rpc : Whenproto_aux.variable -> variable
-val rpc_of_variable : variable -> Whenproto_aux.variable
-
-type variables = variable Whenutils.StringMap.t
-(** A set of variables. *)
-
 type job_cond =
   | When_job of whenexpr                (** when ... : << >> *)
   | Every_job of periodexpr             (** every ... : << >> *)