IDBDatabaseNameAndVersionRequest.h [plain text]
#pragma once
#if ENABLE(INDEXED_DATABASE)
#include "IDBActiveDOMObject.h"
#include "IDBDatabaseNameAndVersion.h"
#include "IDBResourceIdentifier.h"
#include <wtf/Forward.h>
#include <wtf/Function.h>
#include <wtf/IsoMalloc.h>
#include <wtf/Ref.h>
#include <wtf/ThreadSafeRefCounted.h>
namespace WebCore {
class ScriptExecutionContext;
namespace IDBClient {
class IDBConnectionProxy;
}
class WEBCORE_EXPORT IDBDatabaseNameAndVersionRequest final : public ThreadSafeRefCounted<IDBDatabaseNameAndVersionRequest>, public IDBActiveDOMObject {
WTF_MAKE_ISO_ALLOCATED(IDBDatabaseNameAndVersionRequest);
public:
using InfoCallback = Function<void(Optional<Vector<IDBDatabaseNameAndVersion>>&&)>;
static Ref<IDBDatabaseNameAndVersionRequest> create(ScriptExecutionContext&, IDBClient::IDBConnectionProxy&, InfoCallback&&);
~IDBDatabaseNameAndVersionRequest();
const IDBResourceIdentifier& resourceIdentifier() const;
using ThreadSafeRefCounted<IDBDatabaseNameAndVersionRequest>::ref;
using ThreadSafeRefCounted<IDBDatabaseNameAndVersionRequest>::deref;
void complete(Optional<Vector<IDBDatabaseNameAndVersion>>&&);
private:
IDBDatabaseNameAndVersionRequest(ScriptExecutionContext&, IDBClient::IDBConnectionProxy&, InfoCallback&&);
bool virtualHasPendingActivity() const final;
const char* activeDOMObjectName() const final;
void stop() final;
Ref<IDBClient::IDBConnectionProxy> m_connectionProxy;
IDBResourceIdentifier m_resourceIdentifier;
InfoCallback m_callback;
};
inline const IDBResourceIdentifier& IDBDatabaseNameAndVersionRequest::resourceIdentifier() const
{
return m_resourceIdentifier;
}
inline IDBDatabaseNameAndVersionRequest::~IDBDatabaseNameAndVersionRequest()
{
ASSERT(canCurrentThreadAccessThreadLocalData(originThread()));
}
}
#endif // ENABLE(INDEXED_DATABASE)