ossimImageHandler* ossimKakaduReaderFactory::open(const ossimKeywordlist& kwl,
                                                  const char* prefix)const
{
   if(traceDebug())
   {
      ossimNotify(ossimNotifyLevel_DEBUG)
         << "ossimKakaduReaderFactory::open(kwl, prefix) DEBUG: entered..."
         << std::endl;
   }

   ossimRefPtr<ossimImageHandler> reader = 0; 

   // To save time check the file name first.
   const char* lookup = kwl.find(prefix, ossimKeywordNames::FILENAME_KW);
   if (!lookup)
   {
      // Deprecated...
      lookup = kwl.find(prefix, ossimKeywordNames::IMAGE_FILE_KW);
   }

   if (lookup)
   {
      ossimFilename f = lookup;
      if ( hasExcludedExtension(f) == false )
      {
         reader = new ossimKakaduNitfReader;
         if(reader->loadState(kwl, prefix) == false)
         {
            reader = 0;
         }
         
         if (!reader)
         {
            reader = new ossimKakaduJp2Reader;
            if(reader->loadState(kwl, prefix) == false)
            {
               reader = 0;
            }
         }
         
         if (!reader)
         {
            reader = new ossimKakaduJ2kReader;
            if(reader->loadState(kwl, prefix) == false)
            {
               reader = 0;
            }
         }
      }
   }

   if(traceDebug())
   {
      ossimNotify(ossimNotifyLevel_DEBUG)
         << "ossimKakaduReaderFactory::open(kwl, prefix) DEBUG: leaving..."
         << std::endl;
   }
   
   return reader.release();
}
ossimImageHandler* ossimGeoPdfReaderFactory::open(const ossimFilename& fileName,
   bool openOverview)const
{
   if(traceDebug())
   {
      ossimNotify(ossimNotifyLevel_DEBUG)
         << "ossimGeoPdfReaderFactory::open(filename) DEBUG: entered..."
         << "\ntrying ossimKakaduNitfReader"
         << std::endl;
   }

   ossimRefPtr<ossimImageHandler> reader = 0;

   if ( hasExcludedExtension(fileName) == false )
   {
      reader = new ossimGeoPdfReader;
      reader->setOpenOverviewFlag(openOverview);
      if(reader->open(fileName) == false)
      {
         reader = 0;
      }
   }

   if(traceDebug())
   {
      ossimNotify(ossimNotifyLevel_DEBUG)
         << "ossimGeoPdfReaderFactory::open(filename) DEBUG: leaving..."
         << std::endl;
   }

   return reader.release();
}
Пример #3
0
ossimImageHandler* ossimOpjReaderFactory::open(
   const ossimFilename& fileName, bool openOverview) const
{
   static const char* M = "ossimOpjReaderFactory::open(filename)";
   
   if(traceDebug())
   {
      ossimNotify(ossimNotifyLevel_DEBUG)
         << M << " Entered with filename:" << fileName
         << "\n";
   }

   ossimRefPtr<ossimImageHandler> reader = 0; 
   while (true)
   {
      if (hasExcludedExtension(fileName))  break;

      if (traceDebug())
      {
         ossimNotify(ossimNotifyLevel_DEBUG) << M << " Trying ossimOpjJp2Reader...";
      }
      reader = new ossimOpjJp2Reader();
      reader->setOpenOverviewFlag(openOverview);
      if( reader->open(fileName) ) break;

      if (traceDebug())
      {
         ossimNotify(ossimNotifyLevel_DEBUG) << M << " Trying ossimOpjNitfReader...";
      }      
      reader = new ossimOpjNitfReader();
      if( reader->open(fileName) ) break;

      reader = 0;
      break;
   }
   
   if(traceDebug())
   {
      ossimNotify(ossimNotifyLevel_DEBUG) << M << " DEBUG: leaving..." << std::endl;
   }
   
   return reader.release();
}
ossimImageHandler* ossimKakaduReaderFactory::open(const ossimFilename& fileName,
                                                  bool openOverview)const
{
   static const char* M = "ossimKakaduReaderFactory::open(filename) -- ";
   if(traceDebug())
      ossimNotify(ossimNotifyLevel_DEBUG)<<M<<"Entered with filename <"<<fileName<<">"  ;

   ossimRefPtr<ossimImageHandler> reader = 0; 
   while (true)
   {
      if (hasExcludedExtension(fileName))  break;

      if (traceDebug()) ossimNotify(ossimNotifyLevel_DEBUG)<<M<< "Trying ossimKakaduNitfReader...";
      reader = new ossimKakaduNitfReader;
      reader->setOpenOverviewFlag(openOverview);
      if(reader->open(fileName))  break;

      if (traceDebug()) ossimNotify(ossimNotifyLevel_DEBUG)<<M<< "Trying ossimKakaduJp2Reader...";
      reader = new ossimKakaduJp2Reader;
      reader->setOpenOverviewFlag(openOverview);
      if(reader->open(fileName))  break;

      if (traceDebug()) ossimNotify(ossimNotifyLevel_DEBUG)<<M<< "Trying ossimKakaduJ2kReader...";
      reader = new ossimKakaduJ2kReader;
      reader->setOpenOverviewFlag(openOverview);
      if(reader->open(fileName))  break;

      reader = 0;
      break;
   } 
   
   if (traceDebug())
   {
      if (reader.valid())
         ossimNotify(ossimNotifyLevel_DEBUG)<<M<< "   SUCCESS" << std::endl;
      else
         ossimNotify(ossimNotifyLevel_DEBUG)<<M<< "   Open FAILED" << std::endl;
   }
 
   return reader.release();
}