Home | History | Annotate | Download | only in proxy
      1 // Copyright 2013 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 PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_
      6 #define PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_
      7 
      8 #include <list>
      9 
     10 #include "ppapi/proxy/network_list_resource.h"
     11 #include "ppapi/proxy/plugin_resource.h"
     12 #include "ppapi/shared_impl/scoped_pp_resource.h"
     13 #include "ppapi/thunk/ppb_network_monitor_api.h"
     14 
     15 namespace base {
     16 class MessageLoopProxy;
     17 }  // namespace base
     18 
     19 namespace ppapi {
     20 namespace proxy {
     21 
     22 class NetworkMonitorResource : public PluginResource,
     23                                public thunk::PPB_NetworkMonitor_API {
     24  public:
     25   explicit NetworkMonitorResource(Connection connection,
     26                                   PP_Instance instance);
     27   virtual ~NetworkMonitorResource();
     28 
     29   // PluginResource overrides.
     30   ppapi::thunk::PPB_NetworkMonitor_API* AsPPB_NetworkMonitor_API() OVERRIDE;
     31   virtual void OnReplyReceived(const ResourceMessageReplyParams& params,
     32                                const IPC::Message& msg) OVERRIDE;
     33 
     34   // thunk::PPB_NetworkMonitor_API interface
     35   virtual int32_t UpdateNetworkList(
     36       PP_Resource* network_list,
     37       scoped_refptr<TrackedCallback> callback) OVERRIDE;
     38 
     39  private:
     40   // IPC message handlers for the messages received from the browser.
     41   void OnPluginMsgNetworkList(const ResourceMessageReplyParams& params,
     42                               const SerializedNetworkList& list);
     43   void OnPluginMsgForbidden(const ResourceMessageReplyParams& params);
     44 
     45   ScopedPPResource current_list_;
     46   bool forbidden_;
     47 
     48   // Parameters passed to UpdateNetworkList().
     49   PP_Resource* network_list_;
     50   scoped_refptr<TrackedCallback> update_callback_;
     51 
     52   DISALLOW_COPY_AND_ASSIGN(NetworkMonitorResource);
     53 };
     54 
     55 }  // namespace proxy
     56 }  // namespace ppapi
     57 
     58 #endif  // PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_
     59