OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimKakaduPluginInit.cpp
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: OSSIM Kakadu plugin initialization
8 // code.
9 //
10 //----------------------------------------------------------------------------
11 // $Id: ossimKakaduPluginInit.cpp 20398 2011-12-20 16:34:24Z gpotts $
12 
30 
31 static void setKakaduDescription(ossimString& description)
32 {
33  description = "Kakadu (j2k) reader / writer plugin\n";
34  description += "Kakadu (jpip) reader plugin\n";
35  description += "\tsupports ingest via a keywordlist lr from a url of the form\n";
36  description += "\tjpip://<server>:<port>/<path>\n";
37 }
38 
39 
40 extern "C"
41 {
44  std::vector<ossimString> theKakaduObjList;
45 
46  const char* getKakaduDescription()
47  {
48  return theKakaduDescription.c_str();
49  }
50 
52  {
53  return (int)theKakaduObjList.size();
54  }
55 
56  const char* getKakaduClassName(int idx)
57  {
58  if(idx < (int)theKakaduObjList.size())
59  {
60  return theKakaduObjList[idx].c_str();
61  }
62  return (const char*)0;
63  }
64 
65  /* Note symbols need to be exported on windoze... */
67  ossimSharedObjectInfo** info,
68  const char* options)
69  {
73 
74  *info = &myKakaduInfo;
75  ossimKeywordlist kwl;
76  kwl.parseString(ossimString(options));
77  if(ossimString(kwl.find("reader_factory.location")).downcase() == "front")
78  {
79  /* Register the readers... */
81  registerFactoryToFront(ossimKakaduReaderFactory::instance());
82 
84  registerFactoryToFront(ossimKakaduJpipHandlerFactory::instance());
85  }
86  else
87  {
88  /* Register the readers... */
90  registerFactory(ossimKakaduReaderFactory::instance());
92  registerFactory(ossimKakaduJpipHandlerFactory::instance());
93  }
94 
95 
96  if(ossimString(kwl.find("overview_builder_factory.location")).downcase() == "front")
97  {
98  /* Register the overview buildeds. */
100  registerFactoryToFront(ossimKakaduOverviewBuilderFactory::instance());
101  }
102  else
103  {
104  /* Register the overview buildeds. */
107  false);
108  }
109 
110  if(ossimString(kwl.find("writer_factory.location")).downcase() == "front")
111  {
112  /* Register the writers... */
114  registerFactoryToFront(ossimKakaduWriterFactory::instance());
115 
116  }
117  else
118  {
119 
120  /* Register the writers... */
122  registerFactory(ossimKakaduWriterFactory::instance());
123 
124  }
125  if(ossimString(kwl.find("projection_factory.location")).downcase() == "front")
126  {
128 
129  }
130  else
131  {
133  }
134  if(ossimString(kwl.find("info_factory.location")).downcase() == "front")
135  {
137 
138  }
139  else
140  {
142  }
143  if(ossimString(kwl.find("image_geometry_factory.location")).downcase() == "front")
144  {
146  }
147  else
148  {
150  }
152 
153  setKakaduDescription(theKakaduDescription);
160  theKakaduObjList.push_back("ossimKakaduJpipInfo");
161  }
162 
163  /* Note symbols need to be exported on windoze... */
165  {
167  unregisterFactory(ossimKakaduReaderFactory::instance());
168 
170  unregisterFactory(ossimKakaduOverviewBuilderFactory::instance());
171 
173  unregisterFactory(ossimKakaduWriterFactory::instance());
174 
176 
177  }
178 }
static ossimCodecFactoryRegistry * instance()
static ossimImageGeometryRegistry * instance()
static ossimKakaduWriterFactory * instance()
static method to return instance (the only one) of this class.
std::vector< ossimString > theKakaduObjList
static ossimKakaduJpipInfoFactory * instance()
Represents serializable keyword/value map.
OSSIM_PLUGINS_DLL void ossimSharedLibraryFinalize()
ossimString theKakaduDescription
const char * find(const char *key) const
static ossimImageWriterFactoryRegistry * instance()
ossimSharedLibraryGetNumberOfClassNamesPtr getNumberOfClassNames
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
Adds "ossimKakaduWriter" to list.
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
Method to populate a list of supported types for the factory.
ossimSharedObjectInfo myKakaduInfo
static ossimKakaduJpipImageGeometryFactory * instance()
static ossimKakaduJpipHandlerFactory * instance()
static method to return instance (the only one) of this class.
void registerFactoryToFront(ossimInfoFactoryInterface *factory)
Adds factory to the front of the registry.
void unregisterFactory(T *factory)
Will remove the factory from the registry.
void registerFactoryToFront(T *factory)
Inserts the factory to the front of the list.
OSSIM_PLUGINS_DLL void ossimSharedLibraryInitialize(ossimSharedObjectInfo **info, const char *options)
const char * getKakaduDescription()
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
Adds ossimKakaduWriter to the typeList.
ossimSharedLibraryGetDescriptionPtr getDescription
const char * getKakaduClassName(int idx)
#define OSSIM_PLUGINS_DLL
void registerFactory(T *factory, bool pushToFrontFlag=false)
Will register a factory to the factory list.
virtual bool parseString(const std::string &inString)
ossimSharedLibraryGetClassNamesPtr getClassName
static ossimProjectionFactoryRegistry * instance()
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
static ossimOverviewBuilderFactoryRegistry * instance()
instance method for access to theInstance pointer.
static ossimInfoFactoryRegistry * instance()
instance method
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
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
static ossimImageHandlerRegistry * instance()
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
Adds ossimKakaduWriter to the typeList.
int getKakaduNumberOfClassNames()
static ossimKakaduCodecFactory * instance()
static ossimJpipProjectionFactory * instance()
static ossimKakaduOverviewBuilderFactory * instance()
static instance method.
void registerFactory(ossimInfoFactoryInterface *factory)
Method to add factory to registry.
static ossimKakaduReaderFactory * instance()
static method to return instance (the only one) of this class.