tab_model_list.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian// Use of this source code is governed by a BSD-style license that can be
3b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian// found in the LICENSE file.
4b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
5b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian#ifndef CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_
6b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian#define CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_
7b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
8b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian#include <vector>
9b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
10b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian#include "chrome/browser/sessions/session_id.h"
11b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
12b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanianclass Profile;
13b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanianclass TabModel;
14b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
15b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian// Stores a list of all TabModel objects.
16b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanianclass TabModelList {
17b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian public:
18b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  typedef std::vector<TabModel*> TabModelVector;
19b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  typedef TabModelVector::iterator iterator;
20b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  typedef TabModelVector::const_iterator const_iterator;
21b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
22b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  static void AddTabModel(TabModel* tab_model);
23b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  static void RemoveTabModel(TabModel* tab_model);
24b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
25b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  static TabModel* GetTabModelWithProfile(Profile* profile);
26b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  static TabModel* FindTabModelWithId(SessionID::id_type desired_id);
27b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  static bool IsOffTheRecordSessionActive();
28b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
29b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  static const_iterator begin();
30b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  static const_iterator end();
31b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  static bool empty();
32b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  static size_t size();
33b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
34b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian private:
35b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian  DISALLOW_IMPLICIT_CONSTRUCTORS(TabModelList);
36b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian};
37b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian
38b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian#endif  // CHROME_BROWSER_UI_ANDROID_TAB_MODEL_TAB_MODEL_LIST_H_
39b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian