VR-Exchange 2.10 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
translatorFactory.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2016 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
14 #include <vlutil/vlString.h>
15 #include <vlutil/vlPrint.h>
16 #include <map>
17 #include <set>
18 
19 namespace MAKVrExchange
20 {
21 
25  template <typename ProducedType>
27  {
28  public:
29 
30  typedef ProducedType* (*DtObjectTranslatorCreatorFunction)( DtBroker* );
31  typedef ProducedType* (*DtGenericObjectTranslatorCreatorFunction)( DtBroker*, const DtString& className );
32 
33  public:
34 
37 
39  virtual ~DtTranslatorFactory();
40 
42  ProducedType* createGenericInstance( const DtString& className, DtBroker* broker );
43 
46  ProducedType* createInstance( const DtString& transName, DtBroker* broker ) const;
47 
50  template<typename T>
51  void removeCreator();
52 
55  void removeCreator( const DtString& translatorName );
56 
58  void removeAllCreators();
59 
62  template<typename T>
63  void addGenericCreator();
64 
68  template<typename T>
69  void addCreator();
70 
74  template<typename T>
75  void addCreator( const DtString& str );
76 
79  template<typename T>
80  void addCreator( const DtString& translatorName, DtObjectTranslatorCreatorFunction fn );
81 
83  std::set<DtString> creatorNames() const;
84 
85  protected:
86 
88  template <typename T>
89  static ProducedType* instanceFactory( DtBroker* broker );
90 
93  template <typename T>
94  static ProducedType* genericInstanceFactory( DtBroker* broker, const DtString& className );
95 
96  private:
97 
100 
103 
104  protected:
105 
106  typedef std::map<DtString, DtObjectTranslatorCreatorFunction> StringOtcMap;
108 
110 
111  };
112 
113 }
114 
115 #define _translatorFactory_INL_
116 #include <broker/translatorFactory.inl>
117 #undef _translatorFactory_INL_
ProducedType * createInstance(const DtString &transName, DtBroker *broker) const
Creates an translator instance and returns it as a pointer of type ProducedType.
void addGenericCreator()
Sets T as the class to create when a generic Translator is requested.
static ProducedType * instanceFactory(DtBroker *broker)
A static function which can be used to create instances of type T.
ProducedType *(* DtObjectTranslatorCreatorFunction)(DtBroker *)
Definition: translatorFactory.h:30
std::map< DtString, DtObjectTranslatorCreatorFunction > StringOtcMap
Definition: translatorFactory.h:106
DtTranslatorFactory & operator=(const DtTranslatorFactory &other)
Assignment Operator not implemented - do not copy.
void removeCreator()
Removes the translator for class T using T::translatorName().
void addCreator()
Adds a creator for class T using the default instanceFactory Method.
ProducedType * createGenericInstance(const DtString &className, DtBroker *broker)
Creates a generic translator using the className and broker provided.
Contains the DtInteractionTranslator and DtBaseInteractionTranslator class declarations.
void removeAllCreators()
removes all creators currently registered.
static ProducedType * genericInstanceFactory(DtBroker *broker, const DtString &className)
A static function which can be used to create instances of type T, where T takes a className in the C...
std::set< DtString > creatorNames() const
Returns the set of translator names added through addCreator()
DtGenericObjectTranslatorCreatorFunction myGenericTranslatorCreator
Definition: translatorFactory.h:109
Base class for all broker objects.
Definition: broker.h:58
Contains the DtObjectTranslator and DtBaseObjectTranslator class declarations.
A factory class for Translators.
Definition: translatorFactory.h:26
StringOtcMap myNamedCreatorMap
Definition: translatorFactory.h:107
ProducedType *(* DtGenericObjectTranslatorCreatorFunction)(DtBroker *, const DtString &className)
Definition: translatorFactory.h:31
virtual ~DtTranslatorFactory()
Default DTOR - destroys factory, not instances created by the factory.

Document ID: Generated on Mon May 25 18:45:12 EDT 2026 from SVN revision 289111
Copyright © 2005-2026 MAK Technologies. All Rights Reserved (www.mak.com)