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 12 class Profile; 13 class TabModel; 14 15 // Stores a list of all TabModel objects. 16 class 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