2 ||M|| This file is part of HELM, an Hypertextual, Electronic
3 ||A|| Library of Mathematics, developed at the Computer Science
4 ||T|| Department, University of Bologna, Italy.
6 ||T|| HELM is free software; you can redistribute it and/or
7 ||A|| modify it under the terms of the GNU General Public License
8 \ / version 2 or (at your option) any later version.
9 \ / This software is distributed as is, NO WARRANTY.
10 V_______________________________________________________________ *)
17 exception ObjectNotFound of B.message
20 let env = H.create hsize
23 (* Internal functions *******************************************************)
25 let error uri = raise (ObjectNotFound (L.items1 (U.string_of_uri uri)))
27 (* Interface functions ******************************************************)
30 let _, uri, b = obj in
31 let obj = !entry, uri, b in
32 incr entry; H.add env uri obj; f obj
35 try f (H.find env uri) with Not_found -> error uri