php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
resourcebundle_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: Hans-Peter Oeri (University of St.Gallen) <hp@oeri.ch> |
12 +----------------------------------------------------------------------+
13 */
14
15#ifndef RESOURCEBUNDLE_CLASS_H
16#define RESOURCEBUNDLE_CLASS_H
17
18#include <unicode/ures.h>
19
20#include <zend.h>
21#include "php.h"
22
23#include "intl_error.h"
24
25typedef struct {
27
28 UResourceBundle *me;
29 UResourceBundle *child;
32
33static inline ResourceBundle_object *php_intl_resourcebundle_fetch_object(zend_object *obj) {
34 return (ResourceBundle_object *)((char*)(obj) - XtOffsetOf(ResourceBundle_object, zend));
35}
36#define Z_INTL_RESOURCEBUNDLE_P(zv) php_intl_resourcebundle_fetch_object(Z_OBJ_P(zv))
37
38#define RESOURCEBUNDLE_METHOD_INIT_VARS INTL_METHOD_INIT_VARS(ResourceBundle, rb)
39#define RESOURCEBUNDLE_METHOD_FETCH_OBJECT_NO_CHECK INTL_METHOD_FETCH_OBJECT(INTL_RESOURCEBUNDLE, rb)
40#define RESOURCEBUNDLE_METHOD_FETCH_OBJECT \
41 INTL_METHOD_FETCH_OBJECT(INTL_RESOURCEBUNDLE, rb); \
42 if (RESOURCEBUNDLE_OBJECT(rb) == NULL) { \
43 zend_throw_error(NULL, "Found unconstructed ResourceBundle"); \
44 RETURN_THROWS(); \
45 }
46
47#define RESOURCEBUNDLE_OBJECT(rb) (rb)->me
48
51
52#endif // #ifndef RESOURCEBUNDLE_CLASS_H
struct _intl_error intl_error
zend_class_entry * ResourceBundle_ce_ptr
void resourcebundle_register_class(void)
#define XtOffsetOf(s_type, field)
struct _zend_class_entry zend_class_entry
struct _zend_object zend_object