1// Copyright (c) 2006-2008 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_AUTOMATION_AUTOMATION_PROVIDER_LIST_H_ 6#define CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_LIST_H_ 7 8#include <vector> 9#include "base/basictypes.h" 10 11class AutomationProvider; 12 13// Stores a list of all AutomationProvider objects. 14class AutomationProviderList { 15 public: 16 AutomationProviderList(); 17 ~AutomationProviderList(); 18 typedef std::vector<AutomationProvider*> list_type; 19 typedef list_type::iterator iterator; 20 typedef list_type::const_iterator const_iterator; 21 22 // Adds and removes automation providers from the global list. 23 bool AddProvider(AutomationProvider* provider); 24 bool RemoveProvider(AutomationProvider* provider); 25 26 const_iterator begin() { 27 return automation_providers_.begin(); 28 } 29 30 const_iterator end() { 31 return automation_providers_.end(); 32 } 33 34 size_t size() { 35 return automation_providers_.size(); 36 } 37 38 private: 39 void OnLastProviderRemoved(); 40 list_type automation_providers_; 41 42 DISALLOW_COPY_AND_ASSIGN(AutomationProviderList); 43}; 44 45#endif // CHROME_BROWSER_AUTOMATION_AUTOMATION_PROVIDER_LIST_H_ 46