00001 #ifndef N2NCFILTERADAPTER_H
00002 #define N2NCFILTERADAPTER_H
00003 #include "nixsys.h"
00004 #include "socket.h"
00005 #include "filter.h"
00006
00007 namespace n2nc {
00008
00014 class FilterAdapter : n2nc::net::Socket {
00015 public:
00016 FilterAdapter(net::Socket& socket);
00017 ~FilterAdapter();
00018 bool addFilter(Filter* filter);
00019 bool delFilter(Filter* filter);
00020 virtual int send(void *buf,size_t len);
00021 virtual int recv(void *buf,size_t len);
00022 size_t getMaxOverHead();
00023
00024 private:
00025 std::vector<Filter*> m_filters ;
00026 net::Socket& m_socket ;
00027 void *m_tmpbuf ;
00028 };
00029
00030
00031 }
00032
00033 #endif