| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 | 30 |
| 31 #include "public/platform/WebFileSystemCallbacks.h" | 31 #include "public/platform/WebFileSystemCallbacks.h" |
| 32 | 32 |
| 33 #include "platform/AsyncFileSystemCallbacks.h" | 33 #include "platform/AsyncFileSystemCallbacks.h" |
| 34 #include "platform/FileMetadata.h" | 34 #include "platform/FileMetadata.h" |
| 35 #include "public/platform/WebFileInfo.h" | 35 #include "public/platform/WebFileInfo.h" |
| 36 #include "public/platform/WebFileSystem.h" | 36 #include "public/platform/WebFileSystem.h" |
| 37 #include "public/platform/WebFileSystemEntry.h" | 37 #include "public/platform/WebFileSystemEntry.h" |
| 38 #include "public/platform/WebFileWriter.h" | 38 #include "public/platform/WebFileWriter.h" |
| 39 #include "public/platform/WebString.h" | 39 #include "public/platform/WebString.h" |
| 40 #include "wtf/PassOwnPtr.h" |
| 40 #include "wtf/PassRefPtr.h" | 41 #include "wtf/PassRefPtr.h" |
| 41 #include "wtf/PtrUtil.h" | |
| 42 #include "wtf/RefCounted.h" | 42 #include "wtf/RefCounted.h" |
| 43 #include <memory> | |
| 44 | 43 |
| 45 namespace blink { | 44 namespace blink { |
| 46 | 45 |
| 47 class WebFileSystemCallbacksPrivate : public RefCounted<WebFileSystemCallbacksPr
ivate> { | 46 class WebFileSystemCallbacksPrivate : public RefCounted<WebFileSystemCallbacksPr
ivate> { |
| 48 public: | 47 public: |
| 49 static PassRefPtr<WebFileSystemCallbacksPrivate> create(std::unique_ptr<Asyn
cFileSystemCallbacks> callbacks) | 48 static PassRefPtr<WebFileSystemCallbacksPrivate> create(PassOwnPtr<AsyncFile
SystemCallbacks> callbacks) |
| 50 { | 49 { |
| 51 return adoptRef(new WebFileSystemCallbacksPrivate(std::move(callbacks)))
; | 50 return adoptRef(new WebFileSystemCallbacksPrivate(std::move(callbacks)))
; |
| 52 } | 51 } |
| 53 | 52 |
| 54 AsyncFileSystemCallbacks* callbacks() { return m_callbacks.get(); } | 53 AsyncFileSystemCallbacks* callbacks() { return m_callbacks.get(); } |
| 55 | 54 |
| 56 private: | 55 private: |
| 57 WebFileSystemCallbacksPrivate(std::unique_ptr<AsyncFileSystemCallbacks> call
backs) : m_callbacks(std::move(callbacks)) { } | 56 WebFileSystemCallbacksPrivate(PassOwnPtr<AsyncFileSystemCallbacks> callbacks
) : m_callbacks(std::move(callbacks)) { } |
| 58 std::unique_ptr<AsyncFileSystemCallbacks> m_callbacks; | 57 OwnPtr<AsyncFileSystemCallbacks> m_callbacks; |
| 59 }; | 58 }; |
| 60 | 59 |
| 61 WebFileSystemCallbacks::WebFileSystemCallbacks(std::unique_ptr<AsyncFileSystemCa
llbacks>&& callbacks) | 60 WebFileSystemCallbacks::WebFileSystemCallbacks(PassOwnPtr<AsyncFileSystemCallbac
ks>&& callbacks) |
| 62 { | 61 { |
| 63 m_private = WebFileSystemCallbacksPrivate::create(std::move(callbacks)); | 62 m_private = WebFileSystemCallbacksPrivate::create(std::move(callbacks)); |
| 64 } | 63 } |
| 65 | 64 |
| 66 void WebFileSystemCallbacks::reset() | 65 void WebFileSystemCallbacks::reset() |
| 67 { | 66 { |
| 68 m_private.reset(); | 67 m_private.reset(); |
| 69 } | 68 } |
| 70 | 69 |
| 71 void WebFileSystemCallbacks::assign(const WebFileSystemCallbacks& other) | 70 void WebFileSystemCallbacks::assign(const WebFileSystemCallbacks& other) |
| (...skipping 18 matching lines...) Expand all Loading... |
| 90 fileMetadata.platformPath = webFileInfo.platformPath; | 89 fileMetadata.platformPath = webFileInfo.platformPath; |
| 91 m_private->callbacks()->didReadMetadata(fileMetadata); | 90 m_private->callbacks()->didReadMetadata(fileMetadata); |
| 92 m_private.reset(); | 91 m_private.reset(); |
| 93 } | 92 } |
| 94 | 93 |
| 95 void WebFileSystemCallbacks::didCreateSnapshotFile(const WebFileInfo& webFileInf
o) | 94 void WebFileSystemCallbacks::didCreateSnapshotFile(const WebFileInfo& webFileInf
o) |
| 96 { | 95 { |
| 97 ASSERT(!m_private.isNull()); | 96 ASSERT(!m_private.isNull()); |
| 98 // It's important to create a BlobDataHandle that refers to the platform fil
e path prior | 97 // It's important to create a BlobDataHandle that refers to the platform fil
e path prior |
| 99 // to return from this method so the underlying file will not be deleted. | 98 // to return from this method so the underlying file will not be deleted. |
| 100 std::unique_ptr<BlobData> blobData = BlobData::create(); | 99 OwnPtr<BlobData> blobData = BlobData::create(); |
| 101 blobData->appendFile(webFileInfo.platformPath, 0, webFileInfo.length, invali
dFileTime()); | 100 blobData->appendFile(webFileInfo.platformPath, 0, webFileInfo.length, invali
dFileTime()); |
| 102 RefPtr<BlobDataHandle> snapshotBlob = BlobDataHandle::create(std::move(blobD
ata), webFileInfo.length); | 101 RefPtr<BlobDataHandle> snapshotBlob = BlobDataHandle::create(std::move(blobD
ata), webFileInfo.length); |
| 103 | 102 |
| 104 FileMetadata fileMetadata; | 103 FileMetadata fileMetadata; |
| 105 fileMetadata.modificationTime = webFileInfo.modificationTime; | 104 fileMetadata.modificationTime = webFileInfo.modificationTime; |
| 106 fileMetadata.length = webFileInfo.length; | 105 fileMetadata.length = webFileInfo.length; |
| 107 fileMetadata.type = static_cast<FileMetadata::Type>(webFileInfo.type); | 106 fileMetadata.type = static_cast<FileMetadata::Type>(webFileInfo.type); |
| 108 fileMetadata.platformPath = webFileInfo.platformPath; | 107 fileMetadata.platformPath = webFileInfo.platformPath; |
| 109 m_private->callbacks()->didCreateSnapshotFile(fileMetadata, snapshotBlob); | 108 m_private->callbacks()->didCreateSnapshotFile(fileMetadata, snapshotBlob); |
| 110 m_private.reset(); | 109 m_private.reset(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 129 void WebFileSystemCallbacks::didResolveURL(const WebString& name, const WebURL&
rootURL, WebFileSystemType type, const WebString& filePath, bool isDirectory) | 128 void WebFileSystemCallbacks::didResolveURL(const WebString& name, const WebURL&
rootURL, WebFileSystemType type, const WebString& filePath, bool isDirectory) |
| 130 { | 129 { |
| 131 ASSERT(!m_private.isNull()); | 130 ASSERT(!m_private.isNull()); |
| 132 m_private->callbacks()->didResolveURL(name, rootURL, static_cast<FileSystemT
ype>(type), filePath, isDirectory); | 131 m_private->callbacks()->didResolveURL(name, rootURL, static_cast<FileSystemT
ype>(type), filePath, isDirectory); |
| 133 m_private.reset(); | 132 m_private.reset(); |
| 134 } | 133 } |
| 135 | 134 |
| 136 void WebFileSystemCallbacks::didCreateFileWriter(WebFileWriter* webFileWriter, l
ong long length) | 135 void WebFileSystemCallbacks::didCreateFileWriter(WebFileWriter* webFileWriter, l
ong long length) |
| 137 { | 136 { |
| 138 ASSERT(!m_private.isNull()); | 137 ASSERT(!m_private.isNull()); |
| 139 m_private->callbacks()->didCreateFileWriter(wrapUnique(webFileWriter), lengt
h); | 138 m_private->callbacks()->didCreateFileWriter(adoptPtr(webFileWriter), length)
; |
| 140 m_private.reset(); | 139 m_private.reset(); |
| 141 } | 140 } |
| 142 | 141 |
| 143 void WebFileSystemCallbacks::didFail(WebFileError error) | 142 void WebFileSystemCallbacks::didFail(WebFileError error) |
| 144 { | 143 { |
| 145 ASSERT(!m_private.isNull()); | 144 ASSERT(!m_private.isNull()); |
| 146 m_private->callbacks()->didFail(error); | 145 m_private->callbacks()->didFail(error); |
| 147 m_private.reset(); | 146 m_private.reset(); |
| 148 } | 147 } |
| 149 | 148 |
| 150 bool WebFileSystemCallbacks::shouldBlockUntilCompletion() const | 149 bool WebFileSystemCallbacks::shouldBlockUntilCompletion() const |
| 151 { | 150 { |
| 152 ASSERT(!m_private.isNull()); | 151 ASSERT(!m_private.isNull()); |
| 153 return m_private->callbacks()->shouldBlockUntilCompletion(); | 152 return m_private->callbacks()->shouldBlockUntilCompletion(); |
| 154 } | 153 } |
| 155 | 154 |
| 156 } // namespace blink | 155 } // namespace blink |
| OLD | NEW |