Use chromeos accelerometer reader in athena and support only lid accelerometer.
[chromium-blink-merge.git] / sync / engine / get_updates_delegate.h
blobd61f39ab3693d1c14a8b4af29928fc357fda5127
1 // Copyright 2014 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.
5 #ifndef SYNC_ENGINE_GET_UPDATES_DELEGATE_H_
6 #define SYNC_ENGINE_GET_UPDATES_DELEGATE_H_
8 #include "sync/internal_api/public/events/protocol_event.h"
9 #include "sync/protocol/sync.pb.h"
10 #include "sync/sessions/model_type_registry.h"
11 #include "sync/sessions/nudge_tracker.h"
12 #include "sync/sessions/status_controller.h"
14 namespace syncer {
16 class GetUpdatesProcessor;
18 // Interface for GetUpdates functionality that dependends on the requested
19 // GetUpdate type (normal, configuration, poll). The GetUpdatesProcessor is
20 // given an appropriate GetUpdatesDelegate to handle type specific functionality
21 // on construction.
22 class SYNC_EXPORT_PRIVATE GetUpdatesDelegate {
23 public:
24 GetUpdatesDelegate();
25 virtual ~GetUpdatesDelegate() = 0;
27 // Populates GetUpdate message fields that depende on GetUpdates request type.
28 virtual void HelpPopulateGuMessage(
29 sync_pb::GetUpdatesMessage* get_updates) const = 0;
31 // Applies pending updates to non-control types.
32 virtual void ApplyUpdates(
33 ModelTypeSet gu_types,
34 sessions::StatusController* status,
35 UpdateHandlerMap* update_handler_map) const = 0;
37 virtual scoped_ptr<ProtocolEvent> GetNetworkRequestEvent(
38 base::Time timestamp,
39 const sync_pb::ClientToServerMessage& request) const = 0;
42 // Functionality specific to the normal GetUpdate request.
43 class SYNC_EXPORT_PRIVATE NormalGetUpdatesDelegate : public GetUpdatesDelegate {
44 public:
45 NormalGetUpdatesDelegate(const sessions::NudgeTracker& nudge_tracker);
46 virtual ~NormalGetUpdatesDelegate();
48 // Uses the member NudgeTracker to populate some fields of this GU message.
49 virtual void HelpPopulateGuMessage(
50 sync_pb::GetUpdatesMessage* get_updates) const OVERRIDE;
52 // Applies pending updates on the appropriate data type threads.
53 virtual void ApplyUpdates(
54 ModelTypeSet gu_types,
55 sessions::StatusController* status,
56 UpdateHandlerMap* update_handler_map) const OVERRIDE;
58 virtual scoped_ptr<ProtocolEvent> GetNetworkRequestEvent(
59 base::Time timestamp,
60 const sync_pb::ClientToServerMessage& request) const OVERRIDE;
61 private:
62 DISALLOW_COPY_AND_ASSIGN(NormalGetUpdatesDelegate);
64 const sessions::NudgeTracker& nudge_tracker_;
67 // Functionality specific to the configure GetUpdate request.
68 class SYNC_EXPORT_PRIVATE ConfigureGetUpdatesDelegate
69 : public GetUpdatesDelegate {
70 public:
71 ConfigureGetUpdatesDelegate(
72 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source);
73 virtual ~ConfigureGetUpdatesDelegate();
75 // Sets the 'source' and 'origin' fields for this request.
76 virtual void HelpPopulateGuMessage(
77 sync_pb::GetUpdatesMessage* get_updates) const OVERRIDE;
79 // Applies updates passively (ie. on the sync thread).
81 // This is safe only if the ChangeProcessor is not listening to changes at
82 // this time.
83 virtual void ApplyUpdates(
84 ModelTypeSet gu_types,
85 sessions::StatusController* status,
86 UpdateHandlerMap* update_handler_map) const OVERRIDE;
88 virtual scoped_ptr<ProtocolEvent> GetNetworkRequestEvent(
89 base::Time timestamp,
90 const sync_pb::ClientToServerMessage& request) const OVERRIDE;
91 private:
92 DISALLOW_COPY_AND_ASSIGN(ConfigureGetUpdatesDelegate);
94 static sync_pb::SyncEnums::GetUpdatesOrigin ConvertConfigureSourceToOrigin(
95 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source);
97 const sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source_;
100 // Functionality specific to the poll GetUpdate request.
101 class SYNC_EXPORT_PRIVATE PollGetUpdatesDelegate : public GetUpdatesDelegate {
102 public:
103 PollGetUpdatesDelegate();
104 virtual ~PollGetUpdatesDelegate();
106 // Sets the 'source' and 'origin' to indicate this is a poll request.
107 virtual void HelpPopulateGuMessage(
108 sync_pb::GetUpdatesMessage* get_updates) const OVERRIDE;
110 // Applies updates on the appropriate data type thread.
111 virtual void ApplyUpdates(
112 ModelTypeSet gu_types,
113 sessions::StatusController* status,
114 UpdateHandlerMap* update_handler_map) const OVERRIDE;
116 virtual scoped_ptr<ProtocolEvent> GetNetworkRequestEvent(
117 base::Time timestamp,
118 const sync_pb::ClientToServerMessage& request) const OVERRIDE;
119 private:
120 DISALLOW_COPY_AND_ASSIGN(PollGetUpdatesDelegate);
123 } // namespace syncer
125 #endif // SYNC_ENGINE_GET_UPDATES_DELEGATE_H_