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_OUTPUT_PROTECTION_RESOURCE_H_
      6 #define PPAPI_PROXY_OUTPUT_PROTECTION_RESOURCE_H_
      7 
      8 #include "base/compiler_specific.h"
      9 #include "ppapi/c/private/ppb_output_protection_private.h"
     10 #include "ppapi/proxy/device_enumeration_resource_helper.h"
     11 #include "ppapi/proxy/plugin_resource.h"
     12 #include "ppapi/thunk/ppb_output_protection_api.h"
     13 
     14 namespace ppapi {
     15 namespace proxy {
     16 
     17 class OutputProtectionResource
     18     : public PluginResource,
     19       public ::ppapi::thunk::PPB_OutputProtection_API {
     20  public:
     21   OutputProtectionResource(Connection connection,
     22                            PP_Instance instance);
     23 
     24  private:
     25   virtual ~OutputProtectionResource();
     26 
     27   // PluginResource overrides.
     28   virtual thunk::PPB_OutputProtection_API* AsPPB_OutputProtection_API()
     29       OVERRIDE;
     30 
     31   // PPB_OutputProtection_API implementation.
     32   virtual int32_t QueryStatus(
     33       uint32_t* link_mask,
     34       uint32_t* protection_mask,
     35       const scoped_refptr<TrackedCallback>& callback) OVERRIDE;
     36   virtual int32_t EnableProtection(
     37       uint32_t desired_method_mask,
     38       const scoped_refptr<TrackedCallback>& callback) OVERRIDE;
     39 
     40   void OnPluginMsgQueryStatusReply(
     41       uint32_t* out_link_mask,
     42       uint32_t* out_protection_mask,
     43       const ResourceMessageReplyParams& params,
     44       uint32_t link_mask,
     45       uint32_t protection_mask);
     46   void OnPluginMsgEnableProtectionReply(
     47       const ResourceMessageReplyParams& params);
     48 
     49   scoped_refptr<TrackedCallback> query_status_callback_;
     50   scoped_refptr<TrackedCallback> enable_protection_callback_;
     51 
     52   DISALLOW_COPY_AND_ASSIGN(OutputProtectionResource);
     53 };
     54 
     55 }  // namespace proxy
     56 }  // namespace ppapi
     57 
     58 #endif  // PPAPI_PROXY_OUTPUT_PROTECTION_RESOURCE_H_
     59