Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
REveDataSimpleProxyBuilderTemplate.hxx
Go to the documentation of this file.
1 #ifndef ROOT7_REveDataProxySimpleBuilderTemplate
2 #define ROOT7_REveDataProxySimpleBuilderTemplate
3 
4 
6 
7 
8 namespace ROOT {
9 namespace Experimental {
10 
11 template <typename T>
12 class REveDataSimpleProxyBuilderTemplate : public REveDataSimpleProxyBuilder {
13 
14 public:
15  REveDataSimpleProxyBuilderTemplate() : REveDataSimpleProxyBuilder("GL")
16  {
17  }
18 
19 protected:
20  using REveDataSimpleProxyBuilder::Build;
21  void Build(const void *iData, int index, REveElement *itemHolder, const REveViewContext *context) override
22  {
23  if(iData) {
24  Build(*reinterpret_cast<const T*> (iData), index, itemHolder, context);
25  }
26  }
27 
28  virtual void Build(const T & /*iData*/, int /*index*/, REveElement * /*itemHolder*/, const REveViewContext * /*context*/)
29  {
30  throw std::runtime_error("virtual Build(const T&, int, REveElement&, const REveViewContext*) not implemented by inherited class.");
31  }
32 
33  using REveDataSimpleProxyBuilder::BuildViewType;
34  void BuildViewType(const void *iData, int index, REveElement *itemHolder, std::string viewType, const REveViewContext *context) override
35  {
36  if(iData) {
37  BuildViewType(*reinterpret_cast<const T*> (iData), index, itemHolder, viewType, context);
38  }
39  }
40 
41  virtual void BuildViewType(const T & /*iData*/, int /*index*/, REveElement * /*itemHolder*/, std::string /*viewType*/, const REveViewContext * /*context*/)
42  {
43  throw std::runtime_error("virtual BuildViewType(const T&, int, REveElement&, const REveViewContext*) not implemented by inherited class.");
44  }
45 
46 private:
47  REveDataSimpleProxyBuilderTemplate(const REveDataSimpleProxyBuilderTemplate&); // stop default
48 
49  const REveDataSimpleProxyBuilderTemplate& operator=(const REveDataSimpleProxyBuilderTemplate&); // stop default
50 };
51 
52 
53 } // namespace Experimental
54 } // namespace ROOT
55 #endif