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 PPAPI_PROXY_PRINTING_RESOURCE_H_ 6#define PPAPI_PROXY_PRINTING_RESOURCE_H_ 7 8#include "ppapi/proxy/connection.h" 9#include "ppapi/proxy/plugin_resource.h" 10#include "ppapi/proxy/ppapi_proxy_export.h" 11#include "ppapi/shared_impl/tracked_callback.h" 12#include "ppapi/thunk/ppb_printing_api.h" 13 14namespace ppapi { 15namespace proxy { 16 17class PPAPI_PROXY_EXPORT PrintingResource 18 : public PluginResource, 19 public NON_EXPORTED_BASE(thunk::PPB_Printing_API) { 20 public: 21 PrintingResource(Connection connection, 22 PP_Instance instance); 23 virtual ~PrintingResource(); 24 25 // Resource overrides. 26 virtual thunk::PPB_Printing_API* AsPPB_Printing_API() OVERRIDE; 27 28 // PPB_Printing_API. 29 virtual int32_t GetDefaultPrintSettings( 30 PP_PrintSettings_Dev* print_settings, 31 scoped_refptr<TrackedCallback> callback) OVERRIDE; 32 33 private: 34 void OnPluginMsgGetDefaultPrintSettingsReply( 35 PP_PrintSettings_Dev* settings_out, 36 scoped_refptr<TrackedCallback> callback, 37 const ResourceMessageReplyParams& params, 38 const PP_PrintSettings_Dev& settings); 39 40 DISALLOW_COPY_AND_ASSIGN(PrintingResource); 41}; 42 43} // namespace proxy 44} // namespace ppapi 45 46#endif // PPAPI_PROXY_PRINTING_RESOURCE_H_ 47