00001 #ifndef _IT_BUS_PDK_BUS_PLUGIN_MANAGER_H_
00002 #define _IT_BUS_PDK_BUS_PLUGIN_MANAGER_H_
00003
00004
00005
00006
00007 #include <it_bus/api_defines.h>
00008 #include <it_bus/types.h>
00009 #include <it_bus/exception.h>
00010
00011 namespace IT_Bus
00012 {
00013 class BusPlugIn;
00014 class BusPlugInResolver;
00015
00016 class IT_BUS_API BusPlugInManager
00017 {
00018 public:
00019 BusPlugInManager();
00020
00021 virtual
00022 ~BusPlugInManager();
00023
00024 virtual Boolean
00025 register_plugin(
00026 const String& plugin_name,
00027 BusPlugIn* plugin
00028 ) = 0;
00029
00030 virtual bool
00031 get_plugin(
00032 const String& plugin_name
00033 ) IT_THROW_DECL((Exception)) = 0;
00034
00035 virtual bool
00036 get_plugin_by_namespace(
00037 const String& xml_namespace
00038 ) IT_THROW_DECL((Exception)) = 0;
00039
00040 virtual bool
00041 get_plugin_by_interceptor_factory_name(
00042 const String& interceptor_factory_name
00043 ) IT_THROW_DECL((Exception)) = 0;
00044
00045 virtual Boolean
00046 deregister_plugin(
00047 const String& plugin_name
00048 ) = 0;
00049
00050 virtual void
00051 register_plugin_resolver(
00052 BusPlugInResolver* resolver
00053 ) = 0;
00054 };
00055 }
00056
00057 #endif