23 #include "FilterHandler.h"
25 FilterHandler::FilterHandler() {
30 FilterHandler::~FilterHandler() {
34 void FilterHandler::handleIn(
HttpRequest* req,
HttpResponse& res, map<
string, vector<string> > filterMap,
void* dlib,
37 Logger logger = Logger::getLogger(
"FilterHandler");
38 if(filterMap.find(req->getCntxt_name()+
"*.*in")!=filterMap.end() || filterMap.find(req->getCntxt_name()+ext+
"in")!=filterMap.end())
41 if(filterMap.find(req->getCntxt_name()+
"*.*in")!=filterMap.end())
42 tempp = filterMap[req->getCntxt_name()+
"*.*in"];
44 tempp = filterMap[req->getCntxt_name()+ext+
"in"];
46 for (
int var = 0; var < (int)tempp.size(); ++var)
48 string clasz = tempp.at(var);
49 clasz =
"getReflectionCIFor" + clasz;
50 logger << (
"Input Filter handled by class " + clasz) << endl;
53 cerr << dlerror() << endl;
56 void *mkr = dlsym(dlib, clasz.c_str());
59 FunPtr f = (FunPtr)mkr;
64 void *_temp = ref.newInstanceGVP(ctor);
66 filter->doInputFilter(req);
67 logger <<
"Filter called" << endl;
74 void FilterHandler::handleOut(
HttpRequest* req,
HttpResponse& res, map<
string, vector<string> > filterMap,
void* dlib,
77 Logger logger = Logger::getLogger(
"FilterHandler");
78 if(filterMap.find(req->getCntxt_name()+
"*.*out")!=filterMap.end() || filterMap.find(req->getCntxt_name()+ext+
"out")!=filterMap.end())
81 if(filterMap.find(req->getCntxt_name()+
"*.*out")!=filterMap.end())
82 tempp = filterMap[req->getCntxt_name()+
"*.*out"];
84 tempp = filterMap[req->getCntxt_name()+ext+
"out"];
86 for (
int var = 0; var < (int)tempp.size(); ++var)
88 string clasz = tempp.at(var);
89 clasz =
"getReflectionCIFor" + clasz;
90 logger << (
"Output Filter handled by class " + clasz) << endl;
93 cerr << dlerror() << endl;
96 void *mkr = dlsym(dlib, clasz.c_str());
99 FunPtr f = (FunPtr)mkr;
104 void *_temp = ref.newInstanceGVP(ctor);
106 filter->doOutputFilter(&res);
107 logger <<
"Filter called" << endl;