ax_tree_manager_map.cc 1001 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. #include "ui/accessibility/ax_tree_manager_map.h"
  5. #include "base/containers/contains.h"
  6. namespace ui {
  7. AXTreeManagerMap::AXTreeManagerMap() = default;
  8. AXTreeManagerMap::~AXTreeManagerMap() = default;
  9. void AXTreeManagerMap::AddTreeManager(const AXTreeID& tree_id,
  10. AXTreeManager* manager) {
  11. if (tree_id != AXTreeIDUnknown())
  12. map_[tree_id] = manager;
  13. }
  14. void AXTreeManagerMap::RemoveTreeManager(const AXTreeID& tree_id) {
  15. if (auto* manager = GetManager(tree_id)) {
  16. manager->WillBeRemovedFromMap();
  17. map_.erase(tree_id);
  18. }
  19. }
  20. AXTreeManager* AXTreeManagerMap::GetManager(const AXTreeID& tree_id) {
  21. if (tree_id == AXTreeIDUnknown())
  22. return nullptr;
  23. auto iter = map_.find(tree_id);
  24. if (iter == map_.end())
  25. return nullptr;
  26. return iter->second;
  27. }
  28. } // namespace ui