php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
calendar_class.h
Go to the documentation of this file.
1/*
2 +----------------------------------------------------------------------+
3 | This source file is subject to version 3.01 of the PHP license, |
4 | that is bundled with this package in the file LICENSE, and is |
5 | available through the world-wide-web at the following url: |
6 | https://www.php.net/license/3_01.txt |
7 | If you did not receive a copy of the PHP license and are unable to |
8 | obtain it through the world-wide-web, please send a note to |
9 | license@php.net so we can mail you a copy immediately. |
10 +----------------------------------------------------------------------+
11 | Authors: Gustavo Lopes <cataphract@php.net> |
12 +----------------------------------------------------------------------+
13 */
14
15#ifndef CALENDAR_CLASS_H
16#define CALENDAR_CLASS_H
17
18//redefinition of inline in PHP headers causes problems, so include this before
19#include <math.h>
20
21#include <php.h>
22#include "intl_error.h"
23#include "intl_data.h"
24
25#ifndef USE_CALENDAR_POINTER
26typedef void Calendar;
27#else
28using icu::Calendar;
29#endif
30
31typedef struct {
32 // error handling
34
35 // ICU calendar
37
40
41static inline Calendar_object *php_intl_calendar_fetch_object(zend_object *obj) {
42 return (Calendar_object *)((char*)(obj) - XtOffsetOf(Calendar_object, zo));
43}
44#define Z_INTL_CALENDAR_P(zv) php_intl_calendar_fetch_object(Z_OBJ_P(zv))
45
46#define CALENDAR_ERROR(co) (co)->err
47#define CALENDAR_ERROR_P(co) &(CALENDAR_ERROR(co))
48
49#define CALENDAR_ERROR_CODE(co) INTL_ERROR_CODE(CALENDAR_ERROR(co))
50#define CALENDAR_ERROR_CODE_P(co) &(INTL_ERROR_CODE(CALENDAR_ERROR(co)))
51
52#define CALENDAR_METHOD_INIT_VARS INTL_METHOD_INIT_VARS(Calendar, co)
53#define CALENDAR_METHOD_FETCH_OBJECT_NO_CHECK INTL_METHOD_FETCH_OBJECT(INTL_CALENDAR, co)
54#define CALENDAR_METHOD_FETCH_OBJECT \
55 CALENDAR_METHOD_FETCH_OBJECT_NO_CHECK; \
56 if (co->ucal == NULL) \
57 { \
58 zend_throw_error(NULL, "Found unconstructed IntlCalendar"); \
59 RETURN_THROWS(); \
60 }
61
62void calendar_object_create(zval *object, Calendar *calendar);
63
65
66void calendar_object_construct(zval *object, Calendar *calendar);
67
69
71
73
74#endif /* #ifndef CALENDAR_CLASS_H */
Calendar * calendar_fetch_native_calendar(zend_object *object)
zend_class_entry * Calendar_ce_ptr
void calendar_register_IntlCalendar_class(void)
void calendar_object_construct(zval *object, Calendar *calendar)
zend_class_entry * GregorianCalendar_ce_ptr
void calendar_object_create(zval *object, Calendar *calendar)
zend_object_handlers Calendar_handlers
void Calendar
struct _intl_error intl_error
struct _zval_struct zval
#define XtOffsetOf(s_type, field)
struct _zend_class_entry zend_class_entry
struct _zend_object zend_object
struct _zend_object_handlers zend_object_handlers
Definition zend_types.h:88