Home | History | Annotate | Download | only in lib
      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:
     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