Nebula
Loading...
Searching...
No Matches
IO::SchemeRegistry Class Reference

#include <schemeregistry.h>

Detailed Description

Central registry for URI schemes, associates an URI scheme (e.g.

http, file, ...) with a Nebula stream class.

Inherits Core::RefCounted.

Public Member Functions

 SchemeRegistry ()
 constructor
 
virtual ~SchemeRegistry ()
 destructor
 
void Setup ()
 setup the scheme registry (may only be called at app startup by the main thread)
 
void Discard ()
 discard the scheme registry
 
bool IsValid () const
 return true if the scheme registry is valid
 
void RegisterUriScheme (const Util::String &uriScheme, const Core::Rtti &classRtti)
 associate an uri scheme with a stream class
 
void UnregisterUriScheme (const Util::String &uriScheme)
 unregister an uri scheme
 
bool IsUriSchemeRegistered (const Util::String &uriScheme) const
 return true if an uri scheme has been registered
 
const Core::RttiGetStreamClassByUriScheme (const Util::String &uriScheme) const
 get the registered stream class for an uri scheme
 
Util::Array< Util::StringGetAllRegisteredUriSchemes () const
 get an array of all registered schemes
 
- Public Member Functions inherited from Core::RefCounted
 RefCounted ()
 constructor
 
int GetRefCount () const
 get the current refcount
 
void AddRef ()
 increment refcount by one
 
void Release ()
 decrement refcount and destroy object if refcount is zero
 
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
 
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
 
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
 
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
 
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
 
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
 
const Util::StringGetClassName () const
 get the class name
 
Util::FourCC GetClassFourCC () const
 get the class FourCC code
 

Private Member Functions

 __DeclareClass (SchemeRegistry)
 
 __DeclareInterfaceSingleton (SchemeRegistry)
 
void SetupStandardSchemes ()
 register standard URI schemes, called by the Setup method
 

Private Attributes

Threading::CriticalSection critSect
 
Util::Dictionary< Util::String, const Core::Rtti * > schemeRegistry
 
bool isValid
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::RefCounted
static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
 
- Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)
 

Constructor & Destructor Documentation

◆ SchemeRegistry()

IO::SchemeRegistry::SchemeRegistry ( )

constructor

◆ ~SchemeRegistry()

IO::SchemeRegistry::~SchemeRegistry ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

IO::SchemeRegistry::__DeclareClass ( SchemeRegistry )
private

◆ __DeclareInterfaceSingleton()

IO::SchemeRegistry::__DeclareInterfaceSingleton ( SchemeRegistry )
private

◆ Discard()

void IO::SchemeRegistry::Discard ( )

discard the scheme registry

◆ GetAllRegisteredUriSchemes()

Array< String > IO::SchemeRegistry::GetAllRegisteredUriSchemes ( ) const

get an array of all registered schemes

◆ GetStreamClassByUriScheme()

const Core::Rtti & IO::SchemeRegistry::GetStreamClassByUriScheme ( const Util::String & uriScheme) const

get the registered stream class for an uri scheme

◆ IsUriSchemeRegistered()

bool IO::SchemeRegistry::IsUriSchemeRegistered ( const Util::String & uriScheme) const

return true if an uri scheme has been registered

◆ IsValid()

bool IO::SchemeRegistry::IsValid ( ) const

return true if the scheme registry is valid

◆ RegisterUriScheme()

void IO::SchemeRegistry::RegisterUriScheme ( const Util::String & uriScheme,
const Core::Rtti & classRtti )

associate an uri scheme with a stream class

Associates an URI scheme with a stream class.

If the same URI scheme is already registered, the old association will be overwritten.

◆ Setup()

void IO::SchemeRegistry::Setup ( )

setup the scheme registry (may only be called at app startup by the main thread)

◆ SetupStandardSchemes()

void IO::SchemeRegistry::SetupStandardSchemes ( )
private

register standard URI schemes, called by the Setup method

Registers the standard URI schemes.

NOTE: private method, thus no critical section protection is necessary!

◆ UnregisterUriScheme()

void IO::SchemeRegistry::UnregisterUriScheme ( const Util::String & uriScheme)

unregister an uri scheme

Member Data Documentation

◆ critSect

Threading::CriticalSection IO::SchemeRegistry::critSect
private

◆ isValid

bool IO::SchemeRegistry::isValid
private

◆ schemeRegistry

Util::Dictionary<Util::String, const Core::Rtti*> IO::SchemeRegistry::schemeRegistry
private

The documentation for this class was generated from the following files: