From 448b1b873537bed4b616c284ba75ce9392f838a9 Mon Sep 17 00:00:00 2001 From: Toon Schoenmakers Date: Thu, 17 Sep 2015 10:47:53 +0200 Subject: Added support for passing the error types in the set_error_handler --- include/call.h | 2 +- include/errors.h | 42 ++++++++++++++++++++++++++++++++++++++++++ include/value.h | 2 +- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 include/errors.h (limited to 'include') diff --git a/include/call.h b/include/call.h index 80b3c74..55e9ed6 100644 --- a/include/call.h +++ b/include/call.h @@ -47,7 +47,7 @@ inline PHPCPP_EXPORT Value require(const std::string &filename) { return requ extern PHPCPP_EXPORT Value require_once(const char *filename); inline PHPCPP_EXPORT Value require_once(const std::string &filename) { return require_once(filename.c_str()); } extern PHPCPP_EXPORT Value set_exception_handler(const std::function &handler); -extern PHPCPP_EXPORT Value set_error_handler(const std::function &handler); +extern PHPCPP_EXPORT Value set_error_handler(const std::function &handler, Error error = Error::All); extern PHPCPP_EXPORT const char *sapi_name(); /** diff --git a/include/errors.h b/include/errors.h new file mode 100644 index 0000000..e1a95d8 --- /dev/null +++ b/include/errors.h @@ -0,0 +1,42 @@ +/** + * Errors.h + * + * In this file an enumeration type is defined with all error flags. + * + * @author Toon Schoenmakers + * @copyright 2015 Copernica BV + */ + +/** + * Set up namespace + */ +namespace Php { + +/** + * Supported types of errors, this is mostly a copy from Zend/zend_errors.h + */ +enum class PHPCPP_EXPORT Error : int { + Error = (1 << 0L), + Warning = (1 << 1L), + Parse = (1 << 2L), + Notice = (1 << 3L), + CoreError = (1 << 4L), + CoreWarning = (1 << 5L), + CompileError = (1 << 6L), + CompileWarning = (1 << 7L), + UserError = (1 << 8L), + UserWarning = (1 << 9L), + UserNotice = (1 << 10L), + Strict = (1 << 11L), + RecoverableError = (1 << 12L), + Deprecated = (1 << 13L), + UserDeprecated = (1 << 14L), + + Core = (CoreError | CoreWarning), + All = (Error | Warning | Parse | Notice | CoreError | CoreWarning | CompileError | CompileWarning | UserError | UserWarning | UserNotice | RecoverableError | Deprecated | UserDeprecated ) +}; + +/** + * End of namespace + */ +} diff --git a/include/value.h b/include/value.h index bfd8e40..8c10bd8 100644 --- a/include/value.h +++ b/include/value.h @@ -1215,7 +1215,7 @@ protected: * Friend functions which have to access that zval directly */ friend Value set_exception_handler(const std::function &handler); - friend Value set_error_handler(const std::function &handler); + friend Value set_error_handler(const std::function &handler, Error error); }; /** -- cgit v1.2.3