1 // Copyright (c) 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_TRUETYPE_FONT_SINGLETON_RESOURCE_H_ 6 #define PPAPI_PROXY_TRUETYPE_FONT_SINGLETON_RESOURCE_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "ppapi/proxy/connection.h" 12 #include "ppapi/proxy/plugin_resource.h" 13 #include "ppapi/thunk/ppb_truetype_font_singleton_api.h" 14 15 namespace ppapi { 16 17 class TrackedCallback; 18 19 namespace proxy { 20 21 struct SerializedTrueTypeFontDesc; 22 23 // This handles the singleton calls (that don't take a PP_Resource parameter) 24 // on the TrueType font interface. 25 class TrueTypeFontSingletonResource 26 : public PluginResource, 27 public thunk::PPB_TrueTypeFont_Singleton_API { 28 public: 29 TrueTypeFontSingletonResource(Connection connection, PP_Instance instance); 30 virtual ~TrueTypeFontSingletonResource(); 31 32 // Resource override. 33 virtual thunk::PPB_TrueTypeFont_Singleton_API* 34 AsPPB_TrueTypeFont_Singleton_API() OVERRIDE; 35 36 // thunk::PPB_TrueTypeFont_Singleton_API implementation. 37 virtual int32_t GetFontFamilies( 38 PP_Instance instance, 39 const PP_ArrayOutput& output, 40 const scoped_refptr<TrackedCallback>& callback) OVERRIDE; 41 virtual int32_t GetFontsInFamily( 42 PP_Instance instance, 43 PP_Var family, 44 const PP_ArrayOutput& output, 45 const scoped_refptr<TrackedCallback>& callback) OVERRIDE; 46 47 private: 48 void OnPluginMsgGetFontFamiliesComplete( 49 scoped_refptr<TrackedCallback> callback, 50 PP_ArrayOutput array_output, 51 const ResourceMessageReplyParams& params, 52 const std::vector<std::string>& data); 53 void OnPluginMsgGetFontsInFamilyComplete( 54 scoped_refptr<TrackedCallback> callback, 55 PP_ArrayOutput array_output, 56 const ResourceMessageReplyParams& params, 57 const std::vector<SerializedTrueTypeFontDesc>& fonts); 58 59 DISALLOW_COPY_AND_ASSIGN(TrueTypeFontSingletonResource); 60 }; 61 62 } // namespace proxy 63 } // namespace ppapi 64 65 #endif // PPAPI_PROXY_TRUETYPE_FONT_SINGLETON_RESOURCE_H_ 66