/* * AbstractPanelPlotNode.hh * * Created on: Dec 6, 2013 * Author: amdadev */ #ifndef ABSTRACTPANELPLOTNODE_HH_ #define ABSTRACTPANELPLOTNODE_HH_ #include #include #include "NodeCfg.hh" #include "PanelPlotOutput.hh" #include "PlotOutput.hh" namespace plot { /** * Base class for creating a PanelPlotOutput object and add it to its PlotOutput parent. * Subclasses must register themselves into PanelPlotNodeRegistry. * (@see plot::TimePlotNode for an example of subclass implementation). * Using a registry allows to add new plugins (using AMDA plugins mechanism) to handle new kind of * plot. */ class AbstractPanelPlotNode: public AMDA::XMLConfigurator::NodeGrpCfg { public: AbstractPanelPlotNode(); virtual ~AbstractPanelPlotNode(); /** * @overload AMDA::XMLConfigurator::NodeCfg method. * Subclasses should not overload that method (that's why we mark it as final), * specific behaviour must be handled in the protected * boost::shared_ptr proceed(xmlNodePtr, PlotOutput*, Panel*) method instead. */ void proceed(xmlNodePtr pNode, const AMDA::Parameters::CfgContext& pCtx) final; protected: virtual boost::shared_ptr proceed(xmlNodePtr, PlotOutput*, Panel*)=0; }; } /* namespace plot */ #endif /* ABSTRACTPANELPLOTNODE_HH_ */