Home | History | Annotate | Download | only in proxy
      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