This repository has been archived on 2020-06-07. You can view files and clone it, but cannot push or open issues or pull requests.
php-armadillo/src/interfaces.hh

54 lines
1.8 KiB
C++
Raw Normal View History

//
// php-armadillo/interfaces.hh
//
// @Author CismonX
//
#ifndef PHP_ARMA_INTERFACES_HH
#define PHP_ARMA_INTERFACES_HH
2019-03-18 14:49:42 +00:00
#include "php_arma.hh"
namespace php_arma
{
2019-03-18 14:49:42 +00:00
zend_always_inline
zend_class_entry *interface_register(const char *name)
{
// Although methods are declared in interfaces as you see in the stubs,
// nothing is declared in the internal interface implementation.
return ce_init(name, nullptr, zend_register_internal_class);
}
template <typename... Ts>
zend_class_entry *interface_register(const char *name, Ts... parents)
{
return ce_init(name, nullptr, zend_register_internal_class, parents...);
}
void internal_interfaces_init();
2019-03-18 14:49:42 +00:00
extern zend_class_entry *base_ce;
2019-03-18 14:49:42 +00:00
extern zend_class_entry *vector_ce, *matrix_ce;
2019-03-18 14:49:42 +00:00
extern zend_class_entry *dense_ce, *sparse_ce;
extern zend_class_entry *dense_vector_ce, *dense_matrix_ce;
extern zend_class_entry *sparse_vector_ce, *sparse_matrix_ce;
extern zend_class_entry *resizable_ce;
2019-03-18 14:49:42 +00:00
extern zend_class_entry *resizable_vector_ce, *resizable_matrix_ce;
extern zend_class_entry *dense_resizable_vector_ce, *dense_resizable_matrix_ce;
extern zend_class_entry *sparse_resizable_vector_ce, *sparse_resizable_matrix_ce;
extern zend_class_entry *non_resizable_ce;
extern zend_class_entry *non_resizable_vector_ce, *non_resizable_matrix_ce;
extern zend_class_entry *dense_non_resizable_vector_ce, *dense_non_resizable_matrix_ce;
extern zend_class_entry *sparse_non_resizable_matrix_ce;
extern zend_class_entry *subview_ce;
extern zend_class_entry *diagonal_ce;
extern zend_class_entry *scalar_ce;
}
#endif //!PHP_ARMA_INTERFACES_HH