X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=generator%2Fgenerator_api_versions.ml;fp=generator%2Fgenerator_api_versions.ml;h=5f9d96f7441383d0eab223a6068f1e0b03003b48;hp=0000000000000000000000000000000000000000;hb=7e3d76e41b3c2862ae04744b01e5e23b245393e4;hpb=bfeffeb1e4d6f3725eb8148c098505a9d81a7ba5 diff --git a/generator/generator_api_versions.ml b/generator/generator_api_versions.ml new file mode 100644 index 0000000..5f9d96f --- /dev/null +++ b/generator/generator_api_versions.ml @@ -0,0 +1,44 @@ +(* libguestfs + * Copyright (C) 2010 Red Hat Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + *) + +(* Please read generator/README first. *) + +open Generator_utils + +let hash = Hashtbl.create 13 + +let load_api_versions filename = + let chan = open_in filename in + let rec loop lineno = + let line = input_line chan in + let sym, ver = + match string_split " " line with + | [ sym; ver ] -> sym, ver + | _ -> + failwithf "%s: %d: invalid input in API versions file" + filename lineno in + Hashtbl.replace hash sym ver; + loop (lineno+1) + in + (try loop 1 with End_of_file -> ()); + close_in chan + +let lookup_api_version sym = + try Hashtbl.find hash sym + with Not_found -> + failwithf "API symbol \"%s\" not found in API versions file" sym