00001 #ifndef _IT_XML_RESOURCE_RESOLVER_REGISTRY_H_ 00002 #define _IT_XML_RESOURCE_RESOLVER_REGISTRY_H_ 00003 00004 #include <it_dsa/var.h> 00005 #include <it_tsdsa/ref_counted_base.h> 00006 #include <it_bus/api_defines.h> 00007 #include <it_bus_pdk/registry.h> 00008 #include <it_bus_pdk/xml_resource_resolver.h> 00009 00010 namespace IT_Bus 00011 { 00012 class IT_BUS_API XMLResolverRegistry : 00013 public RegistryBase 00014 { 00015 public: 00016 00017 virtual Boolean 00018 get_resource( 00019 const IT_Bus::URL& url, 00020 IT_Bus::XMLHelper& result 00021 ) IT_THROW_DECL((XMLResourceException)) = 0; 00022 00023 virtual ~XMLResolverRegistry() IT_THROW_DECL(()); 00024 00025 virtual void 00026 register_resolver( 00027 IT_Bus::XMLResourceResolver & resolver 00028 ) IT_THROW_DECL((XMLResourceException)) = 0; 00029 00030 virtual void 00031 deregister_resolver( 00032 IT_Bus::XMLResourceResolver & resolver 00033 ) IT_THROW_DECL((XMLResourceException)) = 0; 00034 00035 virtual Boolean 00036 is_registered( 00037 IT_Bus::XMLResourceResolver & resolver 00038 ) = 0; 00039 00040 virtual void 00041 cache_resource( 00042 const IT_Bus::URL& url, 00043 const IT_Bus::BinaryBuffer& xml_data 00044 ) = 0; 00045 }; 00046 } 00047 00048 #endif // _IT_XML_RESOURCE_RESOLVER_REGISTRY_H_