SQLStatementBackend.h [plain text]
#ifndef SQLStatementBackend_h
#define SQLStatementBackend_h
#if ENABLE(SQL_DATABASE)
#include "AbstractSQLStatementBackend.h"
#include "SQLValue.h"
#include <wtf/Forward.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class AbstractSQLStatement;
class DatabaseBackend;
class SQLError;
class SQLTransactionBackend;
class SQLStatementBackend : public AbstractSQLStatementBackend {
public:
static PassRefPtr<SQLStatementBackend> create(std::unique_ptr<AbstractSQLStatement>,
const String& sqlStatement, const Vector<SQLValue>& arguments, int permissions);
bool execute(DatabaseBackend*);
bool lastExecutionFailedDueToQuota() const;
bool hasStatementCallback() const { return m_hasCallback; }
bool hasStatementErrorCallback() const { return m_hasErrorCallback; }
void setDatabaseDeletedError();
void setVersionMismatchedError();
AbstractSQLStatement* frontend();
virtual PassRefPtr<SQLError> sqlError() const;
virtual PassRefPtr<SQLResultSet> sqlResultSet() const;
private:
SQLStatementBackend(std::unique_ptr<AbstractSQLStatement>, const String& statement,
const Vector<SQLValue>& arguments, int permissions);
void setFailureDueToQuota();
void clearFailureDueToQuota();
std::unique_ptr<AbstractSQLStatement> m_frontend;
String m_statement;
Vector<SQLValue> m_arguments;
bool m_hasCallback;
bool m_hasErrorCallback;
RefPtr<SQLError> m_error;
RefPtr<SQLResultSet> m_resultSet;
int m_permissions;
};
}
#endif // ENABLE(SQL_DATABASE)
#endif // SQLStatementBackend_h