示例#1
0
        private bool Refresh(bool throwException)
        {
            int num = Syscall.statvfs(this.mount_point, out this.stat);

            if (num == -1 && throwException)
            {
                Errno lastError = Stdlib.GetLastError();
                throw new InvalidOperationException(UnixMarshal.GetErrorDescription(lastError), new UnixIOException(lastError));
            }
            if (num == -1)
            {
                return(false);
            }
            return(true);
        }
示例#2
0
        private bool Refresh(bool throwException)
        {
            int r = Native.Syscall.statvfs(mount_point, out stat);

            if (r == -1 && throwException)
            {
                Native.Errno e = Native.Syscall.GetLastError();
                throw new InvalidOperationException(
                          UnixMarshal.GetErrorDescription(e),
                          new UnixIOException(e));
            }
            else if (r == -1)
            {
                return(false);
            }
            return(true);
        }
 private static string GetMessage(Native.Errno errno)
 {
     return(string.Format("{0} [{1}].",
                          UnixMarshal.GetErrorDescription(errno),
                          errno));
 }
示例#4
0
        internal static Exception CreateExceptionForError(Errno errno)
        {
            string          errorDescription = UnixMarshal.GetErrorDescription(errno);
            UnixIOException unixIOException  = new UnixIOException(errno);
            Errno           errno1           = errno;

            switch (errno1)
            {
            case Errno.EPERM:
            {
                return(new InvalidOperationException(errorDescription, unixIOException));
            }

            case Errno.ENOENT:
            {
                return(new FileNotFoundException(errorDescription, unixIOException));
            }

            case Errno.EIO:
            case Errno.ENXIO:
            {
                return(new IOException(errorDescription, unixIOException));
            }

            case Errno.ENOEXEC:
            {
                return(new InvalidProgramException(errorDescription, unixIOException));
            }

            case Errno.EBADF:
            case Errno.EINVAL:
            {
                return(new ArgumentException(errorDescription, unixIOException));
            }

            case Errno.EACCES:
            case Errno.EISDIR:
            {
                return(new UnauthorizedAccessException(errorDescription, unixIOException));
            }

            case Errno.EFAULT:
            {
                return(new NullReferenceException(errorDescription, unixIOException));
            }

            case Errno.ENOTDIR:
            {
                return(new DirectoryNotFoundException(errorDescription, unixIOException));
            }

            default:
            {
                switch (errno1)
                {
                case Errno.ENOSPC:
                case Errno.ESPIPE:
                case Errno.EROFS:
                case Errno.ENOTEMPTY:
                {
                    return(new IOException(errorDescription, unixIOException));
                }

                case Errno.ERANGE:
                {
                    return(new ArgumentOutOfRangeException(errorDescription));
                }

                case Errno.ENAMETOOLONG:
                {
                    return(new PathTooLongException(errorDescription, unixIOException));
                }

                default:
                {
                    if (errno1 == Errno.EOVERFLOW)
                    {
                        return(new OverflowException(errorDescription, unixIOException));
                    }
                    if (errno1 == Errno.EOPNOTSUPP)
                    {
                        return(new InvalidOperationException(errorDescription, unixIOException));
                    }
                    return(unixIOException);
                }
                }
                break;
            }
            }
        }