Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Side by Side Diff: google_apis/gcm/engine/mcs_client.h

Issue 1548673002: Switch to standard integer types in google_apis/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 GOOGLE_APIS_GCM_ENGINE_MCS_CLIENT_H_ 5 #ifndef GOOGLE_APIS_GCM_ENGINE_MCS_CLIENT_H_
6 #define GOOGLE_APIS_GCM_ENGINE_MCS_CLIENT_H_ 6 #define GOOGLE_APIS_GCM_ENGINE_MCS_CLIENT_H_
7 7
8 #include <stdint.h>
9
8 #include <deque> 10 #include <deque>
9 #include <map> 11 #include <map>
10 #include <string> 12 #include <string>
11 #include <vector> 13 #include <vector>
12 14
13 #include "base/files/file_path.h" 15 #include "base/files/file_path.h"
16 #include "base/macros.h"
14 #include "base/memory/linked_ptr.h" 17 #include "base/memory/linked_ptr.h"
15 #include "base/memory/scoped_ptr.h" 18 #include "base/memory/scoped_ptr.h"
16 #include "base/memory/weak_ptr.h" 19 #include "base/memory/weak_ptr.h"
17 #include "google_apis/gcm/base/gcm_export.h" 20 #include "google_apis/gcm/base/gcm_export.h"
18 #include "google_apis/gcm/base/mcs_message.h" 21 #include "google_apis/gcm/base/mcs_message.h"
19 #include "google_apis/gcm/engine/connection_factory.h" 22 #include "google_apis/gcm/engine/connection_factory.h"
20 #include "google_apis/gcm/engine/connection_handler.h" 23 #include "google_apis/gcm/engine/connection_handler.h"
21 #include "google_apis/gcm/engine/gcm_store.h" 24 #include "google_apis/gcm/engine/gcm_store.h"
22 #include "google_apis/gcm/engine/heartbeat_manager.h" 25 #include "google_apis/gcm/engine/heartbeat_manager.h"
23 26
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 87
85 // Callback for MCSClient's error conditions. 88 // Callback for MCSClient's error conditions.
86 // TODO(fgorski): Keeping it as a callback with intention to add meaningful 89 // TODO(fgorski): Keeping it as a callback with intention to add meaningful
87 // error information. 90 // error information.
88 typedef base::Callback<void()> ErrorCallback; 91 typedef base::Callback<void()> ErrorCallback;
89 // Callback when a message is received. 92 // Callback when a message is received.
90 typedef base::Callback<void(const MCSMessage& message)> 93 typedef base::Callback<void(const MCSMessage& message)>
91 OnMessageReceivedCallback; 94 OnMessageReceivedCallback;
92 // Callback when a message is sent (and receipt has been acknowledged by 95 // Callback when a message is sent (and receipt has been acknowledged by
93 // the MCS endpoint). 96 // the MCS endpoint).
94 typedef base::Callback< 97 typedef base::Callback<void(int64_t user_serial_number,
95 void(int64 user_serial_number, 98 const std::string& app_id,
96 const std::string& app_id, 99 const std::string& message_id,
97 const std::string& message_id, 100 MessageSendStatus status)> OnMessageSentCallback;
98 MessageSendStatus status)> OnMessageSentCallback;
99 101
100 MCSClient(const std::string& version_string, 102 MCSClient(const std::string& version_string,
101 base::Clock* clock, 103 base::Clock* clock,
102 ConnectionFactory* connection_factory, 104 ConnectionFactory* connection_factory,
103 GCMStore* gcm_store, 105 GCMStore* gcm_store,
104 GCMStatsRecorder* recorder); 106 GCMStatsRecorder* recorder);
105 virtual ~MCSClient(); 107 virtual ~MCSClient();
106 108
107 // Initialize the client. Will load any previous id/token information as well 109 // Initialize the client. Will load any previous id/token information as well
108 // as unacknowledged message information from the GCM storage, if it exists, 110 // as unacknowledged message information from the GCM storage, if it exists,
109 // passing the id/token information back via |initialization_callback| along 111 // passing the id/token information back via |initialization_callback| along
110 // with a |success == true| result. If no GCM information is present (and 112 // with a |success == true| result. If no GCM information is present (and
111 // this is therefore a fresh client), a clean GCM store will be created and 113 // this is therefore a fresh client), a clean GCM store will be created and
112 // values of 0 will be returned via |initialization_callback| with 114 // values of 0 will be returned via |initialization_callback| with
113 // |success == true|. 115 // |success == true|.
114 // If an error loading the GCM store is encountered, 116 // If an error loading the GCM store is encountered,
115 // |initialization_callback| will be invoked with |success == false|. 117 // |initialization_callback| will be invoked with |success == false|.
116 void Initialize(const ErrorCallback& initialization_callback, 118 void Initialize(const ErrorCallback& initialization_callback,
117 const OnMessageReceivedCallback& message_received_callback, 119 const OnMessageReceivedCallback& message_received_callback,
118 const OnMessageSentCallback& message_sent_callback, 120 const OnMessageSentCallback& message_sent_callback,
119 scoped_ptr<GCMStore::LoadResult> load_result); 121 scoped_ptr<GCMStore::LoadResult> load_result);
120 122
121 // Logs the client into the server. Client must be initialized. 123 // Logs the client into the server. Client must be initialized.
122 // |android_id| and |security_token| are optional if this is not a new 124 // |android_id| and |security_token| are optional if this is not a new
123 // client, else they must be non-zero. 125 // client, else they must be non-zero.
124 // Successful login will result in |message_received_callback| being invoked 126 // Successful login will result in |message_received_callback| being invoked
125 // with a valid LoginResponse. 127 // with a valid LoginResponse.
126 // Login failure (typically invalid id/token) will shut down the client, and 128 // Login failure (typically invalid id/token) will shut down the client, and
127 // |initialization_callback| to be invoked with |success = false|. 129 // |initialization_callback| to be invoked with |success = false|.
128 virtual void Login(uint64 android_id, uint64 security_token); 130 virtual void Login(uint64_t android_id, uint64_t security_token);
129 131
130 // Sends a message, with or without reliable message queueing (RMQ) support. 132 // Sends a message, with or without reliable message queueing (RMQ) support.
131 // Will asynchronously invoke the OnMessageSent callback regardless. 133 // Will asynchronously invoke the OnMessageSent callback regardless.
132 // Whether to use RMQ depends on whether the protobuf has |ttl| set or not. 134 // Whether to use RMQ depends on whether the protobuf has |ttl| set or not.
133 // |ttl == 0| denotes the message should only be sent if the connection is 135 // |ttl == 0| denotes the message should only be sent if the connection is
134 // open. |ttl > 0| will keep the message saved for |ttl| seconds, after which 136 // open. |ttl > 0| will keep the message saved for |ttl| seconds, after which
135 // it will be dropped if it was unable to be sent. When a message is dropped, 137 // it will be dropped if it was unable to be sent. When a message is dropped,
136 // |message_sent_callback_| is invoked with a TTL expiration error. 138 // |message_sent_callback_| is invoked with a TTL expiration error.
137 virtual void SendMessage(const MCSMessage& message); 139 virtual void SendMessage(const MCSMessage& message);
138 140
(...skipping 19 matching lines...) Expand all
158 // to be between GetMax/GetMinClientHeartbeatIntervalMs of HeartbeatManager, 160 // to be between GetMax/GetMinClientHeartbeatIntervalMs of HeartbeatManager,
159 // otherwise the setting won't take effect. 161 // otherwise the setting won't take effect.
160 void AddHeartbeatInterval(const std::string& scope, int interval_ms); 162 void AddHeartbeatInterval(const std::string& scope, int interval_ms);
161 void RemoveHeartbeatInterval(const std::string& scope); 163 void RemoveHeartbeatInterval(const std::string& scope);
162 164
163 HeartbeatManager* GetHeartbeatManagerForTesting() { 165 HeartbeatManager* GetHeartbeatManagerForTesting() {
164 return &heartbeat_manager_; 166 return &heartbeat_manager_;
165 } 167 }
166 168
167 private: 169 private:
168 typedef uint32 StreamId; 170 typedef uint32_t StreamId;
169 typedef std::string PersistentId; 171 typedef std::string PersistentId;
170 typedef std::vector<StreamId> StreamIdList; 172 typedef std::vector<StreamId> StreamIdList;
171 typedef std::vector<PersistentId> PersistentIdList; 173 typedef std::vector<PersistentId> PersistentIdList;
172 typedef std::map<StreamId, PersistentId> StreamIdToPersistentIdMap; 174 typedef std::map<StreamId, PersistentId> StreamIdToPersistentIdMap;
173 typedef linked_ptr<ReliablePacketInfo> MCSPacketInternal; 175 typedef linked_ptr<ReliablePacketInfo> MCSPacketInternal;
174 176
175 // Resets the internal state and builds a new login request, acknowledging 177 // Resets the internal state and builds a new login request, acknowledging
176 // any pending server-to-device messages and rebuilding the send queue 178 // any pending server-to-device messages and rebuilding the send queue
177 // from all unacknowledged device-to-server messages. 179 // from all unacknowledged device-to-server messages.
178 // Should only be called when the connection has been reset. 180 // Should only be called when the connection has been reset.
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 239
238 // Client state. 240 // Client state.
239 State state_; 241 State state_;
240 242
241 // Callbacks for owner. 243 // Callbacks for owner.
242 ErrorCallback mcs_error_callback_; 244 ErrorCallback mcs_error_callback_;
243 OnMessageReceivedCallback message_received_callback_; 245 OnMessageReceivedCallback message_received_callback_;
244 OnMessageSentCallback message_sent_callback_; 246 OnMessageSentCallback message_sent_callback_;
245 247
246 // The android id and security token in use by this device. 248 // The android id and security token in use by this device.
247 uint64 android_id_; 249 uint64_t android_id_;
248 uint64 security_token_; 250 uint64_t security_token_;
249 251
250 // Factory for creating new connections and connection handlers. 252 // Factory for creating new connections and connection handlers.
251 ConnectionFactory* connection_factory_; 253 ConnectionFactory* connection_factory_;
252 254
253 // Connection handler to handle all over-the-wire protocol communication 255 // Connection handler to handle all over-the-wire protocol communication
254 // with the mobile connection server. 256 // with the mobile connection server.
255 ConnectionHandler* connection_handler_; 257 ConnectionHandler* connection_handler_;
256 258
257 // ----- Reliablie Message Queue section ----- 259 // ----- Reliablie Message Queue section -----
258 // Note: all queues/maps are ordered from oldest (front/begin) message to 260 // Note: all queues/maps are ordered from oldest (front/begin) message to
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 GCMStatsRecorder* recorder_; 307 GCMStatsRecorder* recorder_;
306 308
307 base::WeakPtrFactory<MCSClient> weak_ptr_factory_; 309 base::WeakPtrFactory<MCSClient> weak_ptr_factory_;
308 310
309 DISALLOW_COPY_AND_ASSIGN(MCSClient); 311 DISALLOW_COPY_AND_ASSIGN(MCSClient);
310 }; 312 };
311 313
312 } // namespace gcm 314 } // namespace gcm
313 315
314 #endif // GOOGLE_APIS_GCM_ENGINE_MCS_CLIENT_H_ 316 #endif // GOOGLE_APIS_GCM_ENGINE_MCS_CLIENT_H_
OLDNEW
« no previous file with comments | « google_apis/gcm/engine/instance_id_get_token_request_handler.h ('k') | google_apis/gcm/engine/mcs_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698