#ifndef COMPONENTS_SERVICES_STORAGE_ORIGIN_CONTEXT_IMPL_H_
#define COMPONENTS_SERVICES_STORAGE_ORIGIN_CONTEXT_IMPL_H_
#include "base/memory/raw_ptr.h"
#include "components/services/storage/public/mojom/origin_context.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "url/origin.h"
namespace storage {
class PartitionImpl;
class OriginContextImpl : public mojom::OriginContext {
public:
OriginContextImpl(PartitionImpl* partition, const url::Origin& origin);
OriginContextImpl(const OriginContextImpl&) = delete;
OriginContextImpl& operator=(const OriginContextImpl&) = delete;
~OriginContextImpl() override;
const mojo::ReceiverSet<mojom::OriginContext>& receivers() const {
return receivers_;
}
void BindReceiver(mojo::PendingReceiver<mojom::OriginContext> receiver);
private:
void OnDisconnect();
const raw_ptr<PartitionImpl> partition_;
const url::Origin origin_;
mojo::ReceiverSet<mojom::OriginContext> receivers_;
};
}
#endif