// Copyright (c) Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Threading/Task.h"
class Asset;
class LoadingThread;
///
/// Describes content loading task object.
///
class ContentLoadTask : public Task
{
friend LoadingThread;
public:
///
/// Describes work result value
///
DECLARE_ENUM_5(Result, Ok, AssetLoadError, MissingReferences, LoadDataError, TaskFailed);
protected:
virtual Result run() = 0;
public:
// [Task]
String ToString() const override;
protected:
// [Task]
void Enqueue() override;
bool Run() override;
};