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 RLZ_WIN_LIB_RLZ_VALUE_STORE_REGISTRY_H_ 6 #define RLZ_WIN_LIB_RLZ_VALUE_STORE_REGISTRY_H_ 7 8 #include "base/compiler_specific.h" 9 #include "rlz/lib/rlz_value_store.h" 10 11 namespace rlz_lib { 12 13 // Implements RlzValueStore by storing values in the windows registry. 14 class RlzValueStoreRegistry : public RlzValueStore { 15 public: 16 static std::wstring GetWideLibKeyName(); 17 18 virtual bool HasAccess(AccessType type) OVERRIDE; 19 20 virtual bool WritePingTime(Product product, int64 time) OVERRIDE; 21 virtual bool ReadPingTime(Product product, int64* time) OVERRIDE; 22 virtual bool ClearPingTime(Product product) OVERRIDE; 23 24 virtual bool WriteAccessPointRlz(AccessPoint access_point, 25 const char* new_rlz) OVERRIDE; 26 virtual bool ReadAccessPointRlz(AccessPoint access_point, 27 char* rlz, 28 size_t rlz_size) OVERRIDE; 29 virtual bool ClearAccessPointRlz(AccessPoint access_point) OVERRIDE; 30 31 virtual bool AddProductEvent(Product product, const char* event_rlz) OVERRIDE; 32 virtual bool ReadProductEvents(Product product, 33 std::vector<std::string>* events) OVERRIDE; 34 virtual bool ClearProductEvent(Product product, 35 const char* event_rlz) OVERRIDE; 36 virtual bool ClearAllProductEvents(Product product) OVERRIDE; 37 38 virtual bool AddStatefulEvent(Product product, 39 const char* event_rlz) OVERRIDE; 40 virtual bool IsStatefulEvent(Product product, 41 const char* event_rlz) OVERRIDE; 42 virtual bool ClearAllStatefulEvents(Product product) OVERRIDE; 43 44 virtual void CollectGarbage() OVERRIDE; 45 46 private: RlzValueStoreRegistry()47 RlzValueStoreRegistry() {} 48 DISALLOW_COPY_AND_ASSIGN(RlzValueStoreRegistry); 49 friend class ScopedRlzValueStoreLock; 50 }; 51 52 } // namespace rlz_lib 53 54 #endif // RLZ_WIN_LIB_RLZ_VALUE_STORE_REGISTRY_H_ 55 56