chromium/remoting/host/ftl_signaling_connector.h

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef REMOTING_HOST_FTL_SIGNALING_CONNECTOR_H_
#define REMOTING_HOST_FTL_SIGNALING_CONNECTOR_H_

#include "base/memory/raw_ptr.h"
#include "base/sequence_checker.h"
#include "base/timer/timer.h"
#include "net/base/backoff_entry.h"
#include "net/base/network_change_notifier.h"
#include "remoting/signaling/signal_strategy.h"

namespace remoting {

// FtlSignalingConnector listens for SignalStrategy status notifications
// and attempts to keep it connected when possible. When signaling is
// not connected it keeps trying to reconnect it until it is
// connected. It also monitors network state and reconnects signaling whenever
// connection type changes or IP address changes.
class FtlSignalingConnector
    : public SignalStrategy::Listener,
      public net::NetworkChangeNotifier::NetworkChangeObserver {};

}  // namespace remoting

#endif  // REMOTING_HOST_FTL_SIGNALING_CONNECTOR_H_