Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Side by Side Diff: Source/core/inspector/InspectorDatabaseAgent.cpp

Issue 103473002: Manage WebSQL callbacks with OwnPtr instead of refcounting (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix RefPtr/OwnPtr transition gcc errors Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 void reportTransactionFailed(ExecuteSQLCallback* requestCallback, SQLError* erro r) 63 void reportTransactionFailed(ExecuteSQLCallback* requestCallback, SQLError* erro r)
64 { 64 {
65 RefPtr<TypeBuilder::Database::Error> errorObject = TypeBuilder::Database::Er ror::create() 65 RefPtr<TypeBuilder::Database::Error> errorObject = TypeBuilder::Database::Er ror::create()
66 .setMessage(error->message()) 66 .setMessage(error->message())
67 .setCode(error->code()); 67 .setCode(error->code());
68 requestCallback->sendSuccess(0, 0, errorObject.release()); 68 requestCallback->sendSuccess(0, 0, errorObject.release());
69 } 69 }
70 70
71 class StatementCallback : public SQLStatementCallback { 71 class StatementCallback : public SQLStatementCallback {
72 public: 72 public:
73 static PassRefPtr<StatementCallback> create(PassRefPtr<ExecuteSQLCallback> r equestCallback) 73 static PassOwnPtr<StatementCallback> create(PassRefPtr<ExecuteSQLCallback> r equestCallback)
74 { 74 {
75 return adoptRef(new StatementCallback(requestCallback)); 75 return adoptPtr(new StatementCallback(requestCallback));
76 } 76 }
77 77
78 virtual ~StatementCallback() { } 78 virtual ~StatementCallback() { }
79 79
80 virtual bool handleEvent(SQLTransaction*, SQLResultSet* resultSet) 80 virtual bool handleEvent(SQLTransaction*, SQLResultSet* resultSet)
81 { 81 {
82 SQLResultSetRowList* rowList = resultSet->rows(); 82 SQLResultSetRowList* rowList = resultSet->rows();
83 83
84 RefPtr<TypeBuilder::Array<String> > columnNames = TypeBuilder::Array<Str ing>::create(); 84 RefPtr<TypeBuilder::Array<String> > columnNames = TypeBuilder::Array<Str ing>::create();
85 const Vector<String>& columns = rowList->columnNames(); 85 const Vector<String>& columns = rowList->columnNames();
(...skipping 15 matching lines...) Expand all
101 } 101 }
102 102
103 private: 103 private:
104 StatementCallback(PassRefPtr<ExecuteSQLCallback> requestCallback) 104 StatementCallback(PassRefPtr<ExecuteSQLCallback> requestCallback)
105 : m_requestCallback(requestCallback) { } 105 : m_requestCallback(requestCallback) { }
106 RefPtr<ExecuteSQLCallback> m_requestCallback; 106 RefPtr<ExecuteSQLCallback> m_requestCallback;
107 }; 107 };
108 108
109 class StatementErrorCallback : public SQLStatementErrorCallback { 109 class StatementErrorCallback : public SQLStatementErrorCallback {
110 public: 110 public:
111 static PassRefPtr<StatementErrorCallback> create(PassRefPtr<ExecuteSQLCallba ck> requestCallback) 111 static PassOwnPtr<StatementErrorCallback> create(PassRefPtr<ExecuteSQLCallba ck> requestCallback)
112 { 112 {
113 return adoptRef(new StatementErrorCallback(requestCallback)); 113 return adoptPtr(new StatementErrorCallback(requestCallback));
114 } 114 }
115 115
116 virtual ~StatementErrorCallback() { } 116 virtual ~StatementErrorCallback() { }
117 117
118 virtual bool handleEvent(SQLTransaction*, SQLError* error) 118 virtual bool handleEvent(SQLTransaction*, SQLError* error)
119 { 119 {
120 reportTransactionFailed(m_requestCallback.get(), error); 120 reportTransactionFailed(m_requestCallback.get(), error);
121 return true; 121 return true;
122 } 122 }
123 123
124 private: 124 private:
125 StatementErrorCallback(PassRefPtr<ExecuteSQLCallback> requestCallback) 125 StatementErrorCallback(PassRefPtr<ExecuteSQLCallback> requestCallback)
126 : m_requestCallback(requestCallback) { } 126 : m_requestCallback(requestCallback) { }
127 RefPtr<ExecuteSQLCallback> m_requestCallback; 127 RefPtr<ExecuteSQLCallback> m_requestCallback;
128 }; 128 };
129 129
130 class TransactionCallback : public SQLTransactionCallback { 130 class TransactionCallback : public SQLTransactionCallback {
131 public: 131 public:
132 static PassRefPtr<TransactionCallback> create(const String& sqlStatement, Pa ssRefPtr<ExecuteSQLCallback> requestCallback) 132 static PassOwnPtr<TransactionCallback> create(const String& sqlStatement, Pa ssRefPtr<ExecuteSQLCallback> requestCallback)
133 { 133 {
134 return adoptRef(new TransactionCallback(sqlStatement, requestCallback)); 134 return adoptPtr(new TransactionCallback(sqlStatement, requestCallback));
135 } 135 }
136 136
137 virtual ~TransactionCallback() { } 137 virtual ~TransactionCallback() { }
138 138
139 virtual bool handleEvent(SQLTransaction* transaction) 139 virtual bool handleEvent(SQLTransaction* transaction)
140 { 140 {
141 if (!m_requestCallback->isActive()) 141 if (!m_requestCallback->isActive())
142 return true; 142 return true;
143 143
144 Vector<SQLValue> sqlValues; 144 Vector<SQLValue> sqlValues;
145 RefPtr<SQLStatementCallback> callback(StatementCallback::create(m_reques tCallback.get())); 145 OwnPtr<SQLStatementCallback> callback(StatementCallback::create(m_reques tCallback.get()));
146 RefPtr<SQLStatementErrorCallback> errorCallback(StatementErrorCallback:: create(m_requestCallback.get())); 146 OwnPtr<SQLStatementErrorCallback> errorCallback(StatementErrorCallback:: create(m_requestCallback.get()));
147 transaction->executeSQL(m_sqlStatement, sqlValues, callback.release(), e rrorCallback.release(), IGNORE_EXCEPTION); 147 transaction->executeSQL(m_sqlStatement, sqlValues, callback.release(), e rrorCallback.release(), IGNORE_EXCEPTION);
148 return true; 148 return true;
149 } 149 }
150 private: 150 private:
151 TransactionCallback(const String& sqlStatement, PassRefPtr<ExecuteSQLCallbac k> requestCallback) 151 TransactionCallback(const String& sqlStatement, PassRefPtr<ExecuteSQLCallbac k> requestCallback)
152 : m_sqlStatement(sqlStatement) 152 : m_sqlStatement(sqlStatement)
153 , m_requestCallback(requestCallback) { } 153 , m_requestCallback(requestCallback) { }
154 String m_sqlStatement; 154 String m_sqlStatement;
155 RefPtr<ExecuteSQLCallback> m_requestCallback; 155 RefPtr<ExecuteSQLCallback> m_requestCallback;
156 }; 156 };
157 157
158 class TransactionErrorCallback : public SQLTransactionErrorCallback { 158 class TransactionErrorCallback : public SQLTransactionErrorCallback {
159 public: 159 public:
160 static PassRefPtr<TransactionErrorCallback> create(PassRefPtr<ExecuteSQLCall back> requestCallback) 160 static PassOwnPtr<TransactionErrorCallback> create(PassRefPtr<ExecuteSQLCall back> requestCallback)
161 { 161 {
162 return adoptRef(new TransactionErrorCallback(requestCallback)); 162 return adoptPtr(new TransactionErrorCallback(requestCallback));
163 } 163 }
164 164
165 virtual ~TransactionErrorCallback() { } 165 virtual ~TransactionErrorCallback() { }
166 166
167 virtual bool handleEvent(SQLError* error) 167 virtual bool handleEvent(SQLError* error)
168 { 168 {
169 reportTransactionFailed(m_requestCallback.get(), error); 169 reportTransactionFailed(m_requestCallback.get(), error);
170 return true; 170 return true;
171 } 171 }
172 private: 172 private:
173 TransactionErrorCallback(PassRefPtr<ExecuteSQLCallback> requestCallback) 173 TransactionErrorCallback(PassRefPtr<ExecuteSQLCallback> requestCallback)
174 : m_requestCallback(requestCallback) { } 174 : m_requestCallback(requestCallback) { }
175 RefPtr<ExecuteSQLCallback> m_requestCallback; 175 RefPtr<ExecuteSQLCallback> m_requestCallback;
176 }; 176 };
177 177
178 class TransactionSuccessCallback : public SQLVoidCallback { 178 class TransactionSuccessCallback : public SQLVoidCallback {
179 public: 179 public:
180 static PassRefPtr<TransactionSuccessCallback> create() 180 static PassOwnPtr<TransactionSuccessCallback> create()
181 { 181 {
182 return adoptRef(new TransactionSuccessCallback()); 182 return adoptPtr(new TransactionSuccessCallback());
183 } 183 }
184 184
185 virtual ~TransactionSuccessCallback() { } 185 virtual ~TransactionSuccessCallback() { }
186 186
187 virtual bool handleEvent() { return false; } 187 virtual bool handleEvent() { return false; }
188 188
189 private: 189 private:
190 TransactionSuccessCallback() { } 190 TransactionSuccessCallback() { }
191 }; 191 };
192 192
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 requestCallback->sendFailure("Database agent is not enabled"); 289 requestCallback->sendFailure("Database agent is not enabled");
290 return; 290 return;
291 } 291 }
292 292
293 Database* database = databaseForId(databaseId); 293 Database* database = databaseForId(databaseId);
294 if (!database) { 294 if (!database) {
295 requestCallback->sendFailure("Database not found"); 295 requestCallback->sendFailure("Database not found");
296 return; 296 return;
297 } 297 }
298 298
299 RefPtr<SQLTransactionCallback> callback(TransactionCallback::create(query, r equestCallback.get())); 299 OwnPtr<SQLTransactionCallback> callback(TransactionCallback::create(query, r equestCallback.get()));
300 RefPtr<SQLTransactionErrorCallback> errorCallback(TransactionErrorCallback:: create(requestCallback.get())); 300 OwnPtr<SQLTransactionErrorCallback> errorCallback(TransactionErrorCallback:: create(requestCallback.get()));
301 RefPtr<SQLVoidCallback> successCallback(TransactionSuccessCallback::create() ); 301 OwnPtr<SQLVoidCallback> successCallback(TransactionSuccessCallback::create() );
302 database->transaction(callback.release(), errorCallback.release(), successCa llback.release()); 302 database->transaction(callback.release(), errorCallback.release(), successCa llback.release());
303 } 303 }
304 304
305 String InspectorDatabaseAgent::databaseId(Database* database) 305 String InspectorDatabaseAgent::databaseId(Database* database)
306 { 306 {
307 for (DatabaseResourcesMap::iterator it = m_resources.begin(); it != m_resour ces.end(); ++it) { 307 for (DatabaseResourcesMap::iterator it = m_resources.begin(); it != m_resour ces.end(); ++it) {
308 if (it->value->database() == database) 308 if (it->value->database() == database)
309 return it->key; 309 return it->key;
310 } 310 }
311 return String(); 311 return String();
(...skipping 10 matching lines...) Expand all
322 322
323 Database* InspectorDatabaseAgent::databaseForId(const String& databaseId) 323 Database* InspectorDatabaseAgent::databaseForId(const String& databaseId)
324 { 324 {
325 DatabaseResourcesMap::iterator it = m_resources.find(databaseId); 325 DatabaseResourcesMap::iterator it = m_resources.find(databaseId);
326 if (it == m_resources.end()) 326 if (it == m_resources.end())
327 return 0; 327 return 0;
328 return it->value->database(); 328 return it->value->database();
329 } 329 }
330 330
331 } // namespace WebCore 331 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/bindings/v8/custom/V8SQLTransactionCustom.cpp ('k') | Source/modules/webdatabase/DOMWindowWebDatabase.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698