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);
52 boost::int32_t QueryForTransportFilters(
const std::vector<boost::int32_t> &filterIds);
54 FilterFactoryPtr getFilterFactoryPtr(
int filterId);
57 void setTransportFilters(
59 boost::shared_ptr<std::vector<FilterPtr> > filters);
61 void onServerStart(RcfServer &server);
62 void onServerStop(RcfServer &server);
64 typedef std::map<int, FilterFactoryPtr> FilterFactoryMap;
65 FilterFactoryMap mFilterFactoryMap;
66 ReadWriteMutex mFilterFactoryMapMutex;
69 typedef boost::shared_ptr<FilterService> FilterServicePtr;
73 #endif // ! INCLUDE_RCF_FILTERSERVICE_HPP