#ifndef PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_
#define PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_
#include <list>
#include "ppapi/proxy/network_list_resource.h"
#include "ppapi/proxy/plugin_resource.h"
#include "ppapi/shared_impl/scoped_pp_resource.h"
#include "ppapi/thunk/ppb_network_monitor_api.h"
namespace base {
class MessageLoopProxy;
}
namespace ppapi {
namespace proxy {
class NetworkMonitorResource : public PluginResource,
public thunk::PPB_NetworkMonitor_API {
public:
explicit NetworkMonitorResource(Connection connection,
PP_Instance instance);
virtual ~NetworkMonitorResource();
ppapi::thunk::PPB_NetworkMonitor_API* AsPPB_NetworkMonitor_API() OVERRIDE;
virtual void OnReplyReceived(const ResourceMessageReplyParams& params,
const IPC::Message& msg) OVERRIDE;
virtual int32_t UpdateNetworkList(
PP_Resource* network_list,
scoped_refptr<TrackedCallback> callback) OVERRIDE;
private:
void OnPluginMsgNetworkList(const ResourceMessageReplyParams& params,
const SerializedNetworkList& list);
void OnPluginMsgForbidden(const ResourceMessageReplyParams& params);
ScopedPPResource current_list_;
bool forbidden_;
PP_Resource* network_list_;
scoped_refptr<TrackedCallback> update_callback_;
DISALLOW_COPY_AND_ASSIGN(NetworkMonitorResource);
};
}
}
#endif