Home | History | Annotate | Download | only in base
      1 // Copyright (c) 2012 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 NET_BASE_NETWORK_CHANGE_NOTIFIER_LINUX_H_
      6 #define NET_BASE_NETWORK_CHANGE_NOTIFIER_LINUX_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/compiler_specific.h"
     10 #include "base/memory/scoped_ptr.h"
     11 #include "net/base/net_export.h"
     12 #include "net/base/network_change_notifier.h"
     13 
     14 namespace net {
     15 
     16 class NET_EXPORT_PRIVATE NetworkChangeNotifierLinux
     17     : public NetworkChangeNotifier {
     18  public:
     19   static NetworkChangeNotifierLinux* Create();
     20 
     21  private:
     22   class Thread;
     23 
     24   NetworkChangeNotifierLinux();
     25   virtual ~NetworkChangeNotifierLinux();
     26   static NetworkChangeCalculatorParams NetworkChangeCalculatorParamsLinux();
     27 
     28   // NetworkChangeNotifier:
     29   virtual ConnectionType GetCurrentConnectionType() const OVERRIDE;
     30 
     31   virtual const internal::AddressTrackerLinux*
     32       GetAddressTrackerInternal() const OVERRIDE;
     33 
     34   // The thread used to listen for notifications.  This relays the notification
     35   // to the registered observers without posting back to the thread the object
     36   // was created on.
     37   // Also used for DnsConfigService which requires TYPE_IO message loop.
     38   scoped_ptr<Thread> notifier_thread_;
     39 
     40   DISALLOW_COPY_AND_ASSIGN(NetworkChangeNotifierLinux);
     41 };
     42 
     43 }  // namespace net
     44 
     45 #endif  // NET_BASE_NETWORK_CHANGE_NOTIFIER_LINUX_H_
     46