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_THUNK_EXTENSIONS_COMMON_API_H_ 6 #define PPAPI_THUNK_EXTENSIONS_COMMON_API_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "base/memory/ref_counted.h" 12 #include "ppapi/c/pp_var.h" 13 #include "ppapi/shared_impl/singleton_resource_id.h" 14 #include "ppapi/shared_impl/tracked_callback.h" 15 #include "ppapi/thunk/ppapi_thunk_export.h" 16 17 namespace ppapi { 18 namespace thunk { 19 20 class PPAPI_THUNK_EXPORT ExtensionsCommon_API { 21 public: 22 virtual ~ExtensionsCommon_API() {} 23 24 virtual int32_t CallRenderer(const std::string& request_name, 25 const std::vector<PP_Var>& input_args, 26 const std::vector<PP_Var*>& output_args, 27 scoped_refptr<TrackedCallback> callback) = 0; 28 virtual void PostRenderer(const std::string& request_name, 29 const std::vector<PP_Var>& args) = 0; 30 virtual int32_t CallBrowser(const std::string& request_name, 31 const std::vector<PP_Var>& input_args, 32 const std::vector<PP_Var*>& output_args, 33 scoped_refptr<TrackedCallback> callback) = 0; 34 virtual void PostBrowser(const std::string& request_name, 35 const std::vector<PP_Var>& args) = 0; 36 37 static const SingletonResourceID kSingletonResourceID = 38 EXTENSIONS_COMMON_SINGLETON_ID; 39 }; 40 41 } // namespace thunk 42 } // namespace ppapi 43 44 #endif // PPAPI_THUNK_EXTENSIONS_COMMON_API_H_ 45