diff options
author | Harald Radi <phanto@php.net> | 2001-09-10 10:41:01 +0000 |
---|---|---|
committer | Harald Radi <phanto@php.net> | 2001-09-10 10:41:01 +0000 |
commit | 1d6cbd1389d5138d690dca0963fb944162fe526e (patch) | |
tree | 966b92eedc306c99c806202e0590409c2faffbc5 /ext/rpc/com/variant.c | |
parent | 37cce7f16813cec615b12be266202c307e9781bc (diff) | |
download | php-git-migration/EXPERIMENTAL.tar.gz |
Diffstat (limited to 'ext/rpc/com/variant.c')
-rw-r--r-- | ext/rpc/com/variant.c | 221 |
1 files changed, 71 insertions, 150 deletions
diff --git a/ext/rpc/com/variant.c b/ext/rpc/com/variant.c index b8f2590101..5fb5760925 100644 --- a/ext/rpc/com/variant.c +++ b/ext/rpc/com/variant.c @@ -44,10 +44,12 @@ static int le_variant; static int codepage; static zend_class_entry VARIANT_class_entry; + function_entry VARIANT_functions[] = { {NULL, NULL, NULL} }; + static PHP_MINFO_FUNCTION(VARIANT) { php_info_print_table_start(); @@ -55,10 +57,12 @@ static PHP_MINFO_FUNCTION(VARIANT) php_info_print_table_end(); } + zend_module_entry VARIANT_module_entry = { "variant", VARIANT_functions, PHP_MINIT(VARIANT), PHP_MSHUTDOWN(VARIANT), NULL, NULL, PHP_MINFO(VARIANT), STANDARD_MODULE_PROPERTIES }; + PHP_MINIT_FUNCTION(VARIANT) { le_variant = zend_register_list_destructors_ex(php_VARIANT_destructor, NULL, "VARIANT", module_number); @@ -109,60 +113,60 @@ PHP_MINIT_FUNCTION(VARIANT) return SUCCESS; } + PHP_MSHUTDOWN_FUNCTION(VARIANT) { return SUCCESS; } + PHPAPI int php_VARIANT_get_le_variant() { return le_variant; } + static void php_VARIANT_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference *property_reference) { pval *object = property_reference->object; zend_overloaded_element *function_name = (zend_overloaded_element *) property_reference->elements_list->tail->data; VARIANT *pVar; - if((zend_llist_count(property_reference->elements_list)==1) && !strcmp(Z_STRVAL(function_name->element), "variant")) - { + if ((zend_llist_count(property_reference->elements_list)==1) && !strcmp(Z_STRVAL(function_name->element), "variant")) { /* constructor */ pval *object_handle, *data, *type, *code_page; ALLOC_VARIANT(pVar); VariantInit(pVar); - switch(ZEND_NUM_ARGS()) - { + switch (ZEND_NUM_ARGS()) { case 0: /* nothing to do */ break; case 1: - getParameters(ht, 1, &data); + zend_get_parameters(ht, 1, &data); php_pval_to_variant(data, pVar, codepage TSRMLS_CC); codepage = CP_ACP; break; case 2: - getParameters(ht, 2, &data, &type); + zend_get_parameters(ht, 2, &data, &type); php_pval_to_variant_ex(data, pVar, type, codepage TSRMLS_CC); codepage = CP_ACP; break; case 3: - getParameters(ht, 3, &data, &type, &code_page); + zend_get_parameters(ht, 3, &data, &type, &code_page); php_pval_to_variant_ex(data, pVar, type, codepage TSRMLS_CC); convert_to_long(code_page); codepage = code_page->value.lval; break; default: - WRONG_PARAM_COUNT; + ZEND_WRONG_PARAM_COUNT(); break; } RETVAL_LONG(zend_list_insert(pVar, IS_VARIANT)); - if(!zend_is_true(return_value)) - { + if (!zend_is_true(return_value)) { ZVAL_FALSE(object); return; } @@ -176,43 +180,35 @@ static void php_VARIANT_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend } } + static pval php_VARIANT_get_property_handler(zend_property_reference *property_reference) { zend_overloaded_element *overloaded_property; int type; - TSRMLS_FETCH(); - pval result, **var_handle, *object = property_reference->object; VARIANT *var_arg; + TSRMLS_FETCH(); + /* fetch the VARIANT structure */ zend_hash_index_find(Z_OBJPROP_P(object), 0, (void **) &var_handle); var_arg = zend_list_find(Z_LVAL_PP(var_handle), &type); - if(!var_arg || (type != IS_VARIANT)) - { + if (!var_arg || (type != IS_VARIANT)) { ZVAL_FALSE(&result); - } - else - { + } else { overloaded_property = (zend_overloaded_element *) property_reference->elements_list->head->data; - switch(overloaded_property->type) - { + switch (overloaded_property->type) { case OE_IS_ARRAY: ZVAL_FALSE(&result); break; case OE_IS_OBJECT: - if(!strcmp(overloaded_property->element.value.str.val, "value")) - { - php_variant_to_pval(var_arg, &result, 0, codepage TSRMLS_CC); - } - else if(!strcmp(Z_STRVAL(overloaded_property->element), "type")) - { + if (!strcmp(overloaded_property->element.value.str.val, "value")) { + php_variant_to_pval(var_arg, &result, codepage TSRMLS_CC); + } else if (!strcmp(Z_STRVAL(overloaded_property->element), "type")) { ZVAL_LONG(&result, V_VT(var_arg)) - } - else - { + } else { ZVAL_FALSE(&result); php_error(E_WARNING, "Unknown member."); } @@ -229,21 +225,23 @@ static pval php_VARIANT_get_property_handler(zend_property_reference *property_r return result; } + static int php_VARIANT_set_property_handler(zend_property_reference *property_reference, pval *value) { zend_overloaded_element *overloaded_property; int type; - TSRMLS_FETCH(); - pval **var_handle, *object = property_reference->object; VARIANT *var_arg; + TSRMLS_FETCH(); + /* fetch the VARIANT structure */ zend_hash_index_find(Z_OBJPROP_P(object), 0, (void **) &var_handle); var_arg = zend_list_find(Z_LVAL_PP(var_handle), &type); - if(!var_arg || (type != IS_VARIANT)) + if (!var_arg || (type != IS_VARIANT)) { return FAILURE; + } overloaded_property = (zend_overloaded_element *) property_reference->elements_list->head->data; do_VARIANT_propset(var_arg, &overloaded_property->element, value TSRMLS_CC); @@ -251,170 +249,92 @@ static int php_VARIANT_set_property_handler(zend_property_reference *property_re return SUCCESS; } + static int do_VARIANT_propset(VARIANT *var_arg, pval *arg_property, pval *value TSRMLS_DC) { pval type; Z_TYPE(type) = IS_STRING; - if(!strcmp(Z_STRVAL_P(arg_property), "bVal")) - { + if (!strcmp(Z_STRVAL_P(arg_property), "bVal")) { Z_LVAL(type) = VT_UI1; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "iVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "iVal")) { Z_LVAL(type) = VT_I2; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "lVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "lVal")) { Z_LVAL(type) = VT_I4; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "fltVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "fltVal")) { Z_LVAL(type) = VT_R4; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "dblVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "dblVal")) { Z_LVAL(type) = VT_R8; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "boolVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "boolVal")) { Z_LVAL(type) = VT_BOOL; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "scode")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "scode")) { Z_LVAL(type) = VT_ERROR; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "cyVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "cyVal")) { Z_LVAL(type) = VT_CY; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "date")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "date")) { Z_LVAL(type) = VT_DATE; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "bstrVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "bstrVal")) { Z_LVAL(type) = VT_BSTR; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pdecVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pdecVal")) { Z_LVAL(type) = VT_DECIMAL|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "punkVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "punkVal")) { Z_LVAL(type) = VT_UNKNOWN; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pdispVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pdispVal")) { Z_LVAL(type) = VT_DISPATCH; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "parray")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "parray")) { Z_LVAL(type) = VT_ARRAY; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pbVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pbVal")) { Z_LVAL(type) = VT_UI1|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "piVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "piVal")) { Z_LVAL(type) = VT_I2|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "plVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "plVal")) { Z_LVAL(type) = VT_I4|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pfltVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pfltVal")) { Z_LVAL(type) = VT_R4|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pdblVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pdblVal")) { Z_LVAL(type) = VT_R8|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pboolVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pboolVal")) { Z_LVAL(type) = VT_BOOL|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pscode")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pscode")) { Z_LVAL(type) = VT_ERROR|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pcyVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pcyVal")) { Z_LVAL(type) = VT_CY|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pdate")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pdate")) { Z_LVAL(type) = VT_DATE|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pbstrVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pbstrVal")) { Z_LVAL(type) = VT_BSTR|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "ppunkVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "ppunkVal")) { Z_LVAL(type) = VT_UNKNOWN|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "ppdispVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "ppdispVal")) { Z_LVAL(type) = VT_DISPATCH|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pparray")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pparray")) { Z_LVAL(type) = VT_ARRAY|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pvarVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pvarVal")) { Z_LVAL(type) = VT_VARIANT|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "byref")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "byref")) { Z_LVAL(type) = VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "cVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "cVal")) { Z_LVAL(type) = VT_I1; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "uiVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "uiVal")) { Z_LVAL(type) = VT_UI2; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "ulVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "ulVal")) { Z_LVAL(type) = VT_UI4; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "intVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "intVal")) { Z_LVAL(type) = VT_INT; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "uintVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "uintVal")) { Z_LVAL(type) = VT_UINT|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pcVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pcVal")) { Z_LVAL(type) = VT_I1|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "puiVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "puiVal")) { Z_LVAL(type) = VT_UI2|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pulVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pulVal")) { Z_LVAL(type) = VT_UI4|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "pintVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "pintVal")) { Z_LVAL(type) = VT_INT|VT_BYREF; - } - else if(!strcmp(Z_STRVAL_P(arg_property), "puintVal")) - { + } else if (!strcmp(Z_STRVAL_P(arg_property), "puintVal")) { Z_LVAL(type) = VT_UINT|VT_BYREF; - } - else - { + } else { php_error(E_WARNING, "Unknown member."); return FAILURE; } @@ -424,6 +344,7 @@ static int do_VARIANT_propset(VARIANT *var_arg, pval *arg_property, pval *value return SUCCESS; } + static void php_VARIANT_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC) { FREE_VARIANT(rsrc->ptr); |