| 
									
										
										
										
											2014-10-31 11:17:05 -07:00
										 |  |  | // Copyright (c) 2013 GitHub, Inc.
 | 
					
						
							| 
									
										
										
										
											2014-04-25 17:49:37 +08:00
										 |  |  | // Use of this source code is governed by the MIT license that can be
 | 
					
						
							| 
									
										
										
										
											2013-06-02 20:23:04 +08:00
										 |  |  | // found in the LICENSE file.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef ATOM_BROWSER_AUTO_UPDATER_H_
 | 
					
						
							|  |  |  | #define ATOM_BROWSER_AUTO_UPDATER_H_
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-10 15:55:42 +02:00
										 |  |  | #include <map>
 | 
					
						
							| 
									
										
										
										
											2013-06-03 10:34:42 +08:00
										 |  |  | #include <string>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-07 20:38:49 -08:00
										 |  |  | #include "base/macros.h"
 | 
					
						
							| 
									
										
										
										
											2016-03-09 20:03:42 +09:00
										 |  |  | #include "build/build_config.h"
 | 
					
						
							| 
									
										
										
										
											2018-02-15 13:58:59 +11:00
										 |  |  | #include "native_mate/arguments.h"
 | 
					
						
							| 
									
										
										
										
											2013-06-02 20:23:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-23 15:40:56 +08:00
										 |  |  | namespace base { | 
					
						
							|  |  |  | class Time; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-02 20:23:04 +08:00
										 |  |  | namespace auto_updater { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-23 15:40:56 +08:00
										 |  |  | class Delegate { | 
					
						
							|  |  |  |  public: | 
					
						
							|  |  |  |   // An error happened.
 | 
					
						
							|  |  |  |   virtual void OnError(const std::string& error) {} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-17 21:44:10 -04:00
										 |  |  |   virtual void OnError(const std::string& error, | 
					
						
							|  |  |  |                        const int code, | 
					
						
							| 
									
										
										
										
											2017-07-27 11:52:19 +10:00
										 |  |  |                        const std::string& domain) {} | 
					
						
							| 
									
										
										
										
											2017-07-26 18:10:09 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-23 15:40:56 +08:00
										 |  |  |   // Checking to see if there is an update
 | 
					
						
							|  |  |  |   virtual void OnCheckingForUpdate() {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // There is an update available and it is being downloaded
 | 
					
						
							|  |  |  |   virtual void OnUpdateAvailable() {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // There is no available update.
 | 
					
						
							|  |  |  |   virtual void OnUpdateNotAvailable() {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // There is a new update which has been downloaded.
 | 
					
						
							|  |  |  |   virtual void OnUpdateDownloaded(const std::string& release_notes, | 
					
						
							|  |  |  |                                   const std::string& release_name, | 
					
						
							|  |  |  |                                   const base::Time& release_date, | 
					
						
							|  |  |  |                                   const std::string& update_url) {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  protected: | 
					
						
							|  |  |  |   virtual ~Delegate() {} | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2013-06-02 20:23:04 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | class AutoUpdater { | 
					
						
							|  |  |  |  public: | 
					
						
							| 
									
										
										
										
											2016-06-10 15:55:42 +02:00
										 |  |  |   typedef std::map<std::string, std::string> HeaderMap; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-02 20:23:04 +08:00
										 |  |  |   // Gets/Sets the delegate.
 | 
					
						
							| 
									
										
										
										
											2015-10-23 15:40:56 +08:00
										 |  |  |   static Delegate* GetDelegate(); | 
					
						
							|  |  |  |   static void SetDelegate(Delegate* delegate); | 
					
						
							| 
									
										
										
										
											2013-06-02 20:23:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-15 00:04:48 +12:00
										 |  |  |   static std::string GetFeedURL(); | 
					
						
							| 
									
										
										
										
											2018-02-15 13:58:59 +11:00
										 |  |  |   static void SetFeedURL(mate::Arguments* args); | 
					
						
							| 
									
										
										
										
											2013-06-03 10:34:42 +08:00
										 |  |  |   static void CheckForUpdates(); | 
					
						
							| 
									
										
										
										
											2015-10-23 15:40:56 +08:00
										 |  |  |   static void QuitAndInstall(); | 
					
						
							| 
									
										
										
										
											2013-06-02 20:23:04 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |  private: | 
					
						
							| 
									
										
										
										
											2015-10-23 15:40:56 +08:00
										 |  |  |   static Delegate* delegate_; | 
					
						
							| 
									
										
										
										
											2013-06-02 20:23:04 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   DISALLOW_IMPLICIT_CONSTRUCTORS(AutoUpdater); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }  // namespace auto_updater
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif  // ATOM_BROWSER_AUTO_UPDATER_H_
 |