00001 /*------------------------------------------------------------------------------ 00002 Name: QueuePropertyFactory.h 00003 Project: xmlBlaster.org 00004 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file 00005 Comment: Holding callback queue properties 00006 Author: laghi 00007 ------------------------------------------------------------------------------*/ 00008 00009 00016 #ifndef _UTIL_QUEUE_QUEUEPROPERTYFACTORY_H 00017 #define _UTIL_QUEUE_QUEUEPROPERTYFACTORY_H 00018 00019 #include <util/qos/storage/QueuePropertyBase.h> 00020 #include <util/parser/XmlHandlerBase.h> 00021 #include <util/qos/address/AddressFactory.h> 00022 #include <util/qos/address/Address.h> 00023 #include <util/qos/address/CallbackAddress.h> 00024 00025 namespace org { namespace xmlBlaster { namespace util { namespace qos { namespace storage { 00026 00027 class Dll_Export QueuePropertyFactory : public parser::XmlHandlerBase 00028 { 00029 private: 00030 const std::string ME; 00031 QueuePropertyBase prop_; 00032 bool inAddress_; 00033 org::xmlBlaster::util::qos::address::AddressFactory addressFactory_; 00034 std::string RELATING; 00035 00036 public: 00037 QueuePropertyFactory(org::xmlBlaster::util::Global& global); 00038 00039 ~QueuePropertyFactory(); 00040 00041 QueuePropertyBase getQueueProperty(); 00042 00046 void startElement(const std::string &name, const parser::AttributeMap& attrs); 00047 00048 void characters(const std::string &ch); 00049 00051 void endElement(const std::string &name); 00052 00053 /* 00054 QueuePropertyBase& 00055 readQueueProperty(const std::string& literal, QueuePropertyBase& prop); 00056 */ 00057 QueuePropertyBase readObject(const std::string& literal); 00058 00059 }; 00060 00061 }}}}} // namespaces 00062 00063 #endif