OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef SYNC_SYNCABLE_NIGORI_HANDLER_H_ | 5 #ifndef COMPONENTS_SYNC_SYNCABLE_NIGORI_HANDLER_H_ |
6 #define SYNC_SYNCABLE_NIGORI_HANDLER_H_ | 6 #define COMPONENTS_SYNC_SYNCABLE_NIGORI_HANDLER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "sync/base/sync_export.h" | 10 #include "components/sync/base/model_type.h" |
11 #include "sync/internal_api/public/base/model_type.h" | 11 #include "components/sync/base/sync_export.h" |
12 | 12 |
13 namespace google { | 13 namespace google { |
14 namespace protobuf { | 14 namespace protobuf { |
15 template <typename T> | 15 template <typename T> |
16 class RepeatedPtrField; | 16 class RepeatedPtrField; |
17 } | 17 } |
18 } | 18 } |
19 | 19 |
20 namespace sync_pb { | 20 namespace sync_pb { |
21 class NigoriSpecifics; | 21 class NigoriSpecifics; |
22 } | 22 } |
23 | 23 |
24 namespace syncer { | 24 namespace syncer { |
25 namespace syncable { | 25 namespace syncable { |
26 | 26 |
27 class BaseTransaction; | 27 class BaseTransaction; |
28 | 28 |
29 // Sync internal interface for dealing with nigori node and querying | 29 // Sync internal interface for dealing with nigori node and querying |
30 // the current set of encrypted types. Not thread safe, so a sync transaction | 30 // the current set of encrypted types. Not thread safe, so a sync transaction |
31 // must be held by a caller whenever invoking methods. | 31 // must be held by a caller whenever invoking methods. |
32 class SYNC_EXPORT NigoriHandler { | 32 class SYNC_EXPORT NigoriHandler { |
33 public: | 33 public: |
34 NigoriHandler(); | 34 NigoriHandler(); |
35 virtual ~NigoriHandler(); | 35 virtual ~NigoriHandler(); |
36 | 36 |
37 // Apply a nigori node update, updating the internal encryption state | 37 // Apply a nigori node update, updating the internal encryption state |
38 // accordingly. | 38 // accordingly. |
39 virtual void ApplyNigoriUpdate( | 39 virtual void ApplyNigoriUpdate(const sync_pb::NigoriSpecifics& nigori, |
40 const sync_pb::NigoriSpecifics& nigori, | 40 syncable::BaseTransaction* const trans) = 0; |
41 syncable::BaseTransaction* const trans) = 0; | |
42 | 41 |
43 // Store the current encrypt everything/encrypted types state into |nigori|. | 42 // Store the current encrypt everything/encrypted types state into |nigori|. |
44 virtual void UpdateNigoriFromEncryptedTypes( | 43 virtual void UpdateNigoriFromEncryptedTypes( |
45 sync_pb::NigoriSpecifics* nigori, | 44 sync_pb::NigoriSpecifics* nigori, |
46 syncable::BaseTransaction* const trans) const = 0; | 45 syncable::BaseTransaction* const trans) const = 0; |
47 | 46 |
48 // Whether a keystore key needs to be requested from the sync server. | 47 // Whether a keystore key needs to be requested from the sync server. |
49 virtual bool NeedKeystoreKey( | 48 virtual bool NeedKeystoreKey( |
50 syncable::BaseTransaction* const trans) const = 0; | 49 syncable::BaseTransaction* const trans) const = 0; |
51 | 50 |
52 // Set the keystore keys the server returned for this account. | 51 // Set the keystore keys the server returned for this account. |
53 // Returns true on success, false otherwise. | 52 // Returns true on success, false otherwise. |
54 virtual bool SetKeystoreKeys( | 53 virtual bool SetKeystoreKeys( |
55 const google::protobuf::RepeatedPtrField<std::string>& keys, | 54 const google::protobuf::RepeatedPtrField<std::string>& keys, |
56 syncable::BaseTransaction* const trans) = 0; | 55 syncable::BaseTransaction* const trans) = 0; |
57 | 56 |
58 // Returns the set of currently encrypted types. | 57 // Returns the set of currently encrypted types. |
59 virtual ModelTypeSet GetEncryptedTypes( | 58 virtual ModelTypeSet GetEncryptedTypes( |
60 syncable::BaseTransaction* const trans) const = 0; | 59 syncable::BaseTransaction* const trans) const = 0; |
61 }; | 60 }; |
62 | 61 |
63 } // namespace syncable | 62 } // namespace syncable |
64 } // namespace syncer | 63 } // namespace syncer |
65 | 64 |
66 #endif // SYNC_SYNCABLE_NIGORI_HANDLER_H_ | 65 #endif // COMPONENTS_SYNC_SYNCABLE_NIGORI_HANDLER_H_ |
OLD | NEW |