ax_tree_manager_map.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef UI_ACCESSIBILITY_AX_TREE_MANAGER_MAP_H_
  5. #define UI_ACCESSIBILITY_AX_TREE_MANAGER_MAP_H_
  6. #include "base/containers/flat_map.h"
  7. #include "ui/accessibility/ax_tree_id.h"
  8. #include "ui/accessibility/ax_tree_manager.h"
  9. namespace ui {
  10. // This class manages AXTreeManager instances. It is a wrapper around a
  11. // base::flat_map. AXTreeID's are used as the key for the map. Since AXTreeID's
  12. // might refer to AXTreeIDUnknown, callers should not expect AXTreeIDUnknown to
  13. // map to a particular AXTreeManager.
  14. class AX_EXPORT AXTreeManagerMap {
  15. public:
  16. AXTreeManagerMap();
  17. ~AXTreeManagerMap();
  18. AXTreeManagerMap(const AXTreeManagerMap& map) = delete;
  19. AXTreeManagerMap& operator=(const AXTreeManagerMap& map) = delete;
  20. void AddTreeManager(const AXTreeID& tree_id, AXTreeManager* manager);
  21. void RemoveTreeManager(const AXTreeID& tree_id);
  22. AXTreeManager* GetManager(const AXTreeID& tree_id);
  23. private:
  24. base::flat_map<AXTreeID, AXTreeManager*> map_;
  25. };
  26. } // namespace ui
  27. #endif // UI_ACCESSIBILITY_AX_TREE_MANAGER_MAP_H_