File indexing completed on 2024-04-06 12:11:32
0001 #ifndef Fireworks_Core_FWProxyBuilderTemplate_h
0002 #define Fireworks_Core_FWProxyBuilderTemplate_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <typeinfo>
0023
0024
0025 #include "Fireworks/Core/interface/FWProxyBuilderBase.h"
0026 #include "Fireworks/Core/interface/FWSimpleProxyHelper.h"
0027 #include "Fireworks/Core/interface/FWEventItem.h"
0028
0029 template <typename T>
0030 class FWProxyBuilderTemplate : public FWProxyBuilderBase {
0031 public:
0032 FWProxyBuilderTemplate() : m_helper(typeid(T)) {}
0033 ~FWProxyBuilderTemplate() override {}
0034
0035
0036
0037
0038
0039
0040
0041 protected:
0042 const T& modelData(int index) { return *reinterpret_cast<const T*>(m_helper.offsetObject(item()->modelData(index))); }
0043
0044 public:
0045 FWProxyBuilderTemplate(const FWProxyBuilderTemplate&) = delete;
0046
0047 const FWProxyBuilderTemplate& operator=(const FWProxyBuilderTemplate&) = delete;
0048
0049 private:
0050 virtual void itemChangedImp(const FWEventItem* iItem) {
0051 if (iItem)
0052 m_helper.itemChanged(iItem);
0053 }
0054
0055
0056 FWSimpleProxyHelper m_helper;
0057 };
0058
0059 #endif