tab_model_list.h revision 424c4d7b64af9d0d8fd9624f381f469654d5e3d2
1// Copyright (c) 2012 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
5#ifndef CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_
6#define CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_
7
8#include <vector>
9
10#include "chrome/browser/sessions/session_id.h"
11
12class Profile;
13class TabModel;
14
15namespace chrome {
16struct NavigateParams;
17}
18
19// Stores a list of all TabModel objects.
20class TabModelList {
21 public:
22  typedef std::vector<TabModel*> TabModelVector;
23  typedef TabModelVector::iterator iterator;
24  typedef TabModelVector::const_iterator const_iterator;
25
26  static void HandlePopupNavigation(chrome::NavigateParams* params);
27  static void AddTabModel(TabModel* tab_model);
28  static void RemoveTabModel(TabModel* tab_model);
29
30  static TabModel* GetTabModelWithProfile(Profile* profile);
31  static TabModel* FindTabModelWithId(SessionID::id_type desired_id);
32  static bool IsOffTheRecordSessionActive();
33
34  static const_iterator begin();
35  static const_iterator end();
36  static bool empty();
37  static size_t size();
38
39 private:
40  DISALLOW_IMPLICIT_CONSTRUCTORS(TabModelList);
41};
42
43#endif  // CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_
44