diff --git a/src/ResourceManager.h b/src/ResourceManager.h index 4787ce947..9527dd83c 100644 --- a/src/ResourceManager.h +++ b/src/ResourceManager.h @@ -412,6 +412,7 @@ template class ResourceManager: private Implementation::Resource /** * @brief Set resource data + * @return Pointer to self (for method chaining) * * If @p policy is set to `ResourcePolicy::ReferenceCounted`, there * must be already at least one reference to given resource, otherwise @@ -428,18 +429,21 @@ template class ResourceManager: private Implementation::Resource * subsequent updates are not possible. * @see referenceCount(), state() */ - template inline void set(ResourceKey key, T* data, ResourceDataState state, ResourcePolicy policy) { + template inline ResourceManager* set(ResourceKey key, T* data, ResourceDataState state, ResourcePolicy policy) { this->Implementation::ResourceManagerData::set(key, data, state, policy); + return this; } /** * @brief Set resource data + * @return Pointer to self (for method chaining) * * Same as above function with state set to @ref ResourceDataState "ResourceDataState::Final" * and policy to @ref ResourcePolicy "ResourcePolicy::Resident". */ - template inline void set(ResourceKey key, T* data) { + template inline ResourceManager* set(ResourceKey key, T* data) { this->Implementation::ResourceManagerData::set(key, data, ResourceDataState::Final, ResourcePolicy::Resident); + return this; } /** @brief Fallback for not found resources */ @@ -452,19 +456,31 @@ template class ResourceManager: private Implementation::Resource return this->Implementation::ResourceManagerData::fallback(); } - /** @brief Set fallback for not found resources */ - template inline void setFallback(T* data) { - return this->Implementation::ResourceManagerData::setFallback(data); + /** + * @brief Set fallback for not found resources + * @return Pointer to self (for method chaining) + */ + template inline ResourceManager* setFallback(T* data) { + this->Implementation::ResourceManagerData::setFallback(data); + return this; } - /** @brief Free all resources of given type which are not referenced */ - template inline void free() { - return this->Implementation::ResourceManagerData::free(); + /** + * @brief Free all resources of given type which are not referenced + * @return Pointer to self (for method chaining) + */ + template inline ResourceManager* free() { + this->Implementation::ResourceManagerData::free(); + return this; } - /** @brief Free all resources which are not referenced */ - inline void free() { + /** + * @brief Free all resources which are not referenced + * @return Pointer to self (for method chaining) + */ + inline ResourceManager* free() { freeInternal(std::common_type()...); + return this; } /** @brief Loader for given type of resources */ @@ -479,11 +495,13 @@ template class ResourceManager: private Implementation::Resource /** * @brief Set loader for given type of resources + * @return Pointer to self (for method chaining) * * See AbstractResourceLoader documentation for more information. */ - template inline void setLoader(AbstractResourceLoader* loader) { - return this->Implementation::ResourceManagerData::setLoader(loader); + template inline ResourceManager* setLoader(AbstractResourceLoader* loader) { + this->Implementation::ResourceManagerData::setLoader(loader); + return this; } private: