namespace blink {
class DirectoryEntry;
-class File;
class FileCallback;
class FileEntry;
class FileWriterCallback;
-class DOMFileSystem FINAL : public DOMFileSystemBase, public ScriptWrappable, public ActiveDOMObject {
+class DOMFileSystem final : public DOMFileSystemBase, public ScriptWrappable, public ActiveDOMObject {
DEFINE_WRAPPERTYPEINFO();
public:
static DOMFileSystem* create(ExecutionContext*, const String& name, FileSystemType, const KURL& rootURL);
DirectoryEntry* root();
// DOMFileSystemBase overrides.
- virtual void addPendingCallbacks() OVERRIDE;
- virtual void removePendingCallbacks() OVERRIDE;
- virtual void reportError(ErrorCallback*, PassRefPtrWillBeRawPtr<FileError>) OVERRIDE;
+ virtual void addPendingCallbacks() override;
+ virtual void removePendingCallbacks() override;
+ virtual void reportError(ErrorCallback*, FileError*) override;
// ActiveDOMObject overrides.
- virtual bool hasPendingActivity() const OVERRIDE;
+ virtual bool hasPendingActivity() const override;
void createWriter(const FileEntry*, FileWriterCallback*, ErrorCallback*);
void createFile(const FileEntry*, FileCallback*, ErrorCallback*);
template <typename CB, typename CBArg>
static void scheduleCallback(ExecutionContext*, CB*, const CBArg&);
+ template <typename CB, typename CBArg>
+ static void scheduleCallback(ExecutionContext*, CB*, const Member<CBArg>&);
+
template <typename CB>
static void scheduleCallback(ExecutionContext*, CB*);
class DispatchCallbackTaskBase : public ExecutionContextTask {
public:
- DispatchCallbackTaskBase()
- : m_taskName("FileSystem")
+ virtual String taskNameForInstrumentation() const override
{
+ return "FileSystem";
}
-
- virtual const String& taskNameForInstrumentation() const OVERRIDE
- {
- return m_taskName;
- }
-
- private:
- const String m_taskName;
};
// A helper template to schedule a callback task.
template <typename CB, typename CBArg>
- class DispatchCallbackRefPtrArgTask FINAL : public DispatchCallbackTaskBase {
+ class DispatchCallbackRefPtrArgTask final : public DispatchCallbackTaskBase {
public:
DispatchCallbackRefPtrArgTask(CB* callback, PassRefPtrWillBeRawPtr<CBArg> arg)
: m_callback(callback)
{
}
- virtual void performTask(ExecutionContext*) OVERRIDE
+ virtual void performTask(ExecutionContext*) override
{
m_callback->handleEvent(m_callbackArg.get());
}
};
template <typename CB, typename CBArg>
- class DispatchCallbackPtrArgTask FINAL : public DispatchCallbackTaskBase {
+ class DispatchCallbackPtrArgTask final : public DispatchCallbackTaskBase {
public:
DispatchCallbackPtrArgTask(CB* callback, CBArg* arg)
: m_callback(callback)
{
}
- virtual void performTask(ExecutionContext*) OVERRIDE
+ virtual void performTask(ExecutionContext*) override
{
m_callback->handleEvent(m_callbackArg.get());
}
};
template <typename CB, typename CBArg>
- class DispatchCallbackNonPtrArgTask FINAL : public DispatchCallbackTaskBase {
+ class DispatchCallbackNonPtrArgTask final : public DispatchCallbackTaskBase {
public:
DispatchCallbackNonPtrArgTask(CB* callback, const CBArg& arg)
: m_callback(callback)
{
}
- virtual void performTask(ExecutionContext*) OVERRIDE
+ virtual void performTask(ExecutionContext*) override
{
m_callback->handleEvent(m_callbackArg);
}
};
template <typename CB>
- class DispatchCallbackNoArgTask FINAL : public DispatchCallbackTaskBase {
+ class DispatchCallbackNoArgTask final : public DispatchCallbackTaskBase {
public:
DispatchCallbackNoArgTask(CB* callback)
: m_callback(callback)
{
}
- virtual void performTask(ExecutionContext*) OVERRIDE
+ virtual void performTask(ExecutionContext*) override
{
m_callback->handleEvent();
}
executionContext->postTask(adoptPtr(new DispatchCallbackNonPtrArgTask<CB, CBArg>(callback, arg)));
}
+template <typename CB, typename CBArg>
+void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* callback, const Member<CBArg>& arg)
+{
+ ASSERT(executionContext->isContextThread());
+ if (callback)
+ executionContext->postTask(adoptPtr(new DispatchCallbackNonPtrArgTask<CB, Persistent<CBArg> >(callback, arg)));
+}
+
template <typename CB>
void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* callback)
{