MCPcopy Create free account
hub / github.com/emscripten-core/emscripten / value_array

Class value_array

system/include/emscripten/bind.h:786–873  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

784
785template<typename ClassType>
786class value_array : public internal::noncopyable {
787public:
788 typedef ClassType class_type;
789
790 value_array(const char* name) {
791 using namespace internal;
792
793 auto constructor = &raw_constructor<ClassType>;
794 auto destructor = &raw_destructor<ClassType>;
795 _embind_register_value_array(
796 TypeID<ClassType>::get(),
797 name,
798 getSignature(constructor),
799 reinterpret_cast<GenericFunction>(constructor),
800 getSignature(destructor),
801 reinterpret_cast<GenericFunction>(destructor));
802 }
803
804 ~value_array() {
805 using namespace internal;
806 _embind_finalize_value_array(TypeID<ClassType>::get());
807 }
808
809 template<typename InstanceType, typename ElementType>
810 value_array& element(ElementType InstanceType::*field) {
811 using namespace internal;
812
813 auto getter = &MemberAccess<InstanceType, ElementType>
814 ::template getWire<ClassType>;
815 auto setter = &MemberAccess<InstanceType, ElementType>
816 ::template setWire<ClassType>;
817
818 _embind_register_value_array_element(
819 TypeID<ClassType>::get(),
820 TypeID<ElementType>::get(),
821 getSignature(getter),
822 reinterpret_cast<GenericFunction>(getter),
823 getContext(field),
824 TypeID<ElementType>::get(),
825 getSignature(setter),
826 reinterpret_cast<GenericFunction>(setter),
827 getContext(field));
828 return *this;
829 }
830
831 template<typename Getter, typename Setter>
832 value_array& element(Getter getter, Setter setter) {
833 using namespace internal;
834 typedef GetterPolicy<Getter> GP;
835 typedef SetterPolicy<Setter> SP;
836
837 auto g = &GP::template get<ClassType, rvp::default_tag>;
838 auto s = &SP::template set<ClassType>;
839
840 _embind_register_value_array_element(
841 TypeID<ClassType>::get(),
842 TypeID<typename GP::ReturnType>::get(),
843 getSignature(g),

Callers

nothing calls this directly

Calls 3

getSignatureFunction · 0.85
getContextFunction · 0.85
getFunction · 0.50

Tested by

no test coverage detected