/src/wrappers/xml/library/xml2_node_cache.e

http://github.com/tybor/Liberty · Specman e · 26 lines · 21 code · 3 blank · 2 comment · 1 complexity · eb6f01fe018e72fb468d8eac23648608 MD5 · raw file

  1. class XML2_NODE_CACHE
  2. -- A singleton wrapper factory and cache for XML2_NODEs.
  3. inherit
  4. CACHING_FACTORY[XML2_NODE]
  5. redefine default_create end
  6. SINGLETON
  7. redefine default_create end
  8. feature {ANY}
  9. default_create
  10. do
  11. create wrappers.make
  12. end
  13. wrapper (a_pointer: POINTER): XML2_NODE
  14. -- XML2_NODE wrapper for `a_pointer'
  15. do
  16. Result:=wrappers.reference_at(a_pointer)
  17. if Result=Void then
  18. create Result.from_external_pointer(a_pointer)
  19. wrappers.put(Result,a_pointer)
  20. Result.set_shared
  21. end
  22. end
  23. end -- class XML2_NODE_CACHE