1 // Copyright 2014 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_AUTOFILL_VALIDATION_RULES_STORAGE_FACTORY_H_ 6 #define CHROME_BROWSER_AUTOFILL_VALIDATION_RULES_STORAGE_FACTORY_H_ 7 8 #include "base/basictypes.h" 9 #include "base/lazy_instance.h" 10 #include "base/memory/ref_counted.h" 11 #include "base/memory/scoped_ptr.h" 12 13 namespace i18n { 14 namespace addressinput { 15 class Storage; 16 } 17 } 18 19 class JsonPrefStore; 20 class PersistentPrefStore; 21 22 namespace autofill { 23 24 // Creates Storage objects, all of which are backed by a common pref store. 25 class ValidationRulesStorageFactory { 26 public: 27 static scoped_ptr< ::i18n::addressinput::Storage> CreateStorage(); 28 29 private: 30 friend struct base::DefaultLazyInstanceTraits<ValidationRulesStorageFactory>; 31 32 ValidationRulesStorageFactory(); 33 ~ValidationRulesStorageFactory(); 34 35 scoped_refptr<JsonPrefStore> json_pref_store_; 36 37 DISALLOW_COPY_AND_ASSIGN(ValidationRulesStorageFactory); 38 }; 39 40 } // namespace autofill 41 42 #endif // CHROME_BROWSER_AUTOFILL_VALIDATION_RULES_STORAGE_FACTORY_H_ 43