70 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2013 GitHub, Inc.
 | |
| // Use of this source code is governed by the MIT license that can be
 | |
| // found in the LICENSE file.
 | |
| 
 | |
| #ifndef ATOM_BROWSER_AUTO_UPDATER_H_
 | |
| #define ATOM_BROWSER_AUTO_UPDATER_H_
 | |
| 
 | |
| #include <map>
 | |
| #include <string>
 | |
| 
 | |
| #include "base/macros.h"
 | |
| #include "build/build_config.h"
 | |
| #include "native_mate/arguments.h"
 | |
| 
 | |
| namespace base {
 | |
| class Time;
 | |
| }
 | |
| 
 | |
| namespace auto_updater {
 | |
| 
 | |
| class Delegate {
 | |
|  public:
 | |
|   // An error happened.
 | |
|   virtual void OnError(const std::string& error) {}
 | |
| 
 | |
|   virtual void OnError(const std::string& error,
 | |
|                        const int code,
 | |
|                        const std::string& domain) {}
 | |
| 
 | |
|   // 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() {}
 | |
| };
 | |
| 
 | |
| class AutoUpdater {
 | |
|  public:
 | |
|   typedef std::map<std::string, std::string> HeaderMap;
 | |
| 
 | |
|   // Gets/Sets the delegate.
 | |
|   static Delegate* GetDelegate();
 | |
|   static void SetDelegate(Delegate* delegate);
 | |
| 
 | |
|   static std::string GetFeedURL();
 | |
|   static void SetFeedURL(mate::Arguments* args);
 | |
|   static void CheckForUpdates();
 | |
|   static void QuitAndInstall();
 | |
| 
 | |
|  private:
 | |
|   static Delegate* delegate_;
 | |
| 
 | |
|   DISALLOW_IMPLICIT_CONSTRUCTORS(AutoUpdater);
 | |
| };
 | |
| 
 | |
| }  // namespace auto_updater
 | |
| 
 | |
| #endif  // ATOM_BROWSER_AUTO_UPDATER_H_
 | 
