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 LIBRARIES_NACL_IO_REAL_PEPPER_INTERFACE_H_ 6 #define LIBRARIES_NACL_IO_REAL_PEPPER_INTERFACE_H_ 7 8 #include <ppapi/c/ppb.h> 9 #include <ppapi/c/ppb_core.h> 10 #include <ppapi/c/ppb_message_loop.h> 11 #include "pepper_interface.h" 12 13 namespace nacl_io { 14 15 // Forward declare interface classes. 16 #include "nacl_io/pepper/undef_macros.h" 17 #include "nacl_io/pepper/define_empty_macros.h" 18 #undef BEGIN_INTERFACE 19 #define BEGIN_INTERFACE(BaseClass, PPInterface, InterfaceString) \ 20 class Real##BaseClass; 21 #include "nacl_io/pepper/all_interfaces.h" 22 23 class RealPepperInterface : public PepperInterface { 24 public: 25 RealPepperInterface(PP_Instance instance, 26 PPB_GetInterface get_browser_interface); 27 28 virtual PP_Instance GetInstance(); 29 30 // Interface getters. 31 #include "nacl_io/pepper/undef_macros.h" 32 #include "nacl_io/pepper/define_empty_macros.h" 33 #undef BEGIN_INTERFACE 34 #define BEGIN_INTERFACE(BaseClass, PPInterface, InterfaceString) \ 35 virtual BaseClass* Get##BaseClass(); 36 #include "nacl_io/pepper/all_interfaces.h" 37 38 private: 39 PP_Instance instance_; 40 41 // Interface pointers. 42 #include "nacl_io/pepper/undef_macros.h" 43 #include "nacl_io/pepper/define_empty_macros.h" 44 #undef BEGIN_INTERFACE 45 #define BEGIN_INTERFACE(BaseClass, PPInterface, InterfaceString) \ 46 Real##BaseClass* BaseClass##interface_; 47 #include "nacl_io/pepper/all_interfaces.h" 48 }; 49 50 } // namespace nacl_io 51 52 #endif // LIBRARIES_NACL_IO_REAL_PEPPER_INTERFACE_H_ 53