76 references to Interop
System.IO.FileSystem.Watcher (76)
src\libraries\Common\src\Interop\Unix\Interop.Errors.cs (6)
123
_error =
Interop
.Sys.ConvertErrorPlatformToPal(errno);
140
get { return _rawErrno == -1 ? (_rawErrno =
Interop
.Sys.ConvertErrorPalToPlatform(_error)) : _rawErrno; }
145
return
Interop
.Sys.StrError(RawErrno);
219
public static
Interop
.ErrorInfo Info(this
Interop
.Error error)
221
return new
Interop
.ErrorInfo(error);
src\libraries\Common\src\Interop\Unix\Interop.IOErrors.cs (4)
16
throw
Interop
.GetExceptionForIoErrno(errorInfo, path, isDirError);
21
if (error !=
Interop
.Error.SUCCESS)
99
Exception e =
Interop
.GetExceptionForIoErrno(Sys.GetLastErrorInfo(), path, isDirError);
179
internal static Exception GetIOException(
Interop
.ErrorInfo errorInfo, string? path = null)
System\IO\FileSystemWatcher.Linux.cs (66)
36
SafeFileHandle handle =
Interop
.Sys.INotifyInit();
39
Interop
.ErrorInfo error =
Interop
.Sys.GetLastErrorInfo();
43
case
Interop
.Error.EMFILE:
49
case
Interop
.Error.ENFILE:
52
throw
Interop
.GetExceptionForIoErrno(error);
156
private static
Interop
.Sys.NotifyEvents TranslateFilters(NotifyFilters filters)
158
Interop
.Sys.NotifyEvents result = 0;
163
Interop
.Sys.NotifyEvents.IN_ONLYDIR | // we only allow watches on directories
164
Interop
.Sys.NotifyEvents.IN_EXCL_UNLINK; // we want to stop monitoring unlinked files
173
Interop
.Sys.NotifyEvents.IN_CREATE |
174
Interop
.Sys.NotifyEvents.IN_DELETE;
194
result |=
Interop
.Sys.NotifyEvents.IN_ACCESS;
198
result |=
Interop
.Sys.NotifyEvents.IN_MODIFY;
202
result |=
Interop
.Sys.NotifyEvents.IN_ATTRIB;
213
Interop
.Sys.NotifyEvents.IN_MOVED_FROM |
214
Interop
.Sys.NotifyEvents.IN_MOVED_TO;
264
private readonly
Interop
.Sys.NotifyEvents _watchFilters;
361
(
Interop
.Sys.LStat(fullPath, out
Interop
.Sys.FileStatus status) == 0) &&
362
((status.Mode & (uint)
Interop
.Sys.FileTypes.S_IFMT) ==
Interop
.Sys.FileTypes.S_IFLNK))
371
uint mask = (uint)(_watchFilters |
Interop
.Sys.NotifyEvents.IN_EXCL_UNLINK | (hasParent ?
Interop
.Sys.NotifyEvents.IN_DONT_FOLLOW : 0));
372
int wd =
Interop
.Sys.INotifyAddWatch(_inotifyHandle, fullPath, mask);
378
Interop
.ErrorInfo error =
Interop
.Sys.GetLastErrorInfo();
382
if (hasParent && (error.Error ==
Interop
.Error.ENOENT ||
383
error.Error ==
Interop
.Error.ENOTDIR))
389
if (error.Error ==
Interop
.Error.ENOSPC)
399
exc =
Interop
.GetExceptionForIoErrno(error, fullPath);
475
catch (IOException ex) when (ex.HResult ==
Interop
.Error.ENOTDIR.Info().RawErrno)
529
int result =
Interop
.Sys.INotifyRemoveWatch(_inotifyHandle, directoryEntry.WatchDescriptor);
546
int result =
Interop
.Sys.INotifyRemoveWatch(_inotifyHandle, wd);
580
if ((mask & (uint)
Interop
.Sys.NotifyEvents.IN_Q_OVERFLOW) != 0)
619
bool isDir = (mask & (uint)(
Interop
.Sys.NotifyEvents.IN_ISDIR |
Interop
.Sys.NotifyEvents.IN_IGNORED)) != 0;
624
if (!previousEventName.IsEmpty && ((mask & (uint)
Interop
.Sys.NotifyEvents.IN_MOVED_TO) == 0 || previousEventCookie != nextEvent.cookie))
656
const
Interop
.Sys.NotifyEvents AddMaskFilters =
Interop
.Sys.NotifyEvents.IN_CREATE |
Interop
.Sys.NotifyEvents.IN_MOVED_TO;
665
const
Interop
.Sys.NotifyEvents fileDirEvents =
Interop
.Sys.NotifyEvents.IN_CREATE |
666
Interop
.Sys.NotifyEvents.IN_DELETE |
667
Interop
.Sys.NotifyEvents.IN_MOVED_FROM |
668
Interop
.Sys.NotifyEvents.IN_MOVED_TO;
676
const
Interop
.Sys.NotifyEvents switchMask = fileDirEvents |
Interop
.Sys.NotifyEvents.IN_IGNORED |
677
Interop
.Sys.NotifyEvents.IN_ACCESS |
Interop
.Sys.NotifyEvents.IN_MODIFY |
Interop
.Sys.NotifyEvents.IN_ATTRIB;
678
switch ((
Interop
.Sys.NotifyEvents)(mask & (uint)switchMask))
680
case
Interop
.Sys.NotifyEvents.IN_CREATE:
683
case
Interop
.Sys.NotifyEvents.IN_IGNORED:
690
case
Interop
.Sys.NotifyEvents.IN_DELETE:
695
case
Interop
.Sys.NotifyEvents.IN_ACCESS:
696
case
Interop
.Sys.NotifyEvents.IN_MODIFY:
697
case
Interop
.Sys.NotifyEvents.IN_ATTRIB:
700
case
Interop
.Sys.NotifyEvents.IN_MOVED_FROM:
718
Interop
.PollEvents events;
719
Interop
.Sys.Poll(_inotifyHandle,
Interop
.PollEvents.POLLIN, MillisecondsTimeout, out events);
722
if (events ==
Interop
.PollEvents.POLLNONE)
736
case
Interop
.Sys.NotifyEvents.IN_MOVED_TO:
818
_bufferAvailable =
Interop
.CheckIo(
Interop
.Sys.Read(_inotifyHandle, buf, this._buffer.Length));