diff options
-rw-r--r-- | src/session.ml | 22 | ||||
-rw-r--r-- | src/session.mli | 14 |
2 files changed, 18 insertions, 18 deletions
diff --git a/src/session.ml b/src/session.ml index 5b99a4b..b59b473 100644 --- a/src/session.ml +++ b/src/session.ml @@ -1,25 +1,24 @@ module CT = Config_tree +module RT = Reference_tree type cfg_op = | CfgSet of string list * string option * CT.value_behaviour | CfgDelete of string list * string option -type session_data = { - id: string; - running_config: Config_tree.t ref; - proposed_config : Config_tree.t ref; - reference_tree: Reference_tree.t ref; +type world = { + mutable running_config: CT.t; + reference_tree: RT.t; validators: (string, string) Hashtbl.t; +} + +type session_data = { + proposed_config : Config_tree.t; modified: bool; changeset: cfg_op list } -let make i c r v = { - id = i; - running_config = c; - proposed_config = c; - reference_tree = r; - validators = v; +let make world = { + proposed_config = world.running_config; modified = false; changeset = [] } @@ -39,4 +38,3 @@ let rec apply_changes changeset config = match changeset with | [] -> config | c :: cs -> apply_changes cs (apply_cfg_op c config) - diff --git a/src/session.mli b/src/session.mli index 51e9292..e4d48b8 100644 --- a/src/session.mli +++ b/src/session.mli @@ -2,15 +2,17 @@ type cfg_op = | CfgSet of string list * string option * Config_tree.value_behaviour | CfgDelete of string list * string option -type session_data = { - id: string; - running_config: Config_tree.t ref; - proposed_config: Config_tree.t ref; - reference_tree: Reference_tree.t ref; +type world = { + mutable running_config: Config_tree.t; + reference_tree: Reference_tree.t; validators: (string, string) Hashtbl.t; +} + +type session_data = { + proposed_config : Config_tree.t; modified: bool; changeset: cfg_op list } -val make : string -> Config_tree.t ref -> Reference_tree.t ref -> (string, string) Hashtbl.t -> session_data +val make : world -> session_data |