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