Volume/device attachment and removal events #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds platform-specific code to fire global "volume.added" and "volume.removed" events when removable devices containing filesystems are attached or ejected/removed. One event is fired per device, rather than per filesystem, and no specific information about the device(s) in question is provided.
I have added these same simple, you might say crude, system-related events to this branch for OS X and to the v1.2-windows branch with a similar implementation for Windows. Rather than providing a full device/volume information API, we have found simply being notified that some kind of change has occurred very useful in our application, with further platform-specific code that it may not be worth lumbering the SDK with being used in response to these events to identify and examine the devices of interest, such as USB flash drives.
The
DiskDescriptionChanged
callback is used, with theVolumePath
property being monitored, instead of theDiskAppeared
callback, to provide the event at a time when the volume has been mounted ready for use in the application. Disks without partitions and/or volumes or volumes that do not get mounted would be filtered by the code inreport_disk
anyway, which also filter out readonly, network and fixed-disk volumes, as this has been geared for an application wishing to manipulate removable storage devices. A more full API for disk information and notification would of course need the flexibility for such filters to be choosen by the application and in a platform-neutral way, but I think may be a useful interim for a variety of projects.Thank you for considering this submission.