27 static ossimTrace traceDebug(
"ossimImageHandlerRegistry:debug");
45 return &sharedInstance;
55 const char* prefix)
const 60 result =
open(kwl, prefix);
66 bool openOverview)
const 68 std::vector<ossimRefPtr<ossimImageHandler> > handlers;
74 for(idx = 0; idx <
size; ++idx)
77 if(handlers[idx]->
open(file))
89 vector<ossimImageHandlerFactoryBase*>::const_iterator iter =
m_factoryList.begin();
94 (*iter)->getImageHandlersBySuffix(temp, ext);
100 result.insert(result.end(),
111 vector<ossimImageHandlerFactoryBase*>::const_iterator iter =
m_factoryList.begin();
116 (*iter)->getImageHandlersByMimeType(temp, mimeType);
122 result.insert(result.end(),
138 vector<ossimString> result;
139 vector<ossimImageHandlerFactoryBase*>::const_iterator iter =
m_factoryList.begin();
143 (*iter)->getSupportedExtensions(extensionList);
159 std::shared_ptr<ossim::ImageHandlerState> result;
171 const ossimString& connectionString,
bool openOverview )
const 179 std::string myConnectionString = connectionString.
downcase().
string();
180 std::string fileStr =
"file://";
181 std::size_t found = myConnectionString.find( fileStr );
184 myConnectionString = connectionString.
string().substr( fileStr.size() );
188 myConnectionString = connectionString.
string();
192 std::shared_ptr<ossim::ImageHandlerState> state =
getState(myConnectionString, 0);
203 createIstream( myConnectionString, std::ios_base::in|std::ios_base::binary);
210 if ( !result.
valid() )
233 bool openOverview)
const 239 std::shared_ptr<ossim::ImageHandlerState> state =
getState(filename, 0);
271 vector<ossimImageHandlerFactoryBase*>::const_iterator factory =
m_factoryList.begin();
290 const char* prefix)
const 293 vector<ossimImageHandlerFactoryBase*>::const_iterator factory;
298 result = (*factory)->
open(kwl, prefix);
311 std::shared_ptr<ossim::istream>& str,
312 const std::string& connectionString,
313 bool openOverview )
const 320 std::shared_ptr<ossim::ImageHandlerState> state =
getState(connectionString, 0);
324 result =
open(state);
330 << result.
valid() <<std::endl;
337 vector<ossimImageHandlerFactoryBase*>::const_iterator factory =
m_factoryList.begin();
341 if ( result.
valid() )
355 << result.
valid()<<std::endl;
363 vector<ossimImageHandlerFactoryBase*>::const_iterator factory =
m_factoryList.begin();
370 result = (*factory)->
open( state );
386 std::streamoff restartPosition,
387 bool youOwnIt )
const 390 vector<ossimImageHandlerFactoryBase*>::const_iterator factory =
m_factoryList.begin();
393 result = (*factory)->
open( str, restartPosition, youOwnIt );
394 if ( result.
valid() )
414 std::shared_ptr<ossim::ImageHandlerState> state =
getState(file, 0);
418 result =
open(state);
426 createIstream( file, std::ios_base::in|std::ios_base::binary);
430 std::vector<ossimImageHandlerFactoryBase*>::const_iterator factory =
m_factoryList.begin();
434 if ( result.
valid() )
446 vector<ossimImageHandlerFactoryBase*>::const_iterator factory =
m_factoryList.begin();
450 if ( result.
valid() )
466 << result.
valid() << std::endl;
479 vector<ossimImageHandlerFactoryBase*>::const_iterator factory =
m_factoryList.begin();
482 out <<
"factory: " << (*factory)->getClassName() <<
"\n";
485 std::vector<ossimString> readerList;
486 (*factory)->getTypeNameList(readerList);
488 std::vector<ossimString>::const_iterator i = readerList.begin();
489 while ( i != readerList.end() )
498 std::vector<ossimString> propNames;
500 if ( propNames.size() )
502 out <<
"\nproperties:\n";
504 std::vector<ossimString>::const_iterator p = propNames.begin();
505 while ( p != propNames.end() )
507 out <<
" " << (*p) <<
"\n";
517 out <<
" constraints:\n";
518 std::vector<ossimString>::const_iterator strPropIter =
522 out <<
" " << (*strPropIter) <<
"\n";
556 if(!enabledString.
empty())
558 if(enabledString.
toBool())
560 m_stateCache = std::make_shared<ossim::ItemCache<ossim::ImageHandlerState> >();
561 if(!maxSizeString.
empty())
565 if(!minSizeString.
empty())
571 minSize = ossim::round<ossim_uint32, ossim_float32>(maxSize*.8);
574 if(minSize < maxSize)
576 m_stateCache->setMinAndMaxItemsToCache(minSize, maxSize);
587 std::shared_ptr<ossim::ImageHandlerState> state = handler->
getState();
virtual bool open()=0
Pure virtual open.
virtual ossimRefPtr< ossimImageHandler > openOverview(const ossimFilename &file) const
Open overview that takes a file name.
virtual void getSupportedExtensions(ossimImageHandlerFactoryBase::UniqueStringList &extensionList) const
const ossimImageHandlerRegistry & operator=(const ossimImageHandlerRegistry &rhs)
virtual ossimImageHandler * open(const ossimFilename &fileName, bool trySuffixFirst=true, bool openOverview=true) const
open that takes a filename.
Represents serializable keyword/value map.
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
RTTI_DEF1(ossimImageHandlerRegistry, "ossimImageHandlerRegistry", ossimObjectFactory)
static ossimString toString(bool aValue)
Numeric to string methods.
ossimRefPtr< ossimImageHandler > openConnection(const ossimString &connectionString, bool openOverview=true) const
std::shared_ptr< ossim::ImageHandlerState > getState()
static ossimObjectFactoryRegistry * instance()
virtual ossimString getClassName() const
ossim_uint32 toUInt32() const
static StreamFactoryRegistry * instance()
void addToStateCache(ossimImageHandler *handler) const
const std::vector< ossimString > & getConstraints() const
virtual bool openOverview()
Searches for an overview.
FactoryListType m_factoryList
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
std::shared_ptr< ossim::ImageHandlerState > getState(const ossimString &connectionString, ossim_uint32 entry) const
void * ossimImageHandlerRegistryGetInstance()
ossimImageHandlerRegistry supports the new state cache.
const char * findPreference(const char *key) const
virtual const ossimFilename & getFilename() const
Returns the filename.
bool toBool() const
String to numeric methods.
unsigned int ossim_uint32
virtual ossimObject * createObject(const ossimString &typeName) const
std::shared_ptr< ossim::ItemCache< ossim::ImageHandlerState > > m_stateCache
static ossimString downcase(const ossimString &aString)
void initializeStateCache() const
virtual ~ossimImageHandlerRegistry()
void registerFactory(T *factory, bool pushToFrontFlag=false)
Will register a factory to the factory list.
virtual void getImageHandlersByMimeType(ossimImageHandlerFactoryBase::ImageHandlerList &result, const ossimString &mimeType) const
Will add to the result list and handler that supports the passed in mime type.
static ossimPreferences * instance()
virtual ossimRefPtr< ossimImageHandler > openBySuffix(const ossimFilename &file, bool openOverview=true) const
openBySuffix will call the mthod getImageHandlersBySuffix and go through each handler to try and open...
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
std::basic_istream< char > istream
Base class for char input streams.
static ossimImageHandlerFactory * instance()
This class defines an abstract Handler which all image handlers(loaders) should derive from...
void unregisterAllFactories()
Will remove all factories from the registry.
static ossimImageHandlerRegistry * instance()
std::ostream & printReaderProps(std::ostream &out) const
Prints list of readers and properties.
void getAllTypeNamesFromRegistry(std::vector< ossimString > &typeList) const
Will add all object types the factories can allocate.
std::vector< ossimRefPtr< ossimImageHandler > > ImageHandlerList
virtual void getImageHandlersBySuffix(ossimImageHandlerFactoryBase::ImageHandlerList &result, const ossimString &ext) const
Will add to the result list any handler that supports the passed in extensions.
ossimObject * createObjectFromRegistry(const ossimString &typeName) const
This is the base object return for all objects in the system.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::basic_ostream< char > ostream
Base class for char output streams.
const std::string & string() const
ossimImageHandlerRegistry()