internal static Exception GetException(this Interop.ErrorCode err, string message) { string errMessage = $"{message}, err: {err.ToString()}"; switch (err) { //case ErrorCode.None: case Interop.ErrorCode.PermissionDenied: return(new System.UnauthorizedAccessException(errMessage)); case Interop.ErrorCode.InvalidParameter: return(new System.ArgumentException(errMessage)); case Interop.ErrorCode.OutOfMemory: case Interop.ErrorCode.NotSupported: case Interop.ErrorCode.ConnectionTimeOut: case Interop.ErrorCode.NetworkUnreachable: case Interop.ErrorCode.InvalidOperation: case Interop.ErrorCode.KeyNotAvailable: case Interop.ErrorCode.ResourceBusy: case Interop.ErrorCode.Canceled: case Interop.ErrorCode.Unknown: case Interop.ErrorCode.ServiceNotAvailable: case Interop.ErrorCode.NotFound: default: return(new System.InvalidOperationException(errMessage)); } }
/// <summary> /// The utility method to check for an error. Returns false on failure and throws an exception. /// </summary> /// <returns>Returns true in case of no error, otherwise false.</returns> internal static bool ThrowIfFailed(this Interop.ErrorCode err, string msg, [CallerFilePath] string file = "", [CallerMemberName] string func = "", [CallerLineNumber] int line = 0) { if (err.IsFailed()) { Log.Error(LogTag, $"{msg}, err: {err.ToString()}", file, func, line); throw err.GetException(msg); } return(true); }
/// <summary> /// The utility method to check for an error. Returns false on failure and prints warning messages. /// </summary> /// <returns>Returns true in case of no error, otherwise false.</returns> internal static bool WarnIfFailed(this Interop.ErrorCode err, string msg, [CallerFilePath] string file = "", [CallerMemberName] string func = "", [CallerLineNumber] int line = 0) { if (err.IsFailed()) { Log.Debug(LogTag, $"{msg}, err: {err.ToString()}", file, func, line); return(false); } return(true); }
internal void Cancel() { if (_requestTask?.Task.IsCompleted == false) { _requestTask?.SetCanceled(); if (_requestID != null) { var err = Interop.CancelRequest(_service.handle, (int)_requestID); err.ThrowIfFailed($"Unable to cancel service request, Type: {_type}, ID: {_requestID}"); } errorCode = Interop.ErrorCode.Canceled; } }
internal static Exception GetException(this Interop.ErrorCode err, string message) { string errMessage = $"{message}, err: {err.ToString()}"; switch (err) { //case Interop.ErrorCode.None: case Interop.ErrorCode.PermissionDenied: return(new UnauthorizedAccessException(errMessage)); case Interop.ErrorCode.InvalidParameter: return(new ArgumentException(errMessage)); case Interop.ErrorCode.TimedOut: return(new TimeoutException(errMessage)); case Interop.ErrorCode.OutOfMemory: return(new OutOfMemoryException(errMessage)); case Interop.ErrorCode.NotSupported: return(new NotSupportedException(errMessage)); case Interop.ErrorCode.IoError: case Interop.ErrorCode.NoSuchDevice: case Interop.ErrorCode.ResourceBusy: case Interop.ErrorCode.BrokenPipe: case Interop.ErrorCode.InterruptedSysCall: case Interop.ErrorCode.Unknown: case Interop.ErrorCode.NotFound: case Interop.ErrorCode.Overflow: case Interop.ErrorCode.DeviceNotOpened: default: return(new InvalidOperationException(errMessage)); } }
internal static bool IsFailed(this Interop.ErrorCode err) { return(!err.IsSuccess()); }
internal static bool IsSuccess(this Interop.ErrorCode err) { return(err == Interop.ErrorCode.None); }