Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ParseEventBufferAndNotifyForEach()

unsafe void System.IO.FileSystemWatcher.ParseEventBufferAndNotifyForEach ( ReadOnlySpan< byte > buffer)
inlineprivate

Definition at line 855 of file FileSystemWatcher.cs.

856 {
858 while (sizeof(global::Interop.Kernel32.FILE_NOTIFY_INFORMATION) <= (uint)buffer.Length)
859 {
860 ref readonly global::Interop.Kernel32.FILE_NOTIFY_INFORMATION reference = ref MemoryMarshal.AsRef<global::Interop.Kernel32.FILE_NOTIFY_INFORMATION>(buffer);
861 if (reference.FileNameLength > (uint)buffer.Length - sizeof(global::Interop.Kernel32.FILE_NOTIFY_INFORMATION))
862 {
863 break;
864 }
865 ReadOnlySpan<char> readOnlySpan = MemoryMarshal.Cast<byte, char>(buffer.Slice(sizeof(global::Interop.Kernel32.FILE_NOTIFY_INFORMATION), (int)reference.FileNameLength));
866 switch (reference.Action)
867 {
868 case global::Interop.Kernel32.FileAction.FILE_ACTION_RENAMED_OLD_NAME:
870 break;
871 case global::Interop.Kernel32.FileAction.FILE_ACTION_RENAMED_NEW_NAME:
874 break;
875 default:
876 if (!oldName.IsEmpty)
877 {
880 }
881 switch (reference.Action)
882 {
883 case global::Interop.Kernel32.FileAction.FILE_ACTION_ADDED:
885 break;
886 case global::Interop.Kernel32.FileAction.FILE_ACTION_REMOVED:
888 break;
889 case global::Interop.Kernel32.FileAction.FILE_ACTION_MODIFIED:
891 break;
892 }
893 break;
894 }
895 if (reference.NextEntryOffset == 0 || reference.NextEntryOffset > (uint)buffer.Length)
896 {
897 break;
898 }
899 buffer = buffer.Slice((int)reference.NextEntryOffset);
900 }
901 if (!oldName.IsEmpty)
902 {
904 }
905 }
void NotifyFileSystemEventArgs(WatcherChangeTypes changeType, ReadOnlySpan< char > name)
void NotifyRenameEventArgs(WatcherChangeTypes action, ReadOnlySpan< char > name, ReadOnlySpan< char > oldName)

References System.buffer, System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(), and System.IO.FileSystemWatcher.NotifyRenameEventArgs().

Referenced by System.IO.FileSystemWatcher.ReadDirectoryChangesCallback().