diff options
author | Steve Block <steveblock@google.com> | 2011-05-18 13:36:51 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-05-24 15:38:28 +0100 |
commit | 2fc2651226baac27029e38c9d6ef883fa32084db (patch) | |
tree | e396d4bf89dcce6ed02071be66212495b1df1dec /Source/WebCore/storage/IDBTransaction.h | |
parent | b3725cedeb43722b3b175aaeff70552e562d2c94 (diff) | |
download | external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.zip external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.gz external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.bz2 |
Merge WebKit at r78450: Initial merge by git.
Change-Id: I6d3e5f1f868ec266a0aafdef66182ddc3f265dc1
Diffstat (limited to 'Source/WebCore/storage/IDBTransaction.h')
-rw-r--r-- | Source/WebCore/storage/IDBTransaction.h | 35 |
1 files changed, 16 insertions, 19 deletions
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 <wtf/RefCounted.h> namespace WebCore { @@ -45,10 +45,7 @@ class IDBObjectStore; class IDBTransaction : public IDBTransactionCallbacks, public EventTarget, public ActiveDOMObject { public: - static PassRefPtr<IDBTransaction> create(ScriptExecutionContext* context, PassRefPtr<IDBTransactionBackendInterface> backend, IDBDatabase* db) - { - return adoptRef(new IDBTransaction(context, backend, db)); - } + static PassRefPtr<IDBTransaction> create(ScriptExecutionContext*, PassRefPtr<IDBTransactionBackendInterface>, 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<IDBObjectStore> 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<Event>); + bool dispatchEvent(PassRefPtr<Event> 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<IDBTransactionCallbacks>::ref; using RefCounted<IDBTransactionCallbacks>::deref; @@ -85,25 +87,20 @@ public: private: IDBTransaction(ScriptExecutionContext*, PassRefPtr<IDBTransactionBackendInterface>, IDBDatabase*); + void enqueueEvent(PassRefPtr<Event>); + // EventTarget virtual void refEventTarget() { ref(); } virtual void derefEventTarget() { deref(); } virtual EventTargetData* eventTargetData(); virtual EventTargetData* ensureEventTargetData(); - void onAbortTimerFired(Timer<IDBTransaction>*); - void onCompleteTimerFired(Timer<IDBTransaction>*); - void onTimeoutTimerFired(Timer<IDBTransaction>*); - - EventTargetData m_eventTargetData; RefPtr<IDBTransactionBackendInterface> m_backend; RefPtr<IDBDatabase> 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<IDBTransaction> m_onAbortTimer; - Timer<IDBTransaction> m_onCompleteTimer; - Timer<IDBTransaction> m_onTimeoutTimer; - RefPtr<IDBTransaction> m_selfRef; // This is set to us iff there's an event pending. + EventTargetData m_eventTargetData; }; } // namespace WebCore |