Home | History | Annotate | Download | only in remoting
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_REMOTING_SETUP_FLOW_GET_STATUS_STEP_H_
      6 #define CHROME_BROWSER_REMOTING_SETUP_FLOW_GET_STATUS_STEP_H_
      7 
      8 #include "chrome/browser/remoting/setup_flow.h"
      9 #include "chrome/browser/service/service_process_control.h"
     10 #include "chrome/common/net/gaia/gaia_auth_consumer.h"
     11 #include "chrome/common/net/gaia/gaia_auth_fetcher.h"
     12 
     13 namespace remoting {
     14 
     15 // SetupFlowGetStatusStep requests current host information from the service
     16 // process. It also starts service process if necessary.
     17 class SetupFlowGetStatusStep : public SetupFlowStepBase,
     18                                public ServiceProcessControl::MessageHandler {
     19  public:
     20   SetupFlowGetStatusStep();
     21   virtual ~SetupFlowGetStatusStep();
     22 
     23   // SetupFlowStep implementation.
     24   virtual void HandleMessage(const std::string& message, const Value* arg);
     25   virtual void Cancel();
     26 
     27   // ServiceProcessControl::MessageHandler interface
     28   virtual void OnRemotingHostInfo(
     29       const remoting::ChromotingHostInfo& host_info);
     30 
     31  protected:
     32   virtual void DoStart();
     33 
     34  private:
     35   void LaunchServiceProcess();
     36   void OnServiceProcessLaunched();
     37   void RequestStatus();
     38 
     39   ScopedRunnableMethodFactory<SetupFlowGetStatusStep> task_factory_;
     40   ServiceProcessControl* process_control_;
     41   bool status_requested_;
     42 
     43   DISALLOW_COPY_AND_ASSIGN(SetupFlowGetStatusStep);
     44 };
     45 
     46 class SetupFlowGetStatusErrorStep : public SetupFlowErrorStepBase {
     47  public:
     48   SetupFlowGetStatusErrorStep();
     49   virtual ~SetupFlowGetStatusErrorStep();
     50 
     51  protected:
     52   virtual string16 GetErrorMessage();
     53   virtual void Retry();
     54 
     55  private:
     56   DISALLOW_COPY_AND_ASSIGN(SetupFlowGetStatusErrorStep);
     57 };
     58 
     59 }  // namespace remoting
     60 
     61 #endif  // CHROME_BROWSER_REMOTING_SETUP_FLOW_GET_STATUS_STEP_H_
     62