19 #ifndef INCLUDE_RCF_FILTERSERVICE_HPP
20 #define INCLUDE_RCF_FILTERSERVICE_HPP
24 #include <boost/noncopyable.hpp>
25 #include <boost/shared_ptr.hpp>
27 #include <RCF/Filter.hpp>
28 #include <RCF/Export.hpp>
29 #include <RCF/Service.hpp>
36 class RCF_EXPORT FilterService :
43 void addFilterFactory(FilterFactoryPtr filterFactoryPtr);
45 void addFilterFactory(
46 FilterFactoryPtr filterFactoryPtr,
47 const std::vector<int> &filterIds);
49 boost::int32_t RequestTransportFilters(
const std::vector<boost::int32_t> &filterIds);
51 FilterFactoryPtr getFilterFactoryPtr(
int filterId);
54 void setTransportFilters(
56 boost::shared_ptr<std::vector<FilterPtr> > filters);
58 void onServerStart(RcfServer &server);
59 void onServerStop(RcfServer &server);
61 typedef std::map<int, FilterFactoryPtr> FilterFactoryMap;
62 FilterFactoryMap mFilterFactoryMap;
63 ReadWriteMutex mFilterFactoryMapMutex;
66 typedef boost::shared_ptr<FilterService> FilterServicePtr;
70 #endif // ! INCLUDE_RCF_FILTERSERVICE_HPP