equal
deleted
inserted
replaced
24 class SAXContentHandler { |
24 class SAXContentHandler { |
25 public: |
25 public: |
26 |
26 |
27 virtual ~SAXContentHandler() = default; |
27 virtual ~SAXContentHandler() = default; |
28 |
28 |
|
29 virtual void abc() = 0; // FIXME: remove dummy method |
|
30 virtual void def(int a) = 0; // FIXME: remove dummy method |
|
31 virtual void ghi(int a, int b) = 0; // FIXME: remove dummy method |
|
32 |
|
33 }; |
|
34 |
|
35 class SAXContentHandlerProxy : public SAXContentHandler { |
|
36 private: |
|
37 std::vector<std::shared_ptr<SAXContentHandler>> handlers; |
|
38 public: |
|
39 |
|
40 void addHandler(std::shared_ptr<SAXContentHandler> handler) { |
|
41 handlers.push_back(handler); |
|
42 } |
|
43 |
|
44 #define handler for (auto ___h : handlers) ___h |
|
45 |
|
46 void abc() override { |
|
47 handler->abc(); |
|
48 } |
|
49 |
|
50 void def(int a) override { |
|
51 handler->def(a); |
|
52 } |
|
53 |
|
54 void ghi(int a, int b) override { |
|
55 handler->ghi(a, b); |
|
56 } |
|
57 |
|
58 #undef handler |
|
59 |
29 }; |
60 }; |
30 |
61 |
31 } |
62 } |
32 } |
63 } |
33 } |
64 } |