// Copyright (c) 2020-2026 AccelByte Inc. All Rights Reserved.
// This is licensed software from AccelByte Inc, for limitations
// and restrictions contact your company contract manager.

#pragma once
#include <cstdint>
namespace blackbox {
namespace error {
enum class code : uint32_t {
    NO_ERROR_ = 0,
    UNABLE_TO_GET_STAGING_TEXTURE,
    UNABLE_TO_INITIATE_SHARED_MEMORY,
    MISSING_SHARED_MEMORY_MANAGER,
    MISSING_CRASH_VIDEO_RECORDER,
    MISSING_SESSION_MANAGER,
    MISSING_PROFILING_MANAGER,
    MISSING_LOGGING_MANAGER,
    MISSING_HTTP_WORKER_THREAD,
    MISSING_CALLBACK_QUEUE_THREAD,
    MISSING_DYNAMIC_PROFILER_BACKEND,
    MISSING_HTTP_TASK_POOL,
    INSUFFICIENT_BUFFER,
    NO_CALLBACK_TO_CALL,
    INVALID_URL_PATH_PARAMETER_GIVEN,
    FAILED_TO_INITIALIZE_HTTP_BACKEND,
    FAILED_TO_SET_HTTP_PROXY,
    FAILED_TO_CREATE_SESSION_MANAGER,
    FAILED_TO_CREATE_SHARED_MEMORY_MANAGER,
    FAILED_TO_CREATE_VIDEO_RECORDER_MANAGER,
    FAILED_TO_CREATE_PROFILING_MANAGER,
    FAILED_TO_CREATE_HELPER_PROCESS,
    FAILED_TO_CREATE_LOG_STREAMER,
    FAILED_TO_CHECK_HELPER_PROCESS,
    MISSING_HELPER_HANDLE,
    FAILED_TO_DELETE_CRASH_FOLDER,
    FAILED_TO_INITIALIZE_DYNAMIC_PROFILER,
    FAILED_TO_CREATE_FILE,
    DYNAMIC_PROFILER_UNAVAILABLE,
    EMPTY_TASK_PASSED_TO_THREAD_POOL,
    ADDITIONAL_INFO_FIELD_NOT_FOUND,
    HTTP_REQUEST_COMPLETED,
    HTTP_REQUEST_INCOMPLETE,
    HTTP_REQUEST_FAILED,
    HTTP_REQUEST_TASK_ID_NOT_FOUND,
    CANNOT_SEND_INITIAL_REQUEST_MULTIPLE_TIMES,
    DATA_COMPRESSION_FAILURE,
    COMPRESSOR_FUNCTION_UNINITIALIZED,
    CHECKSUM_FAILURE,
    FAILED_TO_START_PROFILER_MODULE,
    FAILED_TO_SUSPEND_PROFILER_MODULE,
    NULLPTR_ARGUMENT,
    FAILED_TO_COPY_LOG_FILE,
    FAILED_TO_FIND_CRASH_LOG_FILE,
    NO_FILE_TO_COMPRESS,
    FAILED_TO_CREATE_HARDWARE_INFO,
    FAILED_TO_OPEN_HARDWARE_INFO_FILE,
    FAILED_TO_WRITE_HARDWARE_INFO_TO_FILE,
    HARDWARE_INFO_NOT_LOADED,
    DX12_HRESULT_FAILED,
    DEFAULT_CONFIG_FILE_NOT_FOUND,
    INVALID_HELPER_COMMAND,
    FAILED_TO_CREATE_ISSUE_REPORTER_PROCESS,
    INVALID_ISSUE_REPORTER_PATH,
    NOT_SUPPORTED_BY_PLATFORM,
    SDK_DISABLED_SKIP_SESSION_INIT,
    FAILED_TO_CREATE_LOCAL_CONFIG_DIR,
    FAILED_TO_GET_LOCAL_CONFIG_PATH,
    CREATE_MATCH_DATA_MISSING,
    START_SESSION_MATCH_DATA_MISSING,
    END_SESSION_MATCH_DATA_MISSING,
    NOT_A_SERVER_ENTITY,
    FAILED_TO_TAKE_SCREENSHOT,
    ISSUE_REPORTER_NOT_AVAILABLE,
    MULTIPLE_CALL_TO_START_LOG_STREAMER,
    INCOMPLETE_INFORMATION_TO_SEND_LOG_STREAM_DATA,
    NO_PLAYTEST_IS_CURRENTLY_ACTIVE,
    UNABLE_TO_SET_CONFIG_ITEM_VALUE,
    FAILED_TO_CONVERT_PATH,
    INVALID_INPUT,
    BUFFER_TOO_SMALL,
    MISSING_SESSION_ID,
    FAILED_TO_CREATE_DIRECTORY,
    FAILED_TO_SET_HITCHING_VIDEO_LOCATION,
    HITCHING_DETECTION_NOT_AVAILABLE,
    PLATFORM_INITIALIZE_FAILED,
    FAILED_TO_GENERATE_DEVICE_ID,
    FAILED_TO_INITIALIZE_DEVICE_ID_MANAGER,
    FAILED_TO_SAVE_DEVICE_ID_FILE,
    FAILED_TO_HASH_DEVICE_ID,
    // Must always at the end of the enum value list
    ENUM_LENGTH_
};
} // namespace error
} // namespace blackbox
