Commit a63046cec3713dfd78c425b8869c44f0a08c819a

Authored by perry.werneck@gmail.com
1 parent c743daed

Implementando extensão php

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 +