summaryrefslogtreecommitdiff
path: root/Source/WebCore/Modules/webdatabase/SQLStatement.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/Modules/webdatabase/SQLStatement.h')
-rw-r--r--Source/WebCore/Modules/webdatabase/SQLStatement.h55
1 files changed, 28 insertions, 27 deletions
diff --git a/Source/WebCore/Modules/webdatabase/SQLStatement.h b/Source/WebCore/Modules/webdatabase/SQLStatement.h
index 4fdb2dab1..239ea933c 100644
--- a/Source/WebCore/Modules/webdatabase/SQLStatement.h
+++ b/Source/WebCore/Modules/webdatabase/SQLStatement.h
@@ -10,7 +10,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * 3. Neither the name of Apple Inc. ("Apple") nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
@@ -20,19 +20,17 @@
* DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef SQLStatement_h
-#define SQLStatement_h
-#if ENABLE(SQL_DATABASE)
+#pragma once
-#include "AbstractSQLStatement.h"
#include "SQLCallbackWrapper.h"
-#include "SQLResultSet.h"
+#include "SQLStatementCallback.h"
+#include "SQLStatementErrorCallback.h"
#include "SQLValue.h"
#include <wtf/Forward.h>
#include <wtf/Vector.h>
@@ -40,39 +38,42 @@
namespace WebCore {
-class AbstractSQLStatementBackend;
class Database;
class SQLError;
-class SQLStatementCallback;
-class SQLStatementErrorCallback;
-class SQLTransaction;
+class SQLResultSet;
+class SQLTransactionBackend;
-class SQLStatement : public AbstractSQLStatement {
+class SQLStatement {
public:
- static PassOwnPtr<SQLStatement> create(Database*,
- PassRefPtr<SQLStatementCallback>, PassRefPtr<SQLStatementErrorCallback>);
+ SQLStatement(Database&, const String&, Vector<SQLValue>&&, RefPtr<SQLStatementCallback>&&, RefPtr<SQLStatementErrorCallback>&&, int permissions);
+ ~SQLStatement();
+ bool execute(Database&);
+ bool lastExecutionFailedDueToQuota() const;
+
+ bool hasStatementCallback() const { return m_statementCallbackWrapper.hasCallback(); }
+ bool hasStatementErrorCallback() const { return m_statementErrorCallbackWrapper.hasCallback(); }
bool performCallback(SQLTransaction*);
- virtual void setBackend(AbstractSQLStatementBackend*);
+ void setDatabaseDeletedError();
+ void setVersionMismatchedError();
- virtual bool hasCallback();
- virtual bool hasErrorCallback();
+ SQLError* sqlError() const;
+ SQLResultSet* sqlResultSet() const;
private:
- SQLStatement(Database*, PassRefPtr<SQLStatementCallback>, PassRefPtr<SQLStatementErrorCallback>);
-
- // The AbstractSQLStatementBackend owns the SQLStatement. Hence, the backend is
- // guaranteed to be outlive the SQLStatement, and it is safe for us to refer
- // to the backend using a raw pointer here.
- AbstractSQLStatementBackend* m_backend;
+ void setFailureDueToQuota();
+ void clearFailureDueToQuota();
+ String m_statement;
+ Vector<SQLValue> m_arguments;
SQLCallbackWrapper<SQLStatementCallback> m_statementCallbackWrapper;
SQLCallbackWrapper<SQLStatementErrorCallback> m_statementErrorCallbackWrapper;
-};
-} // namespace WebCore
+ RefPtr<SQLError> m_error;
+ RefPtr<SQLResultSet> m_resultSet;
-#endif // ENABLE(SQL_DATABASE)
+ int m_permissions;
+};
-#endif // SQLStatement_h
+} // namespace WebCore