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

This is a convenience class that is used by the NITF handler to create the proper keywordlist from the TREs and then calls the CodecRegistry to actuall return and allocate a new codec. More...

#include <ossimNitfCodecFactory.h>

Public Member Functions

 ~ossimNitfCodecFactory ()
 
ossimCodecBasecreateCodec (ossimRefPtr< ossimNitfImageHeader > imageHeader)
 

Static Public Member Functions

static ossimNitfCodecFactoryinstance ()
 

Protected Member Functions

 ossimNitfCodecFactory ()
 

Static Protected Attributes

static std::mutex m_mutex
 
static ossimNitfCodecFactorym_instance =0
 

Detailed Description

This is a convenience class that is used by the NITF handler to create the proper keywordlist from the TREs and then calls the CodecRegistry to actuall return and allocate a new codec.

Definition at line 21 of file ossimNitfCodecFactory.h.

Constructor & Destructor Documentation

◆ ~ossimNitfCodecFactory()

ossimNitfCodecFactory::~ossimNitfCodecFactory ( )

Definition at line 22 of file ossimNitfCodecFactory.cpp.

References m_instance, and m_mutex.

23 {
24  std::lock_guard<std::mutex> lock(m_mutex);
25  m_instance = 0;
26 }
static ossimNitfCodecFactory * m_instance

◆ ossimNitfCodecFactory()

ossimNitfCodecFactory::ossimNitfCodecFactory ( )
protected

Definition at line 17 of file ossimNitfCodecFactory.cpp.

References m_instance.

Referenced by instance().

18 {
19  m_instance = this;
20 }
static ossimNitfCodecFactory * m_instance

Member Function Documentation

◆ createCodec()

ossimCodecBase * ossimNitfCodecFactory::createCodec ( ossimRefPtr< ossimNitfImageHeader imageHeader)

Definition at line 40 of file ossimNitfCodecFactory.cpp.

References ossimKeywordlist::add(), ossimString::c_str(), ossimCodecFactoryRegistry::createCodec(), ossimNitfImageHeader::getCompressionCode(), ossimCodecFactoryRegistry::instance(), ossimNitfImageHeader::isCompressed(), ossimNitfImageHeader::saveState(), and ossimRefPtr< T >::valid().

41 {
42  ossimCodecBase* result=0;
43 
44  if(imageHeader.valid()&&imageHeader->isCompressed())
45  {
46  ossimKeywordlist kwl;
47 
48  imageHeader->saveState(kwl);
49  // rename the type to be a NITF IC compression type
50  // J2K should be C8
51  //
52  kwl.add("type", imageHeader->getCompressionCode().c_str(), true);
54  }
55 
56  return result;
57 }
static ossimCodecFactoryRegistry * instance()
Represents serializable keyword/value map.
bool valid() const
Definition: ossimRefPtr.h:75
virtual bool saveState(ossimKeywordlist &kwl, const ossimString &prefix="") const
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
virtual ossimCodecBase * createCodec(const ossimString &type) const
Will loop through all registered factories trying to allocate a codec for the passed in type...
virtual ossimString getCompressionCode() const =0
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
virtual bool isCompressed() const =0

◆ instance()

ossimNitfCodecFactory * ossimNitfCodecFactory::instance ( )
static

Definition at line 29 of file ossimNitfCodecFactory.cpp.

References m_instance, m_mutex, and ossimNitfCodecFactory().

30 {
31  std::lock_guard<std::mutex> lock(m_mutex);
32  if(!m_instance)
33  {
35  }
36 
37  return m_instance;
38 }
static ossimNitfCodecFactory * m_instance

Member Data Documentation

◆ m_instance

ossimNitfCodecFactory * ossimNitfCodecFactory::m_instance =0
staticprotected

Definition at line 30 of file ossimNitfCodecFactory.h.

Referenced by instance(), ossimNitfCodecFactory(), and ~ossimNitfCodecFactory().

◆ m_mutex

std::mutex ossimNitfCodecFactory::m_mutex
staticprotected

Definition at line 29 of file ossimNitfCodecFactory.h.

Referenced by instance(), and ~ossimNitfCodecFactory().


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