00001 /*------------------------------------------------------------------------------ 00002 Name: StatusQosFactory.h 00003 Project: xmlBlaster.org 00004 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file 00005 ------------------------------------------------------------------------------*/ 00006 00007 #ifndef _UTIL_QOS_STATUSQOSFACTORY_H 00008 #define _UTIL_QOS_STATUSQOSFACTORY_H 00009 00010 #include <util/xmlBlasterDef.h> 00011 #include <util/qos/StatusQosData.h> 00012 #include <util/parser/XmlHandlerBase.h> 00013 00030 namespace org { namespace xmlBlaster { namespace util { namespace qos { 00031 00032 class Dll_Export StatusQosFactory: public org::xmlBlaster::util::parser::XmlHandlerBase 00033 { 00034 private: 00035 std::string ME; 00036 org::xmlBlaster::util::Global& global_; 00037 org::xmlBlaster::util::I_Log& log_; 00038 StatusQosData statusQosData_; 00039 00041 bool inState_; // = false; 00042 bool inSubscribe_; // = false; 00043 bool inKey_; // = false; 00044 bool inQos_; 00045 bool inIsPersistent_; // QosData 00046 00047 void prep(); 00048 00049 public: 00050 StatusQosFactory(org::xmlBlaster::util::Global& global); 00051 00058 void startElement(const std::string &name, const parser::AttributeMap& attrs); 00059 00065 void endElement(const std::string &name); 00066 00067 StatusQosData readObject(const std::string& qos); 00068 00069 }; 00070 00071 }}}} // namespaces 00072 00073 #endif 00074