1635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project/* 2d0825bca7fe65beaee391d30da42e937db621564Steve Block * Copyright (C) 2010 Google Inc. All rights reserved. 38f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 4635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Redistribution and use in source and binary forms, with or without 5635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * modification, are permitted provided that the following conditions are 6635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * met: 78f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 8635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Redistributions of source code must retain the above copyright 9635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * notice, this list of conditions and the following disclaimer. 10635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Redistributions in binary form must reproduce the above 11635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * copyright notice, this list of conditions and the following disclaimer 12635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * in the documentation and/or other materials provided with the 13635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * distribution. 14635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Neither the name of Google Inc. nor the names of its 15635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * contributors may be used to endorse or promote products derived from 16635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * this software without specific prior written permission. 178f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian * 18635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project */ 30635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 31e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#ifndef WebFileSystemCallbacks_h 32e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#define WebFileSystemCallbacks_h 33635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 34e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#include "WebFileError.h" 35e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#include "WebFileSystemEntry.h" 36e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#include "WebVector.h" 37635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 38d0825bca7fe65beaee391d30da42e937db621564Steve Blocknamespace WebKit { 39635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 40d0825bca7fe65beaee391d30da42e937db621564Steve Blockclass WebString; 41e8b154fd68f9b33be40a3590e58347f353835f5cSteve Blockstruct WebFileInfo; 428f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 43e8b154fd68f9b33be40a3590e58347f353835f5cSteve Blockclass WebFileSystemCallbacks { 44d0825bca7fe65beaee391d30da42e937db621564Steve Blockpublic: 45e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // Callback for WebFileSystem's various operations that don't require 46e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // return values. 47e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual void didSucceed() = 0; 48635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 49e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // Callback for WebFileSystem::readMetadata. Called with the file metadata 50e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // for the requested path. 51e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual void didReadMetadata(const WebFileInfo&) = 0; 528f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 53e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // Callback for WebFileSystem::readDirectory. Called with a vector of 54e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // file entries in the requested directory. This callback might be called 55e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // multiple times if the directory has many entries. |hasMore| must be 56e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // true when there are more entries. 57e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual void didReadDirectory(const WebVector<WebFileSystemEntry>&, bool hasMore) = 0; 58e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block 59e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // Callback for WebFrameClient::openFileSystem. Called with a name and 60e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // root path for the FileSystem when the request is accepted. 61e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual void didOpenFileSystem(const WebString& name, const WebString& rootPath) = 0; 62e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block 63e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // Called with an error code when a requested operation hasn't been 64e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // completed. 65e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual void didFail(WebFileError) = 0; 66635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 67e8b154fd68f9b33be40a3590e58347f353835f5cSteve Blockprotected: 68e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual ~WebFileSystemCallbacks() {} 69d0825bca7fe65beaee391d30da42e937db621564Steve Block}; 70d0825bca7fe65beaee391d30da42e937db621564Steve Block 71d0825bca7fe65beaee391d30da42e937db621564Steve Block} // namespace WebKit 72d0825bca7fe65beaee391d30da42e937db621564Steve Block 73d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 74