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 CONTENT_RENDERER_PEPPER_PPB_NETWORK_MONITOR_PRIVATE_IMPL_H_ 6 #define CONTENT_RENDERER_PEPPER_PPB_NETWORK_MONITOR_PRIVATE_IMPL_H_ 7 8 #include "base/basictypes.h" 9 #include "base/compiler_specific.h" 10 #include "content/renderer/p2p/network_list_observer.h" 11 #include "ppapi/c/private/ppb_network_monitor_private.h" 12 #include "ppapi/shared_impl/resource.h" 13 #include "ppapi/thunk/ppb_network_monitor_private_api.h" 14 15 namespace content { 16 17 class PPB_NetworkMonitor_Private_Impl 18 : public ppapi::Resource, 19 public ppapi::thunk::PPB_NetworkMonitor_Private_API, 20 public content::NetworkListObserver { 21 public: 22 static PP_Resource Create(PP_Instance instance, 23 PPB_NetworkMonitor_Callback callback, 24 void* user_data); 25 26 virtual ppapi::thunk::PPB_NetworkMonitor_Private_API* 27 AsPPB_NetworkMonitor_Private_API() OVERRIDE; 28 29 // NetworkListObserver interface. 30 virtual void OnNetworkListChanged( 31 const net::NetworkInterfaceList& list) OVERRIDE; 32 33 private: 34 PPB_NetworkMonitor_Private_Impl(PP_Instance instance, 35 PPB_NetworkMonitor_Callback callback, 36 void* user_data); 37 virtual ~PPB_NetworkMonitor_Private_Impl(); 38 39 bool Start(); 40 41 PPB_NetworkMonitor_Callback callback_; 42 void* user_data_; 43 bool started_; 44 45 DISALLOW_COPY_AND_ASSIGN(PPB_NetworkMonitor_Private_Impl); 46 }; 47 48 } // namespace content 49 50 #endif // CONTENT_RENDERER_PEPPER_PPB_NETWORK_MONITOR_PRIVATE_IMPL_H_ 51