OLD | NEW |
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_GCM_CLIENT_H_ | 5 #ifndef GOOGLE_APIS_GCM_GCM_CLIENT_H_ |
6 #define GOOGLE_APIS_GCM_GCM_CLIENT_H_ | 6 #define GOOGLE_APIS_GCM_GCM_CLIENT_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 | 57 |
58 // Message being received from the other party. | 58 // Message being received from the other party. |
59 struct GCM_EXPORT IncomingMessage { | 59 struct GCM_EXPORT IncomingMessage { |
60 IncomingMessage(); | 60 IncomingMessage(); |
61 ~IncomingMessage(); | 61 ~IncomingMessage(); |
62 | 62 |
63 MessageData data; | 63 MessageData data; |
64 }; | 64 }; |
65 | 65 |
66 // The check-in info for the user. Returned by the server. | 66 // The check-in info for the user. Returned by the server. |
67 struct GCM_EXPORT CheckInInfo { | 67 struct GCM_EXPORT CheckinInfo { |
68 CheckInInfo() : android_id(0), secret(0) {} | 68 CheckinInfo() : android_id(0), secret(0) {} |
69 bool IsValid() const { return android_id != 0 && secret != 0; } | 69 bool IsValid() const { return android_id != 0 && secret != 0; } |
70 void Reset() { | 70 void Reset() { |
71 android_id = 0; | 71 android_id = 0; |
72 secret = 0; | 72 secret = 0; |
73 } | 73 } |
74 | 74 |
75 uint64 android_id; | 75 uint64 android_id; |
76 uint64 secret; | 76 uint64 secret; |
77 }; | 77 }; |
78 | 78 |
79 // A delegate interface that allows the GCMClient instance to interact with | 79 // A delegate interface that allows the GCMClient instance to interact with |
80 // its caller, i.e. notifying asynchronous event. | 80 // its caller, i.e. notifying asynchronous event. |
81 class Delegate { | 81 class Delegate { |
82 public: | 82 public: |
83 // Called when the user has been checked in successfully or an error occurs. | 83 // Called when the user has been checked in successfully or an error occurs. |
84 // |checkin_info|: valid if the checkin completed successfully. | 84 // |checkin_info|: valid if the CheckIn(..) completed successfully. |
85 // |result|: the type of the error if an error occured, success otherwise. | 85 // |result|: the type of the error if an error occured, success otherwise. |
86 virtual void OnCheckInFinished(const CheckInInfo& checkin_info, | 86 virtual void OnCheckInFinished(const CheckinInfo& checkin_info, |
87 Result result) = 0; | 87 Result result) = 0; |
88 | 88 |
89 // Called when the registration completed successfully or an error occurs. | 89 // Called when the registration completed successfully or an error occurs. |
90 // |app_id|: application ID. | 90 // |app_id|: application ID. |
91 // |registration_id|: non-empty if the registration completed successfully. | 91 // |registration_id|: non-empty if the registration completed successfully. |
92 // |result|: the type of the error if an error occured, success otherwise. | 92 // |result|: the type of the error if an error occured, success otherwise. |
93 virtual void OnRegisterFinished(const std::string& app_id, | 93 virtual void OnRegisterFinished(const std::string& app_id, |
94 const std::string& registration_id, | 94 const std::string& registration_id, |
95 Result result) = 0; | 95 Result result) = 0; |
96 | 96 |
(...skipping 20 matching lines...) Expand all Loading... |
117 // |app_id|: application ID. | 117 // |app_id|: application ID. |
118 // |message_id|: ID of the message being sent. | 118 // |message_id|: ID of the message being sent. |
119 // |result|: the type of the error if an error occured, success otherwise. | 119 // |result|: the type of the error if an error occured, success otherwise. |
120 virtual void OnMessageSendError(const std::string& app_id, | 120 virtual void OnMessageSendError(const std::string& app_id, |
121 const std::string& message_id, | 121 const std::string& message_id, |
122 Result result) = 0; | 122 Result result) = 0; |
123 | 123 |
124 // Returns the checkin info associated with this user. The delegate class | 124 // Returns the checkin info associated with this user. The delegate class |
125 // is expected to persist the checkin info that is provided by | 125 // is expected to persist the checkin info that is provided by |
126 // OnCheckInFinished. | 126 // OnCheckInFinished. |
127 virtual CheckInInfo GetCheckInInfo() const = 0; | 127 virtual CheckinInfo GetCheckinInfo() const = 0; |
128 | 128 |
129 // Called when the loading from the persistent store is done. The loading | 129 // Called when the loading from the persistent store is done. The loading |
130 // is triggered asynchronously when GCMClient is created. | 130 // is triggered asynchronously when GCMClient is created. |
131 virtual void OnLoadingCompleted() = 0; | 131 virtual void OnLoadingCompleted() = 0; |
132 | 132 |
133 // Returns a task runner for file operations that may block. This is used | 133 // Returns a task runner for file operations that may block. This is used |
134 // in writing to or reading from the persistent store. | 134 // in writing to or reading from the persistent store. |
135 virtual base::TaskRunner* GetFileTaskRunner() = 0; | 135 virtual base::TaskRunner* GetFileTaskRunner() = 0; |
136 }; | 136 }; |
137 | 137 |
(...skipping 12 matching lines...) Expand all Loading... |
150 virtual void SetUserDelegate(const std::string& username, | 150 virtual void SetUserDelegate(const std::string& username, |
151 Delegate* delegate) = 0; | 151 Delegate* delegate) = 0; |
152 | 152 |
153 // Checks in the user to use GCM. If the device has not been checked in, it | 153 // Checks in the user to use GCM. If the device has not been checked in, it |
154 // will be done first. | 154 // will be done first. |
155 // |username|: the username (email address) used to check in with the server. | 155 // |username|: the username (email address) used to check in with the server. |
156 virtual void CheckIn(const std::string& username) = 0; | 156 virtual void CheckIn(const std::string& username) = 0; |
157 | 157 |
158 // Registers the application for GCM. Delegate::OnRegisterFinished will be | 158 // Registers the application for GCM. Delegate::OnRegisterFinished will be |
159 // called asynchronously upon completion. | 159 // called asynchronously upon completion. |
160 // |username|: the username (email address) passed in CheckIn. | 160 // |username|: the username (email address) passed in CheckIn(..). |
161 // |app_id|: application ID. | 161 // |app_id|: application ID. |
162 // |cert|: SHA-1 of public key of the application, in base16 format. | 162 // |cert|: SHA-1 of public key of the application, in base16 format. |
163 // |sender_ids|: list of IDs of the servers that are allowed to send the | 163 // |sender_ids|: list of IDs of the servers that are allowed to send the |
164 // messages to the application. These IDs are assigned by the | 164 // messages to the application. These IDs are assigned by the |
165 // Google API Console. | 165 // Google API Console. |
166 virtual void Register(const std::string& username, | 166 virtual void Register(const std::string& username, |
167 const std::string& app_id, | 167 const std::string& app_id, |
168 const std::string& cert, | 168 const std::string& cert, |
169 const std::vector<std::string>& sender_ids) = 0; | 169 const std::vector<std::string>& sender_ids) = 0; |
170 | 170 |
171 // Unregisters the application from GCM when it is uninstalled. | 171 // Unregisters the application from GCM when it is uninstalled. |
172 // Delegate::OnUnregisterFinished will be called asynchronously upon | 172 // Delegate::OnUnregisterFinished will be called asynchronously upon |
173 // completion. | 173 // completion. |
174 // |username|: the username (email address) passed in CheckIn. | 174 // |username|: the username (email address) passed in CheckIn(..). |
175 // |app_id|: application ID. | 175 // |app_id|: application ID. |
176 virtual void Unregister(const std::string& username, | 176 virtual void Unregister(const std::string& username, |
177 const std::string& app_id) = 0; | 177 const std::string& app_id) = 0; |
178 | 178 |
179 // Sends a message to a given receiver. Delegate::OnSendFinished will be | 179 // Sends a message to a given receiver. Delegate::OnSendFinished will be |
180 // called asynchronously upon completion. | 180 // called asynchronously upon completion. |
181 // |username|: the username (email address) passed in CheckIn. | 181 // |username|: the username (email address) passed in CheckIn(..). |
182 // |app_id|: application ID. | 182 // |app_id|: application ID. |
183 // |receiver_id|: registration ID of the receiver party. | 183 // |receiver_id|: registration ID of the receiver party. |
184 // |message|: message to be sent. | 184 // |message|: message to be sent. |
185 virtual void Send(const std::string& username, | 185 virtual void Send(const std::string& username, |
186 const std::string& app_id, | 186 const std::string& app_id, |
187 const std::string& receiver_id, | 187 const std::string& receiver_id, |
188 const OutgoingMessage& message) = 0; | 188 const OutgoingMessage& message) = 0; |
189 | 189 |
190 // Returns true if the loading from the persistent store is still in progress. | 190 // Returns true if the loading from the persistent store is still in progress. |
191 virtual bool IsLoading() const = 0; | 191 virtual bool IsLoading() const = 0; |
192 | 192 |
193 protected: | 193 protected: |
194 virtual ~GCMClient() {} | 194 virtual ~GCMClient() {} |
195 }; | 195 }; |
196 | 196 |
197 } // namespace gcm | 197 } // namespace gcm |
198 | 198 |
199 #endif // GOOGLE_APIS_GCM_GCM_CLIENT_H_ | 199 #endif // GOOGLE_APIS_GCM_GCM_CLIENT_H_ |
OLD | NEW |