diff options
Diffstat (limited to 'src/callable.h')
-rw-r--r-- | src/callable.h | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/src/callable.h b/src/callable.h deleted file mode 100644 index 293e3aa..0000000 --- a/src/callable.h +++ /dev/null @@ -1,157 +0,0 @@ -/** - * Callable.h - * - * This is an internal class that is used internally by the Function and Method - * classes, and that wraps the Zend function entry into a CPP object. - * - * This is an internal class, that is not supposed to be used or called from - * outside the PhpCpp library. - * - * @author Emiel Bruijntjes <emiel.bruijntjes@copernica.com> - * @copyright 2013 Copernica BV - */ - -/** - * Set up namespace - */ -namespace Php { - -/** - * Class definition - */ -class Callable -{ -public: - /** - * Constructor - * @param classname Name of the class - * @param function Name of the function or method - * @param type Hint for the return type - * @param arguments The arguments that are passed to the function - * @param flags Optional flags to be passed to the function - */ - Callable(const std::string &classname, const std::string &function, Type type = nullType, const std::initializer_list<Argument> &arguments = {}, int flags = 0) : - _classname(classname), _name(function), _type(type), _flags(flags) - { - // process the arguments - process(arguments); - } - - /** - * Constructor - * @param classname Name of the class - * @param function Name of the function or method - * @param type Hint for the return type - * @param arguments The arguments that are passed to the function - * @param flags Optional flags to be passed to the function - */ - Callable(const std::string &classname, const std::string &function, const std::initializer_list<Argument> &arguments = {}, int flags = 0) : - Callable(classname, function, nullType, arguments, flags) {} - - /** - * Constructor - * @param function Name of the function or method - * @param type Hint for the return type - * @param arguments The arguments that are passed to the function - * @param flags Optional flags to be passed to the function - */ - Callable(const std::string &function, Type type = nullType, const std::initializer_list<Argument> &arguments = {}, int flags = 0) : - Callable("", function, type, arguments, flags) {} - - /** - * Constructor - * @param function Name of the function or method - * @param type Hint for the return type - * @param arguments The arguments that are passed to the function - * @param flags Optional flags to be passed to the function - */ - Callable(const std::string &function, const std::initializer_list<Argument> &arguments = {}, int flags = 0) : - Callable("", function, nullType, arguments, flags) {} - - /** - * Destructor - */ - virtual ~Callable() - { - delete[] _argv; - } - - /** - * Fill a function entry - * @param entry - */ - void fill(zend_function_entry *entry); - - /** - * Invoke the method - * @param ht - * @param return_value - * @param return_value_ptr - * @param this_ptr - * @param return_value_used - * @param tsrm_ls - * @return integer - */ - int invoke(INTERNAL_FUNCTION_PARAMETERS); - -private: - /** - * Classname (in case of a member function) - * @var string - */ - std::string _classname; - - /** - * The function name - * @var string - */ - std::string _name; - - /** - * The return type - * @var Type - */ - Type _type; - - /** - * Function flags (like deprecated, abstract, private, etc) - * @var int - */ - int _flags; - - /** - * The number of arguments - * @var int - */ - int _argc; - - /** - * The number of required arguments - * @var int - */ - int _required; - - /** - * The arguments - * @var zend_arg_info[] - */ - zend_arg_info *_argv; - - /** - * Another attempt to fill internal function info - * @param entry - */ - void fill(zend_internal_function_info *info); - - /** - * Process the arguments - * @param arguments - */ - void process(const std::initializer_list<Argument> &arguments); -}; - -/** - * End of namespace - */ -} - |