- Notifications
You must be signed in to change notification settings - Fork 7.8k
/
Copy pathzend_interfaces.h
81 lines (65 loc) · 4.02 KB
/
zend_interfaces.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Marcus Boerger <helly@php.net> |
+----------------------------------------------------------------------+
*/
#ifndefZEND_INTERFACES_H
#defineZEND_INTERFACES_H
#include"zend.h"
#include"zend_API.h"
BEGIN_EXTERN_C()
externZEND_APIzend_class_entry*zend_ce_traversable;
externZEND_APIzend_class_entry*zend_ce_aggregate;
externZEND_APIzend_class_entry*zend_ce_iterator;
externZEND_APIzend_class_entry*zend_ce_arrayaccess;
externZEND_APIzend_class_entry*zend_ce_serializable;
externZEND_APIzend_class_entry*zend_ce_countable;
externZEND_APIzend_class_entry*zend_ce_stringable;
typedefstruct_zend_user_iterator {
zend_object_iteratorit;
zend_class_entry*ce;
zvalvalue;
} zend_user_iterator;
ZEND_APIzval*zend_call_method(zend_object*object, zend_class_entry*obj_ce, zend_function**fn_proxy, constchar*function_name, size_tfunction_name_len, zval*retval, uint32_tparam_count, zval*arg1, zval*arg2);
staticzend_always_inlinezval*zend_call_method_with_0_params(zend_object*object, zend_class_entry*obj_ce,
zend_function**fn_proxy, constchar*function_name, zval*retval)
{
returnzend_call_method(object, obj_ce, fn_proxy, function_name, strlen(function_name), retval, 0, NULL, NULL);
}
staticzend_always_inlinezval*zend_call_method_with_1_params(zend_object*object, zend_class_entry*obj_ce,
zend_function**fn_proxy, constchar*function_name, zval*retval, zval*arg1)
{
returnzend_call_method(object, obj_ce, fn_proxy, function_name, strlen(function_name), retval, 1, arg1, NULL);
}
staticzend_always_inlinezval*zend_call_method_with_2_params(zend_object*object, zend_class_entry*obj_ce,
zend_function**fn_proxy, constchar*function_name, zval*retval, zval*arg1, zval*arg2)
{
returnzend_call_method(object, obj_ce, fn_proxy, function_name, strlen(function_name), retval, 2, arg1, arg2);
}
ZEND_APIvoidzend_user_it_rewind(zend_object_iterator*_iter);
ZEND_APIzend_resultzend_user_it_valid(zend_object_iterator*_iter);
ZEND_APIvoidzend_user_it_get_current_key(zend_object_iterator*_iter, zval*key);
ZEND_APIzval*zend_user_it_get_current_data(zend_object_iterator*_iter);
ZEND_APIvoidzend_user_it_move_forward(zend_object_iterator*_iter);
ZEND_APIvoidzend_user_it_invalidate_current(zend_object_iterator*_iter);
ZEND_APIHashTable*zend_user_it_get_gc(zend_object_iterator*_iter, zval**table, int*n);
ZEND_APIvoidzend_user_it_new_iterator(zend_class_entry*ce, zval*object, zval*iterator);
ZEND_APIzend_object_iterator*zend_user_it_get_new_iterator(zend_class_entry*ce, zval*object, intby_ref);
ZEND_APIvoidzend_register_interfaces(void);
ZEND_APIintzend_user_serialize(zval*object, unsigned char**buffer, size_t*buf_len, zend_serialize_data*data);
ZEND_APIintzend_user_unserialize(zval*object, zend_class_entry*ce, constunsigned char*buf, size_tbuf_len, zend_unserialize_data*data);
ZEND_APIzend_resultzend_create_internal_iterator_zval(zval*return_value, zval*obj);
END_EXTERN_C()
#endif/* ZEND_INTERFACES_H */