WorkerAsyncFileWriterChromium.cpp [plain text]
#include "config.h"
#include "WorkerAsyncFileWriterChromium.h"
#if ENABLE(FILE_SYSTEM) && ENABLE(WORKERS)
#include "AsyncFileSystem.h"
#include "Blob.h"
#include "ScriptExecutionContext.h"
#include "platform/WebFileSystem.h"
#include "WebFileWriter.h"
#include "platform/WebURL.h"
#include "WebWorkerBase.h"
#include "WorkerContext.h"
#include "WorkerFileWriterCallbacksBridge.h"
#include "WorkerLoaderProxy.h"
#include "WorkerThread.h"
#include <wtf/Assertions.h>
using namespace WebKit;
namespace WebCore {
WorkerAsyncFileWriterChromium::WorkerAsyncFileWriterChromium(WebFileSystem* webFileSystem, const WebURL& path, WorkerContext* workerContext, AsyncFileWriterClient* client, WriterType type)
: m_type(type)
{
ASSERT(m_type == Asynchronous);
WorkerLoaderProxy* proxy = &workerContext->thread()->workerLoaderProxy();
m_bridge = WorkerFileWriterCallbacksBridge::create(path, proxy, workerContext, client);
}
WorkerAsyncFileWriterChromium::~WorkerAsyncFileWriterChromium()
{
m_bridge->postShutdownToMainThread(m_bridge);
}
bool WorkerAsyncFileWriterChromium::waitForOperationToComplete()
{
return m_bridge->waitForOperationToComplete();
}
void WorkerAsyncFileWriterChromium::write(long long position, Blob* data)
{
m_bridge->postWriteToMainThread(position, data->url());
}
void WorkerAsyncFileWriterChromium::truncate(long long length)
{
m_bridge->postTruncateToMainThread(length);
}
void WorkerAsyncFileWriterChromium::abort()
{
m_bridge->postAbortToMainThread();
}
}
#endif // ENABLE(FILE_SYSTEM)