VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtVisualizerAttributeFactory.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2011 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
13 #include <vrvUtil/DtUnicode.h>
14 #include <boost/unordered_map.hpp>
15 
16 namespace makVrv
17 {
18  class DtVisualizerAttribute;
19  class DtDe;
20 
25  {
26  public:
27 
31  {
32  public:
34  virtual ~CreatorInterface();
35 
37  virtual DtVisualizerAttribute* create() = 0;
38 
39  virtual const DtVisualizerAttribute::TypeInfo& attributeTypeInfo() const
40  = 0;
41  };
42 
44  template <typename Attribute>
45  class Creator : public CreatorInterface
46  {
47  public:
48  virtual DtVisualizerAttribute* create()
49  {
50  return new Attribute();
51  }
52 
53  virtual const DtVisualizerAttribute::TypeInfo& attributeTypeInfo() const
54  {
55  return Attribute::theTypeInfo();
56  }
57  };
58 
60  static DtVisualizerAttributeFactory& instance(DtDe&);
61 
64  static void registerInstance(DtDe&, DtVisualizerAttributeFactory*);
65 
68 
70  virtual DtVisualizerAttribute* create(const std::string& className);
71 
72 
75  virtual DtVisualizerAttribute* create(const std::string& className,
76  const DtUnicode& value);
77 
80  virtual void registerClass(CreatorInterface* creator);
81 
82  protected:
84 
85  protected:
86  typedef boost::unordered_map<std::string, CreatorInterface*> CreatorMap;
90  };
91 }
92 

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)