#include "fsCAnimationProviderRegistry.h"
#include <utility>
void fsCAnimationProviderRegistry::providerRegister(fsSAnimationProvider pProvider)
{
for (auto& provider : mProviders)
{
if (provider.mName == pProvider.mName)
{<--- Consider using std::find_if algorithm instead of a raw loop.
provider = std::move(pProvider);
return;
}
}
mProviders.push_back(std::move(pProvider));
}
const fsCAnimationProviderRegistry::fsSAnimationProvider*
fsCAnimationProviderRegistry::providerForFileGet(const fsStr& pFileName) const
{
for (const auto& provider : mProviders)
{
if (provider.mFileType && provider.mFileType(pFileName))
{<--- Consider using std::find_if algorithm instead of a raw loop.
return &provider;
}
}
return nullptr;
}
const fsCAnimationProviderRegistry::fsSAnimationProvider*
fsCAnimationProviderRegistry::providerForDataGet(const std::shared_ptr<fsIAnimationData>& pData) const
{
for (const auto& provider : mProviders)
{
if (provider.mDataType && provider.mDataType(pData))
{<--- Consider using std::find_if algorithm instead of a raw loop.
return &provider;
}
}
return nullptr;
}