osgDB::Registry Class Reference

Inheritance diagram for osgDB::Registry:

osg::Referenced List of all members.

Public Member Functions

void readCommandLine (osg::ArgumentParser &commandLine)
void addFileExtensionAlias (const std::string mapExt, const std::string toExt)
void addDotOsgWrapper (DotOsgWrapper *wrapper)
void removeDotOsgWrapper (DotOsgWrapper *wrapper)
void addReaderWriter (ReaderWriter *rw)
void removeReaderWriter (ReaderWriter *rw)
std::string createLibraryNameForFile (const std::string &fileName)
std::string createLibraryNameForExtension (const std::string &ext)
std::string createLibraryNameForNodeKit (const std::string &name)
bool loadLibrary (const std::string &fileName)
bool closeLibrary (const std::string &fileName)
void closeAllLibraries ()
ReaderWritergetReaderWriterForExtension (const std::string &ext)
osg::ObjectreadObjectOfType (const osg::Object &compObj, Input &fr)
osg::ObjectreadObjectOfType (const basic_type_wrapper &btw, Input &fr)
osg::ObjectreadObject (Input &fr)
osg::ImagereadImage (Input &fr)
osg::DrawablereadDrawable (Input &fr)
osg::UniformreadUniform (Input &fr)
osg::StateAttributereadStateAttribute (Input &fr)
osg::NodereadNode (Input &fr)
bool writeObject (const osg::Object &obj, Output &fw)
void setReadFileCallback (ReadFileCallback *cb)
ReadFileCallbackgetReadFileCallback ()
const ReadFileCallbackgetReadFileCallback () const
ReaderWriter::ReadResult openArchive (const std::string &fileName, ReaderWriter::ArchiveStatus status, unsigned int indexBlockSizeHint, const ReaderWriter::Options *options)
ReaderWriter::ReadResult openArchiveImplementation (const std::string &fileName, ReaderWriter::ArchiveStatus status, unsigned int indexBlockSizeHint, const ReaderWriter::Options *options)
ReaderWriter::ReadResult readObject (const std::string &fileName, const ReaderWriter::Options *options)
ReaderWriter::ReadResult readObjectImplementation (const std::string &fileName, const ReaderWriter::Options *options)
ReaderWriter::ReadResult readImage (const std::string &fileName, const ReaderWriter::Options *options)
ReaderWriter::ReadResult readImageImplementation (const std::string &fileName, const ReaderWriter::Options *options)
ReaderWriter::ReadResult readHeightField (const std::string &fileName, const ReaderWriter::Options *options)
ReaderWriter::ReadResult readHeightFieldImplementation (const std::string &fileName, const ReaderWriter::Options *options)
ReaderWriter::ReadResult readNode (const std::string &fileName, const ReaderWriter::Options *options)
ReaderWriter::ReadResult readNodeImplementation (const std::string &fileName, const ReaderWriter::Options *options)
void setWriteFileCallback (WriteFileCallback *cb)
WriteFileCallbackgetWriteFileCallback ()
const WriteFileCallbackgetWriteFileCallback () const
ReaderWriter::WriteResult writeObject (const osg::Object &obj, const std::string &fileName)
ReaderWriter::WriteResult writeObjectImplementation (const osg::Object &obj, const std::string &fileName)
ReaderWriter::WriteResult writeImage (const osg::Image &obj, const std::string &fileName)
ReaderWriter::WriteResult writeImageImplementation (const osg::Image &obj, const std::string &fileName)
ReaderWriter::WriteResult writeHeightField (const osg::HeightField &obj, const std::string &fileName)
ReaderWriter::WriteResult writeHeightFieldImplementation (const osg::HeightField &obj, const std::string &fileName)
ReaderWriter::WriteResult writeNode (const osg::Node &node, const std::string &fileName)
ReaderWriter::WriteResult writeNodeImplementation (const osg::Node &node, const std::string &fileName)
void setCreateNodeFromImage (bool flag)
bool getCreateNodeFromImage () const
void setOptions (ReaderWriter::Options *opt)
ReaderWriter::OptionsgetOptions ()
const ReaderWriter::OptionsgetOptions () const
void initFilePathLists ()
void initDataFilePathList ()
void setDataFilePathList (const FilePathList &filepath)
void setDataFilePathList (const std::string &paths)
FilePathListgetDataFilePathList ()
const FilePathListgetDataFilePathList () const
void initLibraryFilePathList ()
void setLibraryFilePathList (const FilePathList &filepath)
void setLibraryFilePathList (const std::string &paths)
FilePathListgetLibraryFilePathList ()
const FilePathListgetLibraryFilePathList () const
void updateTimeStampOfObjectsInCacheWithExtenalReferences (double currentTime)
void removeExpiredObjectsInCache (double expiryTime)
void clearObjectCache ()
void addEntryToObjectCache (const std::string &filename, osg::Object *object, double timestamp=0.0)
osg::ObjectgetFromObjectCache (const std::string &fileName)
void addToArchiveCache (const std::string &fileName, osgDB::Archive *archive)
void removeFromArchiveCache (const std::string &fileName)
osgDB::ArchivegetFromArchiveCache (const std::string &fileName)
void clearArchiveCache ()
void releaseGLObjects (osg::State *state=0)
DynamicLibrarygetLibrary (const std::string &fileName)
void setDatabasePager (DatabasePager *databasePager)
DatabasePagergetOrCreateDatabasePager ()
DatabasePagergetDatabasePager ()
void setSharedStateManager (SharedStateManager *SharedStateManager)
SharedStateManagergetOrCreateSharedStateManager ()
SharedStateManagergetSharedStateManager ()

Static Public Member Functions

static Registryinstance (bool erase=false)

Protected Types

typedef std::vector< osg::ref_ptr<
ReaderWriter > > 
ReaderWriterList
typedef std::map< std::string,
osg::ref_ptr< DotOsgWrapper > > 
DotOsgWrapperMap
typedef std::vector< osg::ref_ptr<
DynamicLibrary > > 
DynamicLibraryList
typedef std::map< std::string,
std::string > 
ExtensionAliasMap
typedef std::pair< osg::ref_ptr<
osg::Object >, double > 
ObjectTimeStampPair
typedef std::map< std::string,
ObjectTimeStampPair
ObjectCache
typedef std::map< std::string,
osg::ref_ptr< osgDB::Archive > > 
ArchiveCache

Protected Member Functions

virtual ~Registry ()
 Registry ()
DynamicLibraryList::iterator getLibraryItr (const std::string &fileName)
osg::ObjectreadObject (DotOsgWrapperMap &dowMap, Input &fr)
void eraseWrapper (DotOsgWrapperMap &wrappermap, DotOsgWrapper *wrapper)
ReaderWriter::ReadResult read (const ReadFunctor &readFunctor)
ReaderWriter::ReadResult readImplementation (const ReadFunctor &readFunctor, bool useObjectCache)

Protected Attributes

bool _createNodeFromImage
osg::ref_ptr< ReadFileCallback_readFileCallback
osg::ref_ptr< WriteFileCallback_writeFileCallback
DotOsgWrapperMap _objectWrapperMap
DotOsgWrapperMap _imageWrapperMap
DotOsgWrapperMap _drawableWrapperMap
DotOsgWrapperMap _stateAttrWrapperMap
DotOsgWrapperMap _uniformWrapperMap
DotOsgWrapperMap _nodeWrapperMap
DotOsgWrapperMap _classNameWrapperMap
ReaderWriterList _rwList
DynamicLibraryList _dlList
bool _openingLibrary
ExtensionAliasMap _extAliasMap
osg::ref_ptr< ReaderWriter::Options_options
FilePathList _dataFilePath
FilePathList _libraryFilePath
ObjectCache _objectCache
OpenThreads::Mutex _objectCacheMutex
ArchiveCache _archiveCache
OpenThreads::Mutex _archiveCacheMutex
osg::ref_ptr< DatabasePager_databasePager
osg::ref_ptr< SharedStateManager_sharedStateManager

Friends

struct ReadFunctor
struct ReadObjectFunctor
struct ReadImageFunctor
struct ReadHeightFieldFunctor
struct ReadNodeFunctor
struct ReadArchiveFunctor
class AvailableReaderWriterIterator

Classes

class  ReadFileCallback
struct  ReadFunctor
class  WriteFileCallback

Detailed Description

Registry is a singleton factory which stores the reader/writers which are linked in at runtime for reading non-native file formats.

The RegisterDotOsgWrapperProxy can be used to automatically register DotOsgWrappers, at runtime with the Registry. A DotOsgWrapper encapsulates the functions that can read and write to the .osg for each osg::Object.

The RegisterReaderWriterProxy can be used to automatically register at runtime a reader/writer with the Registry.


Member Typedef Documentation

typedef std::map<std::string, osg::ref_ptr<osgDB::Archive> > osgDB::Registry::ArchiveCache [protected]

typedef std::map< std::string, osg::ref_ptr<DotOsgWrapper> > osgDB::Registry::DotOsgWrapperMap [protected]

typedef std::vector< osg::ref_ptr<DynamicLibrary> > osgDB::Registry::DynamicLibraryList [protected]

typedef std::map< std::string, std::string> osgDB::Registry::ExtensionAliasMap [protected]

typedef std::map<std::string, ObjectTimeStampPair > osgDB::Registry::ObjectCache [protected]

typedef std::pair<osg::ref_ptr<osg::Object>, double > osgDB::Registry::ObjectTimeStampPair [protected]

typedef std::vector< osg::ref_ptr<ReaderWriter> > osgDB::Registry::ReaderWriterList [protected]


Constructor & Destructor Documentation

virtual osgDB::Registry::~Registry (  )  [protected, virtual]

osgDB::Registry::Registry (  )  [protected]

constructor is private, as its a singleton, preventing construction other than via the instance() method and therefore ensuring only one copy is ever constructed


Member Function Documentation

void osgDB::Registry::addDotOsgWrapper ( DotOsgWrapper wrapper  ) 

void osgDB::Registry::addEntryToObjectCache ( const std::string &  filename,
osg::Object object,
double  timestamp = 0.0 
)

Add a filename,object,timestamp tripple to the Registry::ObjectCache.

void osgDB::Registry::addFileExtensionAlias ( const std::string  mapExt,
const std::string  toExt 
)

register an .fileextension alias to mapExt toExt, the later should the the extension name of the readerwriter plugin library. For example to map .tif files to the tiff loader, use addExtAlias("tif","tiff") which will enable .tif to be read by the libdb_tiff readerwriter plugin.

void osgDB::Registry::addReaderWriter ( ReaderWriter rw  ) 

void osgDB::Registry::addToArchiveCache ( const std::string &  fileName,
osgDB::Archive archive 
)

Add archive to archive cache so that future calls reference this archive.

void osgDB::Registry::clearArchiveCache (  ) 

Remove all archives from the archive cache.

void osgDB::Registry::clearObjectCache (  ) 

Remove all objects in the cache regardless of having external references or expiry times.

void osgDB::Registry::closeAllLibraries (  ) 

close all libraries.

bool osgDB::Registry::closeLibrary ( const std::string &  fileName  ) 

close the attached library with specified name.

std::string osgDB::Registry::createLibraryNameForExtension ( const std::string &  ext  ) 

create the platform specific library name associated with file extension.

std::string osgDB::Registry::createLibraryNameForFile ( const std::string &  fileName  ) 

create the platform specific library name associated with file.

std::string osgDB::Registry::createLibraryNameForNodeKit ( const std::string &  name  ) 

create the platform specific library name associated with nodekit library name.

void osgDB::Registry::eraseWrapper ( DotOsgWrapperMap wrappermap,
DotOsgWrapper wrapper 
) [protected]

bool osgDB::Registry::getCreateNodeFromImage (  )  const [inline]

DatabasePager* osgDB::Registry::getDatabasePager (  )  [inline]

Get the DatabasePager. Return 0 if no DatabasePager has been assigned.

const FilePathList& osgDB::Registry::getDataFilePathList (  )  const [inline]

get the const data file path which is used when search for data files.

FilePathList& osgDB::Registry::getDataFilePathList (  )  [inline]

get the data file path which is used when search for data files.

osgDB::Archive* osgDB::Registry::getFromArchiveCache ( const std::string &  fileName  ) 

Get an archive from the archive cache

osg::Object* osgDB::Registry::getFromObjectCache ( const std::string &  fileName  ) 

Get an object from the object cache

DynamicLibrary* osgDB::Registry::getLibrary ( const std::string &  fileName  ) 

get the attached library with specified name.

const FilePathList& osgDB::Registry::getLibraryFilePathList (  )  const [inline]

get the const library file path which is used when search for library (dso/dll's) files.

FilePathList& osgDB::Registry::getLibraryFilePathList (  )  [inline]

get the library file path which is used when search for library (dso/dll's) files.

DynamicLibraryList::iterator osgDB::Registry::getLibraryItr ( const std::string &  fileName  )  [protected]

get the attached library with specified name.

const ReaderWriter::Options* osgDB::Registry::getOptions (  )  const [inline]

ReaderWriter::Options* osgDB::Registry::getOptions (  )  [inline]

DatabasePager* osgDB::Registry::getOrCreateDatabasePager (  ) 

Get the DatabasePager, creating one if one is not already created.

SharedStateManager* osgDB::Registry::getOrCreateSharedStateManager (  ) 

Get the SharedStateManager, creating one if one is not already created.

ReaderWriter* osgDB::Registry::getReaderWriterForExtension ( const std::string &  ext  ) 

get a reader writer which handles specified extension.

const ReadFileCallback* osgDB::Registry::getReadFileCallback (  )  const [inline]

Get the const readFile callback.

ReadFileCallback* osgDB::Registry::getReadFileCallback (  )  [inline]

Get the readFile callback.

SharedStateManager* osgDB::Registry::getSharedStateManager (  )  [inline]

Get the SharedStateManager. Return 0 if no SharedStateManager has been assigned.

const WriteFileCallback* osgDB::Registry::getWriteFileCallback (  )  const [inline]

Get the const writeFile callback.

WriteFileCallback* osgDB::Registry::getWriteFileCallback (  )  [inline]

Get the writeFile callback.

void osgDB::Registry::initDataFilePathList (  ) 

initilize the Data FilePath by reading the OSG_FILE_PATH environmental variable.

void osgDB::Registry::initFilePathLists (  )  [inline]

initilize both the Data and Library FilePaths, by default called by the constructor, so it should only be required if you want to force the re-reading of environmental variables.

void osgDB::Registry::initLibraryFilePathList (  ) 

initilize the Library FilePath by reading the OSG_LIBRARY_PATH and the appropriate system environmental variables

static Registry* osgDB::Registry::instance ( bool  erase = false  )  [static]

bool osgDB::Registry::loadLibrary ( const std::string &  fileName  ) 

find the library in the SG_LIBRARY_PATH and load it.

ReaderWriter::ReadResult osgDB::Registry::openArchive ( const std::string &  fileName,
ReaderWriter::ArchiveStatus  status,
unsigned int  indexBlockSizeHint,
const ReaderWriter::Options options 
) [inline]

ReaderWriter::ReadResult osgDB::Registry::openArchiveImplementation ( const std::string &  fileName,
ReaderWriter::ArchiveStatus  status,
unsigned int  indexBlockSizeHint,
const ReaderWriter::Options options 
)

ReaderWriter::ReadResult osgDB::Registry::read ( const ReadFunctor readFunctor  )  [protected]

void osgDB::Registry::readCommandLine ( osg::ArgumentParser commandLine  ) 

read the command line arguments.

osg::Drawable* osgDB::Registry::readDrawable ( Input fr  ) 

ReaderWriter::ReadResult osgDB::Registry::readHeightField ( const std::string &  fileName,
const ReaderWriter::Options options 
) [inline]

ReaderWriter::ReadResult osgDB::Registry::readHeightFieldImplementation ( const std::string &  fileName,
const ReaderWriter::Options options 
)

ReaderWriter::ReadResult osgDB::Registry::readImage ( const std::string &  fileName,
const ReaderWriter::Options options 
) [inline]

osg::Image* osgDB::Registry::readImage ( Input fr  ) 

ReaderWriter::ReadResult osgDB::Registry::readImageImplementation ( const std::string &  fileName,
const ReaderWriter::Options options 
)

ReaderWriter::ReadResult osgDB::Registry::readImplementation ( const ReadFunctor readFunctor,
bool  useObjectCache 
) [protected]

ReaderWriter::ReadResult osgDB::Registry::readNode ( const std::string &  fileName,
const ReaderWriter::Options options 
) [inline]

osg::Node* osgDB::Registry::readNode ( Input fr  ) 

ReaderWriter::ReadResult osgDB::Registry::readNodeImplementation ( const std::string &  fileName,
const ReaderWriter::Options options 
)

osg::Object* osgDB::Registry::readObject ( DotOsgWrapperMap dowMap,
Input fr 
) [protected]

ReaderWriter::ReadResult osgDB::Registry::readObject ( const std::string &  fileName,
const ReaderWriter::Options options 
) [inline]

osg::Object* osgDB::Registry::readObject ( Input fr  ) 

ReaderWriter::ReadResult osgDB::Registry::readObjectImplementation ( const std::string &  fileName,
const ReaderWriter::Options options 
)

osg::Object* osgDB::Registry::readObjectOfType ( const basic_type_wrapper btw,
Input fr 
)

osg::Object* osgDB::Registry::readObjectOfType ( const osg::Object compObj,
Input fr 
)

osg::StateAttribute* osgDB::Registry::readStateAttribute ( Input fr  ) 

osg::Uniform* osgDB::Registry::readUniform ( Input fr  ) 

void osgDB::Registry::releaseGLObjects ( osg::State state = 0  ) 

If State is non-zero, this function releases OpenGL objects for the specified graphics context. Otherwise, releases OpenGL objexts for all graphics contexts.

void osgDB::Registry::removeDotOsgWrapper ( DotOsgWrapper wrapper  ) 

void osgDB::Registry::removeExpiredObjectsInCache ( double  expiryTime  ) 

Removed object in the cache which have a time stamp at or before the specified expiry time. This would typically be called once per frame by applications which are doing database paging, and need to prune objects that are no longer required, and called after the a called after the call to updateTimeStampOfObjectsInCacheWithExtenalReferences(currentTime). Note, the currentTime is not the expiryTime, one would typically set the expiry time to a fixed amount of time before currentTime, such as expiryTime = currentTime-10.0. Time value is time in sceonds.

void osgDB::Registry::removeFromArchiveCache ( const std::string &  fileName  ) 

Remove archive from cache.

void osgDB::Registry::removeReaderWriter ( ReaderWriter rw  ) 

void osgDB::Registry::setCreateNodeFromImage ( bool  flag  )  [inline]

void osgDB::Registry::setDatabasePager ( DatabasePager databasePager  )  [inline]

Set the DatabasePager.

void osgDB::Registry::setDataFilePathList ( const std::string &  paths  ) 

Set the data file path using a single string deliminated either with ';' (Windows) or ':' (All other platforms), which is used when search for data files.

void osgDB::Registry::setDataFilePathList ( const FilePathList filepath  )  [inline]

Set the data file path using a list of paths stored in a FilePath, which is used when search for data files.

void osgDB::Registry::setLibraryFilePathList ( const std::string &  paths  ) 

Set the library file path using a single string deliminated either with ';' (Windows) or ':' (All other platforms), which is used when search for data files.

void osgDB::Registry::setLibraryFilePathList ( const FilePathList filepath  )  [inline]

Set the library file path using a list of paths stored in a FilePath, which is used when search for data files.

void osgDB::Registry::setOptions ( ReaderWriter::Options opt  )  [inline]

void osgDB::Registry::setReadFileCallback ( ReadFileCallback cb  )  [inline]

Set the Registry callback to use in place of the default readFile calls.

void osgDB::Registry::setSharedStateManager ( SharedStateManager SharedStateManager  )  [inline]

Set the SharedStateManager.

void osgDB::Registry::setWriteFileCallback ( WriteFileCallback cb  )  [inline]

Set the Registry callback to use in place of the default writeFile calls.

void osgDB::Registry::updateTimeStampOfObjectsInCacheWithExtenalReferences ( double  currentTime  ) 

For each object in the cache which has an reference count greater than 1 (and therefore referenced by elsewhere in the application) set the time stamp for that object in the cache to specified time. This would typically be called once per frame by applications which are doing database paging, and need to prune objects that are no longer required. Time value is time in sceonds.

ReaderWriter::WriteResult osgDB::Registry::writeHeightField ( const osg::HeightField obj,
const std::string &  fileName 
) [inline]

ReaderWriter::WriteResult osgDB::Registry::writeHeightFieldImplementation ( const osg::HeightField obj,
const std::string &  fileName 
)

ReaderWriter::WriteResult osgDB::Registry::writeImage ( const osg::Image obj,
const std::string &  fileName 
) [inline]

ReaderWriter::WriteResult osgDB::Registry::writeImageImplementation ( const osg::Image obj,
const std::string &  fileName 
)

ReaderWriter::WriteResult osgDB::Registry::writeNode ( const osg::Node node,
const std::string &  fileName 
) [inline]

ReaderWriter::WriteResult osgDB::Registry::writeNodeImplementation ( const osg::Node node,
const std::string &  fileName 
)

ReaderWriter::WriteResult osgDB::Registry::writeObject ( const osg::Object obj,
const std::string &  fileName 
) [inline]

bool osgDB::Registry::writeObject ( const osg::Object obj,
Output fw 
)

ReaderWriter::WriteResult osgDB::Registry::writeObjectImplementation ( const osg::Object obj,
const std::string &  fileName 
)


Friends And Related Function Documentation

friend class AvailableReaderWriterIterator [friend]

friend struct ReadArchiveFunctor [friend]

friend struct ReadFunctor [friend]

friend struct ReadHeightFieldFunctor [friend]

friend struct ReadImageFunctor [friend]

friend struct ReadNodeFunctor [friend]

friend struct ReadObjectFunctor [friend]


Member Data Documentation

ArchiveCache osgDB::Registry::_archiveCache [protected]

OpenThreads::Mutex osgDB::Registry::_archiveCacheMutex [protected]

DotOsgWrapperMap osgDB::Registry::_classNameWrapperMap [protected]

bool osgDB::Registry::_createNodeFromImage [protected]

osg::ref_ptr<DatabasePager> osgDB::Registry::_databasePager [protected]

FilePathList osgDB::Registry::_dataFilePath [protected]

DynamicLibraryList osgDB::Registry::_dlList [protected]

DotOsgWrapperMap osgDB::Registry::_drawableWrapperMap [protected]

ExtensionAliasMap osgDB::Registry::_extAliasMap [protected]

DotOsgWrapperMap osgDB::Registry::_imageWrapperMap [protected]

FilePathList osgDB::Registry::_libraryFilePath [protected]

DotOsgWrapperMap osgDB::Registry::_nodeWrapperMap [protected]

ObjectCache osgDB::Registry::_objectCache [protected]

OpenThreads::Mutex osgDB::Registry::_objectCacheMutex [protected]

DotOsgWrapperMap osgDB::Registry::_objectWrapperMap [protected]

bool osgDB::Registry::_openingLibrary [protected]

osg::ref_ptr<ReaderWriter::Options> osgDB::Registry::_options [protected]

osg::ref_ptr<ReadFileCallback> osgDB::Registry::_readFileCallback [protected]

ReaderWriterList osgDB::Registry::_rwList [protected]

osg::ref_ptr<SharedStateManager> osgDB::Registry::_sharedStateManager [protected]

DotOsgWrapperMap osgDB::Registry::_stateAttrWrapperMap [protected]

DotOsgWrapperMap osgDB::Registry::_uniformWrapperMap [protected]

osg::ref_ptr<WriteFileCallback> osgDB::Registry::_writeFileCallback [protected]


The documentation for this class was generated from the following file:
Generated on Sun Oct 1 13:17:09 2006 for openscenegraph by  doxygen 1.4.7