25 #ifndef ABSTRACTFILTER_H
26 #define ABSTRACTFILTER_H
33 #include "Collections.h"
34 #include "WorkItemPool.h"
37 #define __MSXML_LIBRARY_DEFINED__
40 #include <xercesc/dom/DOM.hpp>
130 NameValueCollection m_Properties;
141 virtual bool canLogPayload();
143 virtual FilterResult ProcessMessage( XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* inputOutputData, NameValueCollection& transportHeaders,
bool asClient ) = 0;
144 virtual FilterResult ProcessMessage(
const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* inputData,
AbstractFilter::buffer_type outputData, NameValueCollection& transportHeaders,
bool asClient ) = 0;
145 virtual FilterResult ProcessMessage(
AbstractFilter::buffer_type inputData, XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* outputData, NameValueCollection& transportHeaders,
bool asClient ) = 0;
149 virtual FilterResult ProcessMessage(
const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* inputData,
unsigned char** outputData, NameValueCollection& transportHeaders,
bool asClient ) = 0;
153 virtual bool isMethodSupported(
FilterMethod method,
bool asClient );
157 const NameValueCollection& getProperties()
const;
160 void setLogFile(
const string& filename);
163 string getLogFile()
const;
169 void addProperty(
const string& name,
const string& value );
173 static string ToString(
const FilterMethod type );
183 virtual bool isBatch()
const
185 stringstream errorMessage;
186 errorMessage <<
"[isBatch] is not implemented by this filter type [" << FilterType::ToString( m_FilterType ) <<
"]";
187 throw logic_error( errorMessage.str() );
190 virtual string getQueueManagerName()
const
192 stringstream errorMessage;
193 errorMessage <<
"[getQueueManagerName] is not implemented by this filter type [" << FilterType::ToString( m_FilterType ) <<
"]";
194 throw logic_error( errorMessage.str() );
197 virtual string getTransportURI()
const
199 stringstream errorMessage;
200 errorMessage <<
"[getTransportURI] is not implemented by this filter type [" << FilterType::ToString( m_FilterType ) <<
"]";
201 throw logic_error( errorMessage.str() );
204 virtual string getBrokerURI()
const
206 stringstream errorMessage;
207 errorMessage <<
"[getBrokerURI] is not implemented by this filter type [" << FilterType::ToString( m_FilterType ) <<
"]";
208 throw logic_error( errorMessage.str() );
211 virtual string getQueueName()
const
213 stringstream errorMessage;
214 errorMessage <<
"[getQueueName] is not implemented by this filter type [" << FilterType::ToString( m_FilterType ) <<
"]";
215 throw logic_error( errorMessage.str() );
232 virtual const char *what()
const throw()
236 return ( m_String.c_str() );
240 return "unknown error";