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 // 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