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,3 +47,37 @@ PHP_METHOD(tn3270, isready) | ||
47 | RETURN_BOOL(obj->hSession->is_ready()); | 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,6 +58,10 @@ zend_function_entry tn3270_methods[] = | ||
58 | PHP_ME( tn3270, pakey, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | 58 | PHP_ME( tn3270, pakey, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
59 | PHP_ME( tn3270, enter, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | 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 | {NULL, NULL, NULL} | 65 | {NULL, NULL, NULL} |
62 | }; | 66 | }; |
63 | 67 |
src/php/php3270.h
@@ -60,6 +60,10 @@ | @@ -60,6 +60,10 @@ | ||
60 | PHP_METHOD(tn3270,pakey); | 60 | PHP_METHOD(tn3270,pakey); |
61 | PHP_METHOD(tn3270,enter); | 61 | PHP_METHOD(tn3270,enter); |
62 | 62 | ||
63 | + PHP_METHOD(tn3270,getstringat); | ||
64 | + PHP_METHOD(tn3270,setstringat); | ||
65 | + PHP_METHOD(tn3270,cmpstringat); | ||
66 | + | ||
63 | 67 | ||
64 | #undef PACKAGE_NAME | 68 | #undef PACKAGE_NAME |
65 | #undef PACKAGE_VERSION | 69 | #undef PACKAGE_VERSION |
src/php/set.cc
@@ -64,3 +64,25 @@ PHP_METHOD(tn3270, enter) | @@ -64,3 +64,25 @@ PHP_METHOD(tn3270, enter) | ||
64 | tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); | 64 | tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); |
65 | RETURN_LONG(obj->hSession->enter()); | 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 | + |