VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVirtualBaseClassCreator.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright (c) 2020 MAK Technologies, Inc.
3  * All rights reserved.
4  ******************************************************************************/
5 
6 #pragma once
7 
8 #include <vrvCore/vrvCore.h>
9 #include <vrvCore/DtDe.h>
10 
11 namespace makVrv
12 {
13  template<class T>
15  {
16  public:
19 
22 
24  virtual T* create();
25 
26  protected:
29 
30  protected:
32  };
33 
34  template <typename T>
35  inline const char* creatorTypeName(void) { return "unknown"; }
36 
37  template<class T>
39  : myDe(de)
40  {
41 
42  }
43 
44  template<class T>
46  {
47 
48  }
49 
50  template<class T>
52  {
53  std::string creatorType = creatorTypeName<T>();
55  de.findInstance(creatorType));
56  if (!inst)
57  {
58  inst = new DtVirtualBaseClassCreator<T>(de);
59  de.registerInstance(creatorType, inst);
60  }
61  return *inst;
62  }
63 
64  template<class T>
66  {
67  return new T(myDe);
68  }
69 
70 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
virtual ~DtVirtualBaseClassCreator()
DTOR.
Definition: DtVirtualBaseClassCreator.h:45
const char * creatorTypeName(void)
Definition: DtVirtualBaseClassCreator.h:35
static DtVirtualBaseClassCreator & instance(DtDe &de)
Get an instance of the creator.
Definition: DtVirtualBaseClassCreator.h:51
DtVirtualBaseClassCreator(DtDe &de)
CTOR.
Definition: DtVirtualBaseClassCreator.h:38
Contains makVrv::DtDe class.
virtual DtVirtualBaseClass * findInstance(const std::string &instanceName) const
Find an instance with the given name.
Definition: DtVirtualBaseClassCreator.h:14
virtual T * create()
Create a DtVirtualBaseClassCreator object.
Definition: DtVirtualBaseClassCreator.h:65
virtual void registerInstance(const std::string &instanceName, DtVirtualBaseClass *instance)
Register an instance with a given name for later retrieval.
DtDe & myDe
Definition: DtVirtualBaseClassCreator.h:31
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)