00001 #ifndef _IT_BUS_PDK_INTERCEPTOR_FACTORY_MANAGER_H_
00002 #define _IT_BUS_PDK_INTERCEPTOR_FACTORY_MANAGER_H_
00003
00004
00005
00006
00007 #include <it_bus_pdk/interceptor.h>
00008
00009 namespace IT_Bus
00010 {
00011 typedef StringMap<InterceptorFactory*> InterceptorFactoryMap;
00012
00016 class IT_BUS_API InterceptorFactoryManager
00017 {
00018 public:
00019
00029 virtual void
00030 register_interceptor_factory(
00031 const String& factory_name,
00032 InterceptorFactory* factory,
00033 bool ordered = true
00034 ) = 0;
00035
00042 virtual InterceptorFactory*
00043 get_interceptor_factory(
00044 const String& factory_name
00045 ) = 0;
00046
00053 virtual void
00054 unregister_interceptor_factory(
00055 InterceptorFactory* factory
00056 ) = 0;
00057
00064 virtual void
00065 unregister_interceptor_factory(
00066 const String& factory_name
00067 ) = 0;
00068
00069 virtual bool
00070 get_interceptor_configuration(
00071 const String& config_name,
00072 InterceptorFactoryList& interceptor_list
00073 ) = 0;
00074
00075 virtual const InterceptorFactoryMap&
00076 unordered_interceptor_map() = 0;
00077 };
00078 }
00079
00080 #endif