Пример #1
0
    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));
        }
    }
Пример #2
0
 /// <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);
 }
Пример #3
0
 /// <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);
 }
Пример #4
0
        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;
            }
        }
Пример #5
0
    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));
        }
    }
Пример #6
0
 internal static bool IsFailed(this Interop.ErrorCode err)
 {
     return(!err.IsSuccess());
 }
Пример #7
0
 internal static bool IsSuccess(this Interop.ErrorCode err)
 {
     return(err == Interop.ErrorCode.None);
 }