Commit a63046cec3713dfd78c425b8869c44f0a08c819a
1 parent
c743daed
Exists in
master
and in
5 other branches
Implementando extensão php
Showing
4 changed files
with
64 additions
and
0 deletions
Show diff stats
src/php/get.cc
| ... | ... | @@ -47,3 +47,37 @@ PHP_METHOD(tn3270, isready) |
| 47 | 47 | RETURN_BOOL(obj->hSession->is_ready()); |
| 48 | 48 | } |
| 49 | 49 | |
| 50 | +PHP_METHOD(tn3270, getstringat) | |
| 51 | +{ | |
| 52 | + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); | |
| 53 | + long row; | |
| 54 | + long col; | |
| 55 | + long sz; | |
| 56 | + | |
| 57 | + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll", &row, &col, &sz) == FAILURE) | |
| 58 | + RETURN_NULL(); | |
| 59 | + | |
| 60 | + RETURN_STRING(obj->hSession->get_string_at(row,col,sz).c_str(),1); | |
| 61 | +} | |
| 62 | + | |
| 63 | +PHP_METHOD(tn3270, cmpstringat) | |
| 64 | +{ | |
| 65 | + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); | |
| 66 | + long row; | |
| 67 | + long col; | |
| 68 | + const char * text; | |
| 69 | + int szText; | |
| 70 | + | |
| 71 | + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls", &row, &col, &text, &szText) == FAILURE) | |
| 72 | + RETURN_NULL(); | |
| 73 | + | |
| 74 | + if(!szText) | |
| 75 | + RETURN_NULL(); | |
| 76 | + | |
| 77 | + char buffer[szText+1]; | |
| 78 | + memcpy(buffer,text,szText); | |
| 79 | + buffer[szText] = 0; | |
| 80 | + | |
| 81 | + RETURN_LONG(obj->hSession->cmp_string_at(row,col,buffer)); | |
| 82 | +} | |
| 83 | + | ... | ... |
src/php/main.cc
| ... | ... | @@ -58,6 +58,10 @@ zend_function_entry tn3270_methods[] = |
| 58 | 58 | PHP_ME( tn3270, pakey, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
| 59 | 59 | PHP_ME( tn3270, enter, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
| 60 | 60 | |
| 61 | + PHP_ME( tn3270, getstringat, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | |
| 62 | + PHP_ME( tn3270, setstringat, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | |
| 63 | + PHP_ME( tn3270, cmpstringat, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | |
| 64 | + | |
| 61 | 65 | {NULL, NULL, NULL} |
| 62 | 66 | }; |
| 63 | 67 | ... | ... |
src/php/php3270.h
src/php/set.cc
| ... | ... | @@ -64,3 +64,25 @@ PHP_METHOD(tn3270, enter) |
| 64 | 64 | tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); |
| 65 | 65 | RETURN_LONG(obj->hSession->enter()); |
| 66 | 66 | } |
| 67 | + | |
| 68 | +PHP_METHOD(tn3270, setstringat) | |
| 69 | +{ | |
| 70 | + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); | |
| 71 | + long row; | |
| 72 | + long col; | |
| 73 | + const char * text; | |
| 74 | + int szText; | |
| 75 | + | |
| 76 | + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls", &row, &col, &text, &szText) == FAILURE) | |
| 77 | + RETURN_NULL(); | |
| 78 | + | |
| 79 | + if(!szText) | |
| 80 | + RETURN_NULL(); | |
| 81 | + | |
| 82 | + char buffer[szText+1]; | |
| 83 | + memcpy(buffer,text,szText); | |
| 84 | + buffer[szText] = 0; | |
| 85 | + | |
| 86 | + RETURN_LONG(obj->hSession->set_string_at(row,col,buffer)); | |
| 87 | +} | |
| 88 | + | ... | ... |