OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
ossimNitfTagFactoryRegistry Class Reference

#include <ossimNitfTagFactoryRegistry.h>

Public Member Functions

virtual ~ossimNitfTagFactoryRegistry ()
 
void registerFactory (ossimNitfTagFactory *aFactory)
 
void unregisterFactory (ossimNitfTagFactory *aFactory)
 
ossimRefPtr< ossimNitfRegisteredTagcreate (const ossimString &tagName) const
 
bool exists (ossimNitfTagFactory *factory) const
 

Static Public Member Functions

static ossimNitfTagFactoryRegistryinstance ()
 

Protected Member Functions

 ossimNitfTagFactoryRegistry ()
 

Private Member Functions

 ossimNitfTagFactoryRegistry (const ossimNitfTagFactoryRegistry &factory)
 hidden copy constructory More...
 
const ossimNitfTagFactoryRegistryoperator= (const ossimNitfTagFactoryRegistry &factory)
 hidden operator= More...
 
void initializeDefaults ()
 

Private Attributes

std::vector< ossimNitfTagFactory * > theFactoryList
 

Detailed Description

Definition at line 21 of file ossimNitfTagFactoryRegistry.h.

Constructor & Destructor Documentation

◆ ~ossimNitfTagFactoryRegistry()

ossimNitfTagFactoryRegistry::~ossimNitfTagFactoryRegistry ( )
virtual

Definition at line 24 of file ossimNitfTagFactoryRegistry.cpp.

25 {
26 }

◆ ossimNitfTagFactoryRegistry() [1/2]

ossimNitfTagFactoryRegistry::ossimNitfTagFactoryRegistry ( )
protected

Definition at line 19 of file ossimNitfTagFactoryRegistry.cpp.

References initializeDefaults().

◆ ossimNitfTagFactoryRegistry() [2/2]

ossimNitfTagFactoryRegistry::ossimNitfTagFactoryRegistry ( const ossimNitfTagFactoryRegistry factory)
private

hidden copy constructory

Definition at line 92 of file ossimNitfTagFactoryRegistry.cpp.

94 {
95 }

Member Function Documentation

◆ create()

ossimRefPtr< ossimNitfRegisteredTag > ossimNitfTagFactoryRegistry::create ( const ossimString tagName) const

Definition at line 55 of file ossimNitfTagFactoryRegistry.cpp.

References theFactoryList, and ossimRefPtr< T >::valid().

Referenced by ossimNitfTagInformation::parseStream().

56 {
57  std::vector<ossimNitfTagFactory*>::const_iterator factory;
59 
60  factory = theFactoryList.begin();
61  while(factory != theFactoryList.end())
62  {
63  result = (*factory)->create(tagName);
64 
65  if(result.valid())
66  {
67  return result;
68  }
69  ++factory;
70  }
71 
73  return tag;
74 }
bool valid() const
Definition: ossimRefPtr.h:75
std::vector< ossimNitfTagFactory * > theFactoryList

◆ exists()

bool ossimNitfTagFactoryRegistry::exists ( ossimNitfTagFactory factory) const

Definition at line 82 of file ossimNitfTagFactoryRegistry.cpp.

References theFactoryList.

Referenced by registerFactory().

83 {
84  std::vector<ossimNitfTagFactory*>::const_iterator iter = std::find(theFactoryList.begin(),
85  theFactoryList.end(),
86  factory);
87 
88  return (iter != theFactoryList.end());
89 
90 }
std::vector< ossimNitfTagFactory * > theFactoryList

◆ initializeDefaults()

void ossimNitfTagFactoryRegistry::initializeDefaults ( )
private

◆ instance()

ossimNitfTagFactoryRegistry * ossimNitfTagFactoryRegistry::instance ( )
static

Definition at line 49 of file ossimNitfTagFactoryRegistry.cpp.

Referenced by ossimNitfTagInformation::parseStream().

50 {
51  static ossimNitfTagFactoryRegistry inst;
52  return &inst;
53 }

◆ operator=()

const ossimNitfTagFactoryRegistry & ossimNitfTagFactoryRegistry::operator= ( const ossimNitfTagFactoryRegistry factory)
private

hidden operator=

Definition at line 97 of file ossimNitfTagFactoryRegistry.cpp.

99 {
100  return *this;
101 }

◆ registerFactory()

void ossimNitfTagFactoryRegistry::registerFactory ( ossimNitfTagFactory aFactory)

Definition at line 28 of file ossimNitfTagFactoryRegistry.cpp.

References exists(), and theFactoryList.

29 {
30  if(aFactory&&!exists(aFactory))
31  {
32  theFactoryList.push_back(aFactory);
33  }
34 }
bool exists(ossimNitfTagFactory *factory) const
std::vector< ossimNitfTagFactory * > theFactoryList

◆ unregisterFactory()

void ossimNitfTagFactoryRegistry::unregisterFactory ( ossimNitfTagFactory aFactory)

Definition at line 37 of file ossimNitfTagFactoryRegistry.cpp.

38 {
39  std::vector<ossimNitfTagFactory*>::iterator iter =
40  std::find(theFactoryList.begin(),
41  theFactoryList.end(),
42  aFactory);
43  if(iter != theFactoryList.end())
44  {
45  theFactoryList.erase(iter);
46  }
47 }
std::vector< ossimNitfTagFactory * > theFactoryList

Member Data Documentation

◆ theFactoryList

std::vector<ossimNitfTagFactory*> ossimNitfTagFactoryRegistry::theFactoryList
private

Definition at line 46 of file ossimNitfTagFactoryRegistry.h.

Referenced by create(), exists(), initializeDefaults(), and registerFactory().


The documentation for this class was generated from the following files: