Home | History | Annotate | Download | only in tab_model
      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 namespace chrome {
     16 struct NavigateParams;
     17 }
     18 
     19 // Stores a list of all TabModel objects.
     20 class 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