InspectorDatabaseAgent.h [plain text]
#ifndef InspectorDatabaseAgent_h
#define InspectorDatabaseAgent_h
#if ENABLE(INSPECTOR) && ENABLE(SQL_DATABASE)
#include "InspectorBaseAgent.h"
#include "InspectorFrontend.h"
#include <wtf/HashMap.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class Database;
class InspectorArray;
class InspectorDatabaseResource;
class InspectorFrontend;
class InspectorState;
class InstrumentingAgents;
typedef String ErrorString;
class InspectorDatabaseAgent : public InspectorBaseAgent<InspectorDatabaseAgent>, public InspectorBackendDispatcher::DatabaseCommandHandler {
public:
static PassOwnPtr<InspectorDatabaseAgent> create(InstrumentingAgents* instrumentingAgents, InspectorCompositeState* state)
{
return adoptPtr(new InspectorDatabaseAgent(instrumentingAgents, state));
}
~InspectorDatabaseAgent();
virtual void setFrontend(InspectorFrontend*);
virtual void clearFrontend();
virtual void restore();
void clearResources();
virtual void enable(ErrorString*);
virtual void disable(ErrorString*);
virtual void getDatabaseTableNames(ErrorString*, const String& databaseId, RefPtr<TypeBuilder::Array<String> >& names);
virtual void executeSQL(ErrorString*, const String& databaseId, const String& query, PassRefPtr<ExecuteSQLCallback>);
String databaseId(Database*);
void didOpenDatabase(PassRefPtr<Database>, const String& domain, const String& name, const String& version);
private:
explicit InspectorDatabaseAgent(InstrumentingAgents*, InspectorCompositeState*);
Database* databaseForId(const String& databaseId);
InspectorDatabaseResource* findByFileName(const String& fileName);
InspectorFrontend::Database* m_frontend;
typedef HashMap<String, RefPtr<InspectorDatabaseResource> > DatabaseResourcesMap;
DatabaseResourcesMap m_resources;
bool m_enabled;
};
}
#endif // ENABLE(INSPECTOR) && ENABLE(SQL_DATABASE)
#endif // !defined(InspectorDatabaseAgent_h)