OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimDatumFactoryRegistry.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: See top level LICENSE.txt file
4 //
5 // Author: David Burken
6 //
7 // Description: Class declaration of Registry (singleton) for datum factories.
8 //
9 //----------------------------------------------------------------------------
10 // $Id$
11 
12 #ifndef ossimDatumFactoryRegistry_HEADER
13 #define ossimDatumFactoryRegistry_HEADER
14 
15 #include <vector>
16 #include <ossim/base/ossimConstants.h> /* for OSSIM_DLL macro */
18 #include <mutex>
19 // Forward class declarations.
21 class ossimString;
22 class ossimDatum;
23 
25 {
26 public:
27 
30 
36  static ossimDatumFactoryRegistry* instance();
37 
42  void registerFactory(ossimDatumFactoryInterface* factory);
43 
51  virtual const ossimDatum* create(const ossimString& code)const;
52  virtual const ossimDatum* create(const ossimKeywordlist& kwl, const char *prefix=0) const;
53 
60  virtual void getList(std::vector<ossimString>& list) const;
61 
62 protected:
63 
66 
68  //static ossimDatumFactoryRegistry* theInstance;
69 
70  mutable std::mutex theFactoryListMutex;
71  std::vector<ossimDatumFactoryInterface*> theFactoryList;
72 };
73 
74 #endif /* #ifndef ossimDatumFactoryRegistry_HEADER */
Represents serializable keyword/value map.
std::vector< ossimDatumFactoryInterface * > theFactoryList
virtual void getList(std::vector< ossimString > &list) const =0
Pure virtual getList method.
std::mutex theFactoryListMutex
Single static instance of this class.
virtual const ossimDatum * create(const ossimString &code) const =0
Pure virtual create method.
#define OSSIM_DLL