WebAPI/ProposedDeviceStorageAPIWithNotifications
< WebAPI
Jump to navigation
Jump to search
This page contains a draft of the proposed modification to the DeviceStorage API to include onchanged notifications.
API
partial interface Navigator { /** * type is an arbitrary string. On OSs with predefined directories (pictures, * music, etc) we can match certain type names to certain folders. * To be figured out. * * Note that each value for the type represents a different directory. * I.e. passing "pictures" as type will yield a completely different set * of files from passing "movies" as the type. * * In other words, the type argument is not some sort of filter, but rather * simply a destination directory. */ DeviceStorage getDeviceStorage(DOMString type); }; interface DeviceStorage { // Name will be generated by the implementation and returned as result of request DOMRequest add(Blob blob); // Fails if a file with the given name already exists. DOMRequest addNamed(Blob blob, DOMString name); // Returns the result as a File object DOMRequest get(DOMString name); // Returns the result as a FileHandle object which enables writing DOMRequest getEditable(DOMString name); // Deletes a file DOMRequest delete(DOMString name); // Watches a file, or all files for updates // If name is specified, watches a file with that name // returns the DeviceStorageWatch for this request, through which future requests will be processed DeviceStorageWatch watchChanges(optional DOMString name); // See interface below for how to use this DeviceStorageCursor enumerate(optional DOMString directory) DeviceStorageCursor enumerateEditable(optional DOMString directory) }; interface DeviceStorageCursor : DOMRequest { // .result is either a File or a FileHandle void continue(); }; interface DeviceStorageWatch{ // This enum represents the kinds of operations that an application can watch for enum UpdateType { DSWCreated, DSWModified, DSWDeleted }; // this function is called whenever the file(s) addressed by the request are created, modified, or deleted // takes the file's name and type as its two arguments void (*onChange)(DOMString, UpdateType); // this function stops the watcher permanently void cancel(); }