From Stephan Huber,

"Attached you'll find a proposal for using different
protocols. The idea behind the new code is:

1.) plugins/apps register protocols which they can handle. This is done
via osgDB::Registry::registerProtocol(aProtocolName). Plugins register
supported protocols as usual via ReaderWriter::supportsProtocol(..), the
Registry is updated accordingly.

2.) osgDB::containsServerAddress checks first for an appearance of "://"
in the filename and then checks the protocol against the set of
registered protocols via Registry::isProtocolRegistered(aProtocollName)

3.) the other getServer*-functions changed as well, there's even a
getServerProtocol-function


With these changes filenames/Urls get routed to loaded plugins even with
different protocols than 'http'."
This commit is contained in:
Robert Osfield
2009-03-10 12:21:13 +00:00
parent 199067d150
commit b5a15fb5b4
5 changed files with 56 additions and 11 deletions

View File

@@ -47,6 +47,7 @@ bool ReaderWriter::acceptsExtension(const std::string& extension) const
void ReaderWriter::supportsProtocol(const std::string& fmt, const std::string& description)
{
Registry::instance()->registerProtocol(fmt);
_supportedProtocols[convertToLowerCase(fmt)] = description;
}