From 2fc2651226baac27029e38c9d6ef883fa32084db Mon Sep 17 00:00:00 2001 From: Steve Block Date: Wed, 18 May 2011 13:36:51 +0100 Subject: Merge WebKit at r78450: Initial merge by git. Change-Id: I6d3e5f1f868ec266a0aafdef66182ddc3f265dc1 --- Source/WebCore/storage/IDBTransaction.h | 35 +++++++++++++++------------------ 1 file changed, 16 insertions(+), 19 deletions(-) (limited to 'Source/WebCore/storage/IDBTransaction.h') diff --git a/Source/WebCore/storage/IDBTransaction.h b/Source/WebCore/storage/IDBTransaction.h index d0a9f0f..ff4feb6 100644 --- a/Source/WebCore/storage/IDBTransaction.h +++ b/Source/WebCore/storage/IDBTransaction.h @@ -30,12 +30,12 @@ #include "ActiveDOMObject.h" #include "DOMStringList.h" +#include "Event.h" #include "EventListener.h" #include "EventNames.h" #include "EventTarget.h" #include "IDBTransactionBackendInterface.h" #include "IDBTransactionCallbacks.h" -#include "Timer.h" #include namespace WebCore { @@ -45,10 +45,7 @@ class IDBObjectStore; class IDBTransaction : public IDBTransactionCallbacks, public EventTarget, public ActiveDOMObject { public: - static PassRefPtr create(ScriptExecutionContext* context, PassRefPtr backend, IDBDatabase* db) - { - return adoptRef(new IDBTransaction(context, backend, db)); - } + static PassRefPtr create(ScriptExecutionContext*, PassRefPtr, IDBDatabase*); virtual ~IDBTransaction(); enum Mode { @@ -57,27 +54,32 @@ public: VERSION_CHANGE = 2 }; + IDBTransactionBackendInterface* backend() const; + bool finished() const; + unsigned short mode() const; - IDBDatabase* db(); + IDBDatabase* db() const; PassRefPtr objectStore(const String& name, ExceptionCode&); void abort(); DEFINE_ATTRIBUTE_EVENT_LISTENER(abort); DEFINE_ATTRIBUTE_EVENT_LISTENER(complete); - DEFINE_ATTRIBUTE_EVENT_LISTENER(timeout); + DEFINE_ATTRIBUTE_EVENT_LISTENER(error); // IDBTransactionCallbacks virtual void onAbort(); virtual void onComplete(); - virtual void onTimeout(); // EventTarget virtual IDBTransaction* toIDBTransaction() { return this; } + virtual ScriptExecutionContext* scriptExecutionContext() const; + virtual bool dispatchEvent(PassRefPtr); + bool dispatchEvent(PassRefPtr event, ExceptionCode& ec) { return EventTarget::dispatchEvent(event, ec); } // ActiveDOMObject - virtual ScriptExecutionContext* scriptExecutionContext() const; + virtual bool hasPendingActivity() const; virtual bool canSuspend() const; - virtual void stop(); + virtual void contextDestroyed(); using RefCounted::ref; using RefCounted::deref; @@ -85,25 +87,20 @@ public: private: IDBTransaction(ScriptExecutionContext*, PassRefPtr, IDBDatabase*); + void enqueueEvent(PassRefPtr); + // EventTarget virtual void refEventTarget() { ref(); } virtual void derefEventTarget() { deref(); } virtual EventTargetData* eventTargetData(); virtual EventTargetData* ensureEventTargetData(); - void onAbortTimerFired(Timer*); - void onCompleteTimerFired(Timer*); - void onTimeoutTimerFired(Timer*); - - EventTargetData m_eventTargetData; RefPtr m_backend; RefPtr m_database; unsigned short m_mode; + bool m_finished; // Is it possible that we'll fire any more events or allow any new transactions? If not, we're finished. - Timer m_onAbortTimer; - Timer m_onCompleteTimer; - Timer m_onTimeoutTimer; - RefPtr m_selfRef; // This is set to us iff there's an event pending. + EventTargetData m_eventTargetData; }; } // namespace WebCore -- cgit v1.1