/**
\brief Possible Error codes for bios API.
* This is the list of errors that can be returned from bios API.
* Errors after UNKNOWN are extended errors that are not present in the native API.
*/
enum EBiosError
{
//! 0 - No error. Can be returned from any call.
OK,
//! 1 - The operation was cancelled. See individual calls for details.
CANCEL
//! 2 - Atleast one of the input parameters is incorrect
BAD_PARAMETER,
//! 3 - The call could not find some data. See individual calls for details.
NOT_FOUND,
//! 4 - The call is not supported for the current platform. Can be returned from any call.
NOT_IMPLEMENTED,
//! 5 - [XB] The action cannot be performed because the user does not own the content.
PURCHASE_REQUIRED,
//! 6 - The action is not allowed. (restricted, not enough permission)
NOT_ALLOWED,
//! 7 - [XB] The user is banned from some action.
BANNED,
//! 8 - API usage error. For example, usage of objects whos native lifetime ended. Can be returned from any call.
LOGICAL,
//! 9 - Response was of unexpected format
WRONG_RESPONSE_DATA,
//! 10 - Server is no longer registered
SERVER_HEARTBEAT_SERVER_NOT_FOUND,
//! 11 - Server was already registered
SERVER_REGISTER_ALREADY_EXISTS,
//! 12 - Failed to open the request
REQUEST_CREATE_FAIL_XHR,
//! 13 - Failed to send the data
REQUEST_SEND_FAIL,
//! 14 - Failed to wait for the operation to end - only in a synchronous call
REQUEST_WAIT_FAIL,
//! 15 - Response was expected to be in JSON format, but it was not
NON_JSON_RESPONSE,
// RESERVED SPACE OF REDUNDANT ERRORS
//! 21 - [PS] Mandatory update exist and is required.
UPDATE_REQUIRED,
//! 22 - [PS] Mandatory update exist and is ready to install.
UPDATE_REQUIRED_AND_DOWNLOADED,
//! 23 - Resource is unreachable or unavailable, can be 404 or no internet connection (etc.) - general communication error.
COMUNICATION_ERROR,
//! 24 - Any other error. Can be returned from any call.
UNKNOWN,
//! 25 - Extended error. Script not properly linked with engine. May be removed in future.
BAD_SCRIPT,
//! 26 - Connection has timed out.
COMMUNICATION_TIMED_OUT,
//! 27 - Connection was reset.
COMMUNICATION_RESET,
//! 28 - Connection was aborted.
COMMUNICATION_ABORTED
};
class BIOSErrorModule : ErrorHandlerModuleScript
{
void BIOSErrorModule()
{
SetCategory(ErrorCategory.BIOSError);
}
override void InitOptionalVariables()
{
super.InitOptionalVariables();
m_Header = "#STR_BIOS_BIOSError";
}
override void FillErrorDataMap()
{
super.FillErrorDataMap();
InsertErrorProperties(EBiosError.OK); // Not an error, so no message
InsertBIOSError(EBiosError.CANCEL , "#STR_BIOS_OperationCancelled");
InsertBIOSError(EBiosError.BAD_PARAMETER , "#STR_BIOS_BadParameter");
InsertBIOSError(EBiosError.NOT_FOUND , "#STR_BIOS_NotFound");
InsertBIOSError(EBiosError.NOT_IMPLEMENTED , "#STR_BIOS_NotImplemented");
InsertBIOSError(EBiosError.PURCHASE_REQUIRED , "#STR_BIOS_PurchaseRequired");
InsertBIOSError(EBiosError.NOT_ALLOWED , "#STR_BIOS_ActionRestricted");
InsertBIOSError(EBiosError.BANNED , "#STR_auth_publisher_ban");
InsertBIOSError(EBiosError.LOGICAL , "#STR_BIOS_APILogicError");
InsertBIOSError(EBiosError.WRONG_RESPONSE_DATA , "#STR_BIOS_UnexpectedFormat");
InsertBIOSError(EBiosError.SERVER_HEARTBEAT_SERVER_NOT_FOUND , "#STR_BIOS_ServerNotRegistered");
InsertBIOSError(EBiosError.SERVER_REGISTER_ALREADY_EXISTS , "#STR_BIOS_ServerAlreadyRegistered");
InsertBIOSError(EBiosError.REQUEST_CREATE_FAIL_XHR , "#STR_BIOS_FailedToOpenRequest");
InsertBIOSError(EBiosError.REQUEST_SEND_FAIL , "#STR_BIOS_FailedToSendData");
InsertBIOSError(EBiosError.REQUEST_WAIT_FAIL , "#STR_BIOS_FailedToWaitOperationEnd");
InsertBIOSError(EBiosError.NON_JSON_RESPONSE , "#STR_BIOS_UnexpectedFormat");
InsertBIOSError(EBiosError.UPDATE_REQUIRED , "#STR_BIOS_UpdateRequired");
InsertBIOSError(EBiosError.UPDATE_REQUIRED_AND_DOWNLOADED , "#STR_BIOS_UpdateRequiredAndDownloaded");
InsertBIOSError(EBiosError.COMUNICATION_ERROR , "#STR_BIOS_CommunicationError");
InsertBIOSError(EBiosError.UNKNOWN , "#server_browser_error_unknown");
InsertBIOSError(EBiosError.BAD_SCRIPT , "#STR_BIOS_LinkageError");
InsertBIOSError(EBiosError.COMMUNICATION_TIMED_OUT , "#STR_BIOS_CommTimeOutError");
InsertBIOSError(EBiosError.COMMUNICATION_RESET , "#STR_BIOS_CommResetError");
InsertBIOSError(EBiosError.COMMUNICATION_ABORTED , "#STR_BIOS_CommAbortError");
}
void InsertBIOSError(int code, string message)
{
#ifdef PLATFORM_CONSOLE
InsertDialogueErrorProperties(code, message);
#else
InsertErrorProperties(code, message);
#endif
}
}