#ifndef UI_ACCESSIBILITY_PLATFORM_AX_NODE_ID_DELEGATE_H_
#define UI_ACCESSIBILITY_PLATFORM_AX_NODE_ID_DELEGATE_H_
#include "base/component_export.h"
#include "base/types/pass_key.h"
#include "ui/accessibility/ax_node_id_forward.h"
#include "ui/accessibility/platform/ax_platform_node_id.h"
namespace ui {
class COMPONENT_EXPORT(AX_PLATFORM) AXNodeIdDelegate {
public:
AXNodeIdDelegate(const AXNodeIdDelegate&) = delete;
AXNodeIdDelegate& operator=(const AXNodeIdDelegate&) = delete;
virtual ~AXNodeIdDelegate() = default;
virtual AXPlatformNodeId GetOrCreateAXNodeUniqueId(AXNodeID ax_node_id) = 0;
virtual void OnAXNodeDeleted(AXNodeID ax_node_id) = 0;
protected:
using PassKey = base::PassKey<AXNodeIdDelegate>;
AXNodeIdDelegate() = default;
static constexpr PassKey MakePassKey() { return PassKey(); }
};
}
#endif