1 /*------------------------------------------------------------------------------
2 Name: QueuePropertyFactory.h
3 Project: xmlBlaster.org
4 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file
5 Comment: Holding callback queue properties
6 Author: laghi
7 ------------------------------------------------------------------------------*/
8
9
10 /**
11 * Factory to construct org::xmlBlaster::util::queue::QueueProperty objects
12 * <p />
13 * See org::xmlBlaster::util::qos::ConnectQos for XML syntax.
14 * @see org.xmlBlaster.client.qos.ConnectQos
15 */
16 #ifndef _UTIL_QUEUE_QUEUEPROPERTYFACTORY_H
17 #define _UTIL_QUEUE_QUEUEPROPERTYFACTORY_H
18
19 #include <util/qos/storage/QueuePropertyBase.h>
20 #include <util/parser/XmlHandlerBase.h>
21 #include <util/qos/address/AddressFactory.h>
22 #include <util/qos/address/Address.h>
23 #include <util/qos/address/CallbackAddress.h>
24
25 namespace org { namespace xmlBlaster { namespace util { namespace qos { namespace storage {
26
27 class Dll_Export QueuePropertyFactory : public parser::XmlHandlerBase
28 {
29 private:
30 const std::string ME;
31 QueuePropertyBase prop_;
32 bool inAddress_;
33 org::xmlBlaster::util::qos::address::AddressFactory addressFactory_;
34 std::string RELATING;
35
36 public:
37 QueuePropertyFactory(org::xmlBlaster::util::Global& global);
38
39 ~QueuePropertyFactory();
40
41 QueuePropertyBase getQueueProperty();
42
43 /**
44 * Called for XML callback start tag
45 */
46 void startElement(const std::string &name, const parser::AttributeMap& attrs);
47
48 void characters(const std::string &ch);
49
50 /** End element. */
51 void endElement(const std::string &name);
52
53 /*
54 QueuePropertyBase&
55 readQueueProperty(const std::string& literal, QueuePropertyBase& prop);
56 */
57 QueuePropertyBase readObject(const std::string& literal);
58
59 };
60
61 }}}}} // namespaces
62
63 #endif
syntax highlighted by Code2HTML, v. 0.9.1