--- a/src/lib/SAXContentHandler.h Sun Mar 14 19:58:35 2021 +0100
+++ b/src/lib/SAXContentHandler.h Sat Jun 12 18:34:19 2021 +0200
@@ -26,6 +26,37 @@
virtual ~SAXContentHandler() = default;
+ virtual void abc() = 0; // FIXME: remove dummy method
+ virtual void def(int a) = 0; // FIXME: remove dummy method
+ virtual void ghi(int a, int b) = 0; // FIXME: remove dummy method
+
+};
+
+class SAXContentHandlerProxy : public SAXContentHandler {
+private:
+ std::vector<std::shared_ptr<SAXContentHandler>> handlers;
+public:
+
+ void addHandler(std::shared_ptr<SAXContentHandler> handler) {
+ handlers.push_back(handler);
+ }
+
+#define handler for (auto ___h : handlers) ___h
+
+ void abc() override {
+ handler->abc();
+ }
+
+ void def(int a) override {
+ handler->def(a);
+ }
+
+ void ghi(int a, int b) override {
+ handler->ghi(a, b);
+ }
+
+#undef handler
+
};
}