17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#ifndef CHROME_BROWSER_FLAGS_STORAGE_H_ 67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#define CHROME_BROWSER_FLAGS_STORAGE_H_ 77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include <set> 97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include <string> 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace about_flags { 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Base class for flags storage implementations. Enables the about_flags 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// functions to store and retrieve data from various sources like PrefService 157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// and CrosSettings. 167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)class FlagsStorage { 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) public: 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual ~FlagsStorage() {} 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Retrieves the flags as a set of strings. 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual std::set<std::string> GetFlags() = 0; 227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Stores the |flags| and returns true on success. 23d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual bool SetFlags(const std::set<std::string>& flags) = 0; 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace about_flags 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif // CHROME_BROWSER_FLAGS_STORAGE_H_ 29