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 | + | ... | ... |