5 #ifndef PPAPI_CPP_OUTPUT_TRAITS_H_
6 #define PPAPI_CPP_OUTPUT_TRAITS_H_
10 #include "ppapi/c/pp_resource.h"
33 template<
typename,
typename>
struct IsSame {
34 static bool const value =
false;
36 template<
typename A>
struct IsSame<A, A> {
39 template<
typename Base,
typename Derived>
struct IsBaseOf {
44 typedef char (*EnsureTypesAreComplete)[
sizeof(Base) +
sizeof(Derived)];
46 static Derived* CreateDerived();
47 static char (&Check(Base*))[1];
48 static char (&Check(...))[2];
51 static bool const value =
sizeof Check(CreateDerived()) == 1 &&
133 :
public InheritIf<GenericCallbackOutputTraits<T>,
134 !IsBaseOf<Resource, T>::value>,
135 public InheritIf<ResourceCallbackOutputTraits<T>,
136 IsBaseOf<Resource, T>::value> {
160 *t = PP_MakeUndefined();
247 :
public InheritIf<GenericVectorCallbackOutputTraits<T>,
248 !IsBaseOf<Resource, T>::value>,
249 public InheritIf<ResourceVectorCallbackOutputTraits<T>,
250 IsBaseOf<Resource, T>::value> {
282 #endif // PPAPI_CPP_OUTPUT_TRAITS_H_
static void Initialize(StorageType *)
const PP_ArrayOutput & pp_array_output()
PP_ArrayOutput APIArgType
static pp::Var StorageToPluginArg(StorageType &t)
static std::vector< T > & StorageToPluginArg(StorageType &t)
static void Initialize(StorageType *t)
static void Initialize(StorageType *)
PP_ArrayOutput APIArgType
static APIArgType StorageToAPIArg(StorageType &t)
std::vector< T > & output()
static std::vector< pp::Var > & StorageToPluginArg(StorageType &t)
static APIArgType StorageToAPIArg(StorageType &t)
VarArrayOutputAdapterWithStorage StorageType
ResourceArrayOutputAdapterWithStorage< T > StorageType
static APIArgType StorageToAPIArg(StorageType &t)
PP_ArrayOutput APIArgType
static T & StorageToPluginArg(StorageType &t)
static APIArgType StorageToAPIArg(StorageType &t)
static APIArgType StorageToAPIArg(StorageType &t)
std::vector< T > & output()
static T StorageToPluginArg(StorageType &t)
static APIArgType StorageToAPIArg(StorageType &t)
static std::vector< T > & StorageToPluginArg(StorageType &t)
static void Initialize(StorageType *t)
static void Initialize(StorageType *t)
ArrayOutputAdapterWithStorage< T > StorageType
static bool StorageToPluginArg(StorageType &t)
A generic type used for passing data types between the module and the page.
static APIArgType StorageToAPIArg(StorageType &t)
static void Initialize(StorageType *)
std::vector< Var > & output()
static void Initialize(StorageType *)