An asset resolver context allows clients to provide additional data to the resolver for use during resolution. More...
Public Member Functions | |
ArResolverContext () | |
Construct an empty asset resolver context. More... | |
template<class Context , typename std::enable_if< ArIsContextObject< Context >::value >::type * = nullptr> | |
ArResolverContext (const Context &context) | |
Construct a resolver context using the context object context . More... | |
bool | IsEmpty () const |
Returns whether this context object is empty. More... | |
template<class Context > | |
const Context * | Get () const |
Return pointer to the context object held in this asset resolver context if the context is holding an object of the requested type, NULL otherwise. More... | |
std::string | GetDebugString () const |
Returns a debug string representing the contained context. More... | |
Operators | |
bool | operator== (const ArResolverContext &rhs) const |
bool | operator!= (const ArResolverContext &rhs) const |
bool | operator< (const ArResolverContext &rhs) const |
Friends | |
size_t | hash_value (const ArResolverContext &context) |
Returns hash value for this asset resolver context. More... | |
An asset resolver context allows clients to provide additional data to the resolver for use during resolution.
Clients may provide this data via a context object of their own (subject to restrictions below). An ArResolverContext is simply a wrapper around this object that allows it to be treated as a single type.
A client-defined context object must provide the following:
Note that the user may define a free function:
std::string ArGetDebugString(const Context& ctx); (Where Context is the type of the user's path resolver context.)
This is optional; a default generic implementation has been predefined. This function should return a string representation of the context to be utilized for debugging purposes(such as in TF_DEBUG statements).
The ArIsContextObject template must also be specialized for this object to declare that it can be used as a context object. This is to avoid accidental use of an unexpected object as a context object. The AR_DECLARE_RESOLVER_CONTEXT macro can be used to do this as a convenience.
Definition at line 92 of file resolverContext_v1.h.
|
inline |
Construct an empty asset resolver context.
Definition at line 96 of file resolverContext_v1.h.
|
inline |
Construct a resolver context using the context object context
.
See class documentation for requirements.
Definition at line 105 of file resolverContext_v1.h.
|
inline |
Return pointer to the context object held in this asset resolver context if the context is holding an object of the requested type, NULL otherwise.
Definition at line 120 of file resolverContext_v1.h.
|
inline |
Returns a debug string representing the contained context.
Definition at line 127 of file resolverContext_v1.h.
|
inline |
Returns whether this context object is empty.
Definition at line 111 of file resolverContext_v1.h.
|
friend |
Returns hash value for this asset resolver context.
Definition at line 169 of file resolverContext_v1.h.