Shaka Player Embedded
Classes | Namespaces | Macros
struct.h File Reference
#include <memory>
#include <string>
#include <type_traits>
#include <vector>
#include "src/mapping/convert_js.h"
#include "src/mapping/generic_converter.h"
#include "src/mapping/js_wrappers.h"
#include "src/mapping/weak_js_ptr.h"
#include "src/memory/heap_tracer.h"
#include "src/util/templates.h"

Go to the source code of this file.

Classes

class  shaka::impl::FieldConverterBase
 
class  shaka::impl::FieldConverter< Parent, Field >
 
class  shaka::Struct
 

Namespaces

 shaka
 
 shaka::impl
 

Macros

#define THIS_TYPE   std::decay<decltype(*this)>::type
 
#define ADD_NAMED_DICT_FIELD(member, name, ...)   __VA_ARGS__ member = CreateFieldConverter(name, &THIS_TYPE::member)
 
#define ADD_DICT_FIELD(member, ...)   ADD_NAMED_DICT_FIELD(member, #member, __VA_ARGS__)
 
#define DECLARE_STRUCT_SPECIAL_METHODS_COPYABLE(Type)
 
#define DEFINE_STRUCT_SPECIAL_METHODS_COPYABLE(Type)
 
#define DECLARE_STRUCT_SPECIAL_METHODS_MOVE_ONLY(Type)
 
#define DEFINE_STRUCT_SPECIAL_METHODS_MOVE_ONLY(Type)
 

Macro Definition Documentation

§ ADD_DICT_FIELD

#define ADD_DICT_FIELD (   member,
  ... 
)    ADD_NAMED_DICT_FIELD(member, #member, __VA_ARGS__)

Definition at line 39 of file struct.h.

§ ADD_NAMED_DICT_FIELD

#define ADD_NAMED_DICT_FIELD (   member,
  name,
  ... 
)    __VA_ARGS__ member = CreateFieldConverter(name, &THIS_TYPE::member)

Definition at line 37 of file struct.h.

§ DECLARE_STRUCT_SPECIAL_METHODS_COPYABLE

#define DECLARE_STRUCT_SPECIAL_METHODS_COPYABLE (   Type)
Value:
static std::string name() { \
return #Type; \
} \
Type(); \
Type(const Type&); \
Type(Type&&); \
~Type() override; \
Type& operator=(const Type&); \
Type& operator=(Type&&)
const char * name

Definition at line 42 of file struct.h.

§ DECLARE_STRUCT_SPECIAL_METHODS_MOVE_ONLY

#define DECLARE_STRUCT_SPECIAL_METHODS_MOVE_ONLY (   Type)
Value:
static std::string name() { \
return #Type; \
} \
Type(); \
Type(const Type&) = delete; \
Type(Type&&); \
~Type() override; \
Type& operator=(const Type&) = delete; \
Type& operator=(Type&&)
const char * name

Definition at line 59 of file struct.h.

§ DEFINE_STRUCT_SPECIAL_METHODS_COPYABLE

#define DEFINE_STRUCT_SPECIAL_METHODS_COPYABLE (   Type)
Value:
Type::Type() {} \
Type::Type(const Type&) = default; \
Type::Type(Type&&) = default; \
Type::~Type() {} \
Type& Type::operator=(const Type&) = default; \
Type& Type::operator=(Type&&) = default

Definition at line 52 of file struct.h.

§ DEFINE_STRUCT_SPECIAL_METHODS_MOVE_ONLY

#define DEFINE_STRUCT_SPECIAL_METHODS_MOVE_ONLY (   Type)
Value:
Type::Type() {} \
Type::Type(Type&&) = default; \
Type::~Type() {} \
Type& Type::operator=(Type&&) = default

Definition at line 69 of file struct.h.

§ THIS_TYPE

#define THIS_TYPE   std::decay<decltype(*this)>::type

Definition at line 35 of file struct.h.