From 9dbdbc1513b9a3503ea7d125bf7aa9748c80fa8f Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Mon, 28 May 2018 04:52:47 +0700 Subject: Add from_string and to_string functions to the bindings. --- lib/bindings.ml | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lib') diff --git a/lib/bindings.ml b/lib/bindings.ml index 387e1b5..6d19a76 100644 --- a/lib/bindings.ml +++ b/lib/bindings.ml @@ -8,6 +8,15 @@ let make_config_tree name = Ctypes.Root.create (Config_tree.make name) let destroy c_ptr = Root.release c_ptr +let from_string s = + try + let config = Vyos1x_parser.config Vyos1x_lexer.token (Lexing.from_string s) in + Ctypes.Root.create config + with _ -> Ctypes.null + +let render c_ptr = + Vyos1x_renderer.render (Root.get c_ptr) + let set_add_value c_ptr path value = let ct = Root.get c_ptr in let path = Pcre.split ~rex:(Pcre.regexp "\\s+") path in @@ -56,6 +65,8 @@ struct let () = I.internal "make" (string @-> returning (ptr void)) make_config_tree let () = I.internal "destroy" ((ptr void) @-> returning void) destroy + let () = I.internal "from_string" (string @-> returning (ptr void)) from_string + let () = I.internal "to_string" ((ptr void) @-> returning string) render let () = I.internal "set_add_value" ((ptr void) @-> string @-> string @-> returning int) set_add_value let () = I.internal "set_replace_value" ((ptr void) @-> string @-> string @-> returning int) set_replace_value let () = I.internal "set_valueless" ((ptr void) @-> string @-> returning int) set_valueless -- cgit v1.2.3