// // Created by johannes on 29.08.19. // #ifndef FLIPPR_DRIVER_ITEMVARHOLDER_H #define FLIPPR_DRIVER_ITEMVARHOLDER_H #include #include #include "output/items/Item.h" template <> class Poco::Dynamic::VarHolderImpl> : public Poco::Dynamic::VarHolder { public: VarHolderImpl(const std::shared_ptr & item) : item(item) {} void convert(std::string & val) const override { val = this->item->get_name(); } VarHolder * clone(Placeholder < VarHolder > * pHolder = 0) const override { return cloneHolder(pHolder, item); } const std::type_info & type() const override { return typeid(item); } const std::shared_ptr & value() const { return item; } private: std::shared_ptr item; }; #endif //FLIPPR_DRIVER_ITEMVARHOLDER_H