forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathppb_network_monitor_private_proxy.h
61 lines (44 loc) · 1.95 KB
/
ppb_network_monitor_private_proxy.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Copyright (c) 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 PPAPI_PROXY_PPB_NETWORK_MONITOR_PRIVATE_PROXY_H_
#define PPAPI_PROXY_PPB_NETWORK_MONITOR_PRIVATE_PROXY_H_
#include <list>
#include "base/observer_list_threadsafe.h"
#include "ppapi/proxy/interface_proxy.h"
#include "ppapi/shared_impl/ppb_network_list_private_shared.h"
#include "ppapi/shared_impl/scoped_pp_resource.h"
#include "ppapi/thunk/ppb_network_monitor_private_api.h"
namespace base {
class MessageLoopProxy;
} // namespace base
namespace ppapi {
namespace proxy {
class PPB_NetworkMonitor_Private_Proxy : public InterfaceProxy {
public:
explicit PPB_NetworkMonitor_Private_Proxy(Dispatcher* dispatcher);
virtual ~PPB_NetworkMonitor_Private_Proxy();
// Creates n NetworkManager object in the plugin process.
static PP_Resource CreateProxyResource(PP_Instance instance,
PPB_NetworkMonitor_Callback callback,
void* user_data);
// InterfaceProxy implementation.
virtual bool OnMessageReceived(const IPC::Message& msg);
static const ApiID kApiID = API_ID_PPB_NETWORKMANAGER_PRIVATE;
private:
class NetworkMonitor;
friend class NetworkMonitor;
// IPC message handler for the messages received from the browser.
void OnPluginMsgNetworkList(uint32 plugin_dispatcher_id,
const ppapi::NetworkList& list);
// Called by NetworkMonitor destructor.
void OnNetworkMonitorDeleted(NetworkMonitor* monitor,
PP_Instance instance);
scoped_refptr<ObserverListThreadSafe<NetworkMonitor> > monitors_;
int monitors_count_;
scoped_refptr<NetworkListStorage> current_list_;
DISALLOW_COPY_AND_ASSIGN(PPB_NetworkMonitor_Private_Proxy);
};
} // namespace proxy
} // namespace ppapi
#endif // PPAPI_PROXY_PPB_NETWORK_MONITOR_PRIVATE_PROXY_H_