synced_window_delegates_getter.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright 2014 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 COMPONENTS_SYNC_SESSIONS_SYNCED_WINDOW_DELEGATES_GETTER_H_
  5. #define COMPONENTS_SYNC_SESSIONS_SYNCED_WINDOW_DELEGATES_GETTER_H_
  6. #include <map>
  7. #include "components/sessions/core/session_id.h"
  8. namespace sync_sessions {
  9. class SyncedWindowDelegate;
  10. // An interface for accessing SyncedWindowDelegates. Subclasses define
  11. // how this is done on different platforms.
  12. class SyncedWindowDelegatesGetter {
  13. public:
  14. using SyncedWindowDelegateMap =
  15. std::map<SessionID, const SyncedWindowDelegate*>;
  16. SyncedWindowDelegatesGetter();
  17. SyncedWindowDelegatesGetter(const SyncedWindowDelegatesGetter&) = delete;
  18. SyncedWindowDelegatesGetter& operator=(const SyncedWindowDelegatesGetter&) =
  19. delete;
  20. virtual ~SyncedWindowDelegatesGetter();
  21. // Returns all SyncedWindowDelegate instances.
  22. virtual SyncedWindowDelegateMap GetSyncedWindowDelegates() = 0;
  23. // Find a SyncedWindowDelegate given its window's id.
  24. virtual const SyncedWindowDelegate* FindById(SessionID id) = 0;
  25. };
  26. } // namespace sync_sessions
  27. #endif // COMPONENTS_SYNC_SESSIONS_SYNCED_WINDOW_DELEGATES_GETTER_H_