blob: 120cb0e97aeb031d2da42db308397a4d3d15d8a9 [file] [log] [blame]
// Copyright 2012 The Chromium 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 IOS_CHROME_BROWSER_NET_CONNECTION_TYPE_OBSERVER_BRIDGE_H_
#define IOS_CHROME_BROWSER_NET_CONNECTION_TYPE_OBSERVER_BRIDGE_H_
#include "base/macros.h"
#include "net/base/network_change_notifier.h"
// Protocol mirroring net::NetworkChangeNotifier::ConnectionTypeObserver.
@protocol CRConnectionTypeObserverBridge
- (void)connectionTypeChanged:(net::NetworkChangeNotifier::ConnectionType)type;
@end
// A C++ bridge class to handle receiving notifications from the C++ class
// that observes the connection type.
class ConnectionTypeObserverBridge
: public net::NetworkChangeNotifier::ConnectionTypeObserver {
public:
explicit ConnectionTypeObserverBridge(
id<CRConnectionTypeObserverBridge> delegate);
~ConnectionTypeObserverBridge() override;
private:
// net::NetworkChangeNotifier::ConnectionTypeObserver implementation:
void OnConnectionTypeChanged(
net::NetworkChangeNotifier::ConnectionType type) override;
id<CRConnectionTypeObserverBridge> delegate_; // Weak, owns this.
DISALLOW_COPY_AND_ASSIGN(ConnectionTypeObserverBridge);
};
#endif // IOS_CHROME_BROWSER_NET_CONNECTION_TYPE_OBSERVER_BRIDGE_H_