| Index: src/platform/update_engine/update_attempter.h
 | 
| diff --git a/src/platform/update_engine/update_attempter.h b/src/platform/update_engine/update_attempter.h
 | 
| index 83e47376e5363d0a2ee75e3b995eb76f11abb273..76fe3fb4a4ddd6c7a13bfea41ebfc28151af766e 100644
 | 
| --- a/src/platform/update_engine/update_attempter.h
 | 
| +++ b/src/platform/update_engine/update_attempter.h
 | 
| @@ -5,24 +5,52 @@
 | 
|  #ifndef CHROMEOS_PLATFORM_UPDATE_ENGINE_UPDATE_ATTEMPTER_H__
 | 
|  #define CHROMEOS_PLATFORM_UPDATE_ENGINE_UPDATE_ATTEMPTER_H__
 | 
|  
 | 
| +#include <time.h>
 | 
|  #include <tr1/memory>
 | 
|  #include <string>
 | 
|  #include <vector>
 | 
|  #include <glib.h>
 | 
|  #include "update_engine/action_processor.h"
 | 
| +#include "update_engine/download_action.h"
 | 
|  #include "update_engine/omaha_response_handler_action.h"
 | 
|  
 | 
| +struct UpdateEngineService;
 | 
| +
 | 
|  namespace chromeos_update_engine {
 | 
|  
 | 
| -class UpdateAttempter : public ActionProcessorDelegate {
 | 
| +enum UpdateStatus {
 | 
| +  UPDATE_STATUS_IDLE = 0,
 | 
| +  UPDATE_STATUS_CHECKING_FOR_UPDATE,
 | 
| +  UPDATE_STATUS_UPDATE_AVAILABLE,
 | 
| +  UPDATE_STATUS_DOWNLOADING,
 | 
| +  UPDATE_STATUS_VERIFYING,
 | 
| +  UPDATE_STATUS_FINALIZING,
 | 
| +  UPDATE_STATUS_UPDATED_NEED_REBOOT
 | 
| +};
 | 
| +
 | 
| +const char* UpdateStatusToString(UpdateStatus status);
 | 
| +
 | 
| +class UpdateAttempter : public ActionProcessorDelegate,
 | 
| +                        public DownloadActionDelegate {
 | 
|   public:
 | 
| -  explicit UpdateAttempter(GMainLoop *loop)
 | 
| -      : full_update_(false),
 | 
| -        loop_(loop) {}
 | 
| +  UpdateAttempter() : full_update_(false),
 | 
| +                      dbus_service_(NULL),
 | 
| +                      status_(UPDATE_STATUS_IDLE),
 | 
| +                      download_progress_(0.0),
 | 
| +                      last_checked_time_(0),
 | 
| +                      new_version_("0.0.0.0"),
 | 
| +                      new_size_(0) {
 | 
| +    last_notify_time_.tv_sec = 0;
 | 
| +    last_notify_time_.tv_nsec = 0;
 | 
| +  }
 | 
|    void Update(bool force_full_update);
 | 
|    
 | 
| -  // Delegate method:
 | 
| +  // ActionProcessorDelegate methods:
 | 
|    void ProcessingDone(const ActionProcessor* processor, bool success);
 | 
| +  void ProcessingStopped(const ActionProcessor* processor);
 | 
| +  void ActionCompleted(ActionProcessor* processor,
 | 
| +                       AbstractAction* action,
 | 
| +                       bool success);
 | 
|    
 | 
|    // Stop updating. An attempt will be made to record status to the disk
 | 
|    // so that updates can be resumed later.
 | 
| @@ -38,14 +66,40 @@ class UpdateAttempter : public ActionProcessorDelegate {
 | 
|                   std::string* new_version,
 | 
|                   int64_t* new_size);
 | 
|  
 | 
| +  void set_dbus_service(struct UpdateEngineService* dbus_service) {
 | 
| +    dbus_service_ = dbus_service;
 | 
| +  }
 | 
| +
 | 
| +  void CheckForUpdate();
 | 
| +
 | 
| +  // DownloadActionDelegate method
 | 
| +  void BytesReceived(uint64_t bytes_received, uint64_t total);
 | 
| +
 | 
|   private:
 | 
| +  // Sets the status to the given status and notifies a status update
 | 
| +  // over dbus.
 | 
| +  void SetStatusAndNotify(UpdateStatus status);
 | 
| +  
 | 
| +  struct timespec last_notify_time_;
 | 
| +
 | 
|    bool full_update_;
 | 
|    std::vector<std::tr1::shared_ptr<AbstractAction> > actions_;
 | 
|    ActionProcessor processor_;
 | 
| -  GMainLoop *loop_;
 | 
| +  
 | 
| +  // If non-null, this UpdateAttempter will send status updates over this
 | 
| +  // dbus service.
 | 
| +  UpdateEngineService* dbus_service_;
 | 
|  
 | 
|    // pointer to the OmahaResponseHandlerAction in the actions_ vector;
 | 
|    std::tr1::shared_ptr<OmahaResponseHandlerAction> response_handler_action_;
 | 
| +
 | 
| +  // For status:
 | 
| +  UpdateStatus status_;
 | 
| +  double download_progress_;
 | 
| +  int64_t last_checked_time_;
 | 
| +  std::string new_version_;
 | 
| +  int64_t new_size_;
 | 
| +
 | 
|    DISALLOW_COPY_AND_ASSIGN(UpdateAttempter);
 | 
|  };
 | 
|  
 | 
| 
 |