text: // Copyright 2018 The Chromium OS Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #ifndef SHILL_UPSTART_UPSTART_H_
  #define SHILL_UPSTART_UPSTART_H_
  
  #include <memory>
  
  #include <base/macros.h>
  
  #include "shill/upstart/upstart_proxy_interface.h"
  
  namespace shill {
  
  class ControlInterface;
  
  class Upstart {
   public:
    // |control_interface| creates the UpstartProxy. Use a fake for testing.
    explicit Upstart(ControlInterface* control_interface);
    virtual ~Upstart();
  
    // Report an event to upstart indicating that the system has disconnected.
    virtual void NotifyDisconnected();
    // Report an event to upstart indicating that the system has connected.
    virtual void NotifyConnected();
  
   private:
    // Event string to be provided to upstart to indicate we have disconnected.
    static const char kShillDisconnectEvent[];
    // Event string to be provided to upstart to indicate we have connected.
    static const char kShillConnectEvent[];
  
    // The upstart proxy created by this class.
    const std::unique_ptr<UpstartProxyInterface> upstart_proxy_;
  
    DISALLOW_COPY_AND_ASSIGN(Upstart);
  };
  
  }  // namespace shill
  
  #endif  // SHILL_UPSTART_UPSTART_H_
  