tab_model_list.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
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
15// Stores a list of all TabModel objects.
16class TabModelList {
17 public:
18  typedef std::vector<TabModel*> TabModelVector;
19  typedef TabModelVector::iterator iterator;
20  typedef TabModelVector::const_iterator const_iterator;
21
22  static void AddTabModel(TabModel* tab_model);
23  static void RemoveTabModel(TabModel* tab_model);
24
25  static TabModel* GetTabModelWithProfile(Profile* profile);
26  static TabModel* FindTabModelWithId(SessionID::id_type desired_id);
27  static bool IsOffTheRecordSessionActive();
28
29  static const_iterator begin();
30  static const_iterator end();
31  static bool empty();
32  static size_t size();
33
34 private:
35  DISALLOW_IMPLICIT_CONSTRUCTORS(TabModelList);
36};
37
38#endif  // CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_
39