Skip to content

Commit 39bd2da

Browse files
committed
Use DispatchSource.FileSystemEvent.
1 parent cffa238 commit 39bd2da

1 file changed

Lines changed: 4 additions & 35 deletions

File tree

OpenSim/DirectoryWatcher.swift

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -15,50 +15,19 @@ public class DirectoryWatcher {
1515
case cannotCreateSource
1616
}
1717

18-
enum Mask {
19-
case attribute
20-
case delete
21-
case extend
22-
case link
23-
case rename
24-
case revoke
25-
case write
26-
27-
var flag: dispatch_source_vnode_flags_t {
28-
get {
29-
switch self {
30-
case .attribute:
31-
return DispatchSource.FileSystemEvent.attrib
32-
case .delete:
33-
return DispatchSource.FileSystemEvent.delete
34-
case .extend:
35-
return DispatchSource.FileSystemEvent.extend
36-
case .link:
37-
return DispatchSource.FileSystemEvent.link
38-
case .rename:
39-
return DispatchSource.FileSystemEvent.rename
40-
case .revoke:
41-
return DispatchSource.FileSystemEvent.revoke
42-
case .write:
43-
return DispatchSource.FileSystemEvent.write
44-
}
45-
}
46-
}
47-
}
48-
4918
public typealias CompletionCallback = () -> ()
5019

5120
var watchedURL: URL
52-
let mask: Mask
21+
let eventMask: DispatchSource.FileSystemEvent
5322
public var completionCallback: CompletionCallback?
5423
private let queue = DispatchQueue(label: "com.pop-tap.directory-watcher", attributes: DispatchQueueAttributes.serial)
5524
private var source: DispatchSource?
5625
private var directoryChanging = false
5726
private var oldDirectoryInfo = [FileInfo?]()
5827

59-
init(URL: Foundation.URL, mask: Mask = .write) {
28+
init(URL: Foundation.URL, eventMask: DispatchSource.FileSystemEvent = .write) {
6029
watchedURL = URL
61-
self.mask = mask
30+
self.eventMask = eventMask
6231
}
6332

6433
deinit {
@@ -83,7 +52,7 @@ public class DirectoryWatcher {
8352
close(fd)
8453
}
8554

86-
guard let src = DispatchSource.fileSystemObject(fileDescriptor: fd, eventMask: mask.flag, queue: queue) /*Migrator FIXME: Use DispatchSourceFileSystemObject to avoid the cast*/ as! DispatchSource else {
55+
guard let src = DispatchSource.fileSystemObject(fileDescriptor: fd, eventMask: eventMask, queue: queue) /*Migrator FIXME: Use DispatchSourceFileSystemObject to avoid the cast*/ as? DispatchSource else {
8756
cleanUp()
8857
throw Error.cannotCreateSource
8958
}

0 commit comments

Comments
 (0)