OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimObjectFactoryRegistry.h
Go to the documentation of this file.
1 //*******************************************************************
2 // Copyright (C) 2000 ImageLinks Inc.
3 //
4 // License: See top level LICENSE.txt file.
5 //
6 // Author: Garrett Potts
7 //
8 //*************************************************************************
9 // $Id: ossimObjectFactoryRegistry.h 22650 2014-02-28 14:39:20Z gpotts $
10 #ifndef ossimObjectFactoryRegistry_HEADER
11 #define ossimObjectFactoryRegistry_HEADER
12 #include <vector>
13 
14 #include <ossim/base/ossimObject.h>
17 
18 class ossimKeywordlist;
19 class ossimString;
21  public ossimFactoryListInterface<ossimObjectFactory, ossimObject>
22 {
23 public:
24  virtual ~ossimObjectFactoryRegistry();
25  static ossimObjectFactoryRegistry* instance();
26 
27  virtual ossimObject* createObject(const ossimString& name)const
28  {
29  return createObjectFromRegistry(name);
30  }
32  const char* prefix=0)const
33  {
34  return createObjectFromRegistry(kwl, prefix);
35  }
36 
41  virtual void getTypeNameList(std::vector<ossimString>& typeList)const
42  {
44  }
45 
55  virtual void getTypeNameList(std::vector<ossimString>& typeList,
56  const ossimString& baseType)const;
57 
58 protected:
62 
63 // std::vector<ossimObjectFactory*> theFactoryList;
64 
65 // ossimObjectFactory* findFactory(ossimObjectFactory* factory)const;
66 
68 };
69 
70 extern "C"
71 {
73 }
74 #endif
OSSIMDLLEXPORT void * ossimObjectFactoryRegistryGetInstance()
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
The is a factory list interface that allows registries to be accessed in a common way...
virtual ossimObject * createObject(const ossimKeywordlist &kwl, const char *prefix=0) const
ossimObjectFactoryRegistry(const ossimObjectFactoryRegistry &)
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
ossimReferenced & operator=(const ossimReferenced &)
virtual ossimObject * createObject(const ossimString &name) const
void getAllTypeNamesFromRegistry(std::vector< ossimString > &typeList) const
Will add all object types the factories can allocate.
ossimObject * createObjectFromRegistry(const ossimString &typeName) const
This is the base object return for all objects in the system.