Commit 96b09fef1737bfafd9309adb38051d3105e65d24
1 parent
b8868eed
Exists in
master
Atualizando módulo PHP para permitir persistência nas sessões usando o módulo de serviço.
Showing
8 changed files
with
122 additions
and
0 deletions
Show diff stats
Makefile.in
| ... | ... | @@ -230,6 +230,14 @@ run: \ |
| 230 | 230 | |
| 231 | 231 | php -d extension=$(BINDBG)/$(LIBNAME) testprograms/version.php |
| 232 | 232 | |
| 233 | +cleanDebug: | |
| 234 | + @rm -fr $(OBJDBG) | |
| 235 | + @rm -fr $(BINDBG) | |
| 236 | + | |
| 237 | +cleanRelease: | |
| 238 | + @rm -fr $(OBJRLS) | |
| 239 | + @rm -fr $(BINRLS) | |
| 240 | + | |
| 233 | 241 | clean: |
| 234 | 242 | |
| 235 | 243 | @rm -fr $(BINDIR) | ... | ... |
pw3270-php5.cbp
src/get.cc
| ... | ... | @@ -126,3 +126,53 @@ PHP_METHOD(tn3270, getrevision) |
| 126 | 126 | trace("String = [%s]",str.c_str()); |
| 127 | 127 | RETURN_STRING(str.c_str(),1); |
| 128 | 128 | } |
| 129 | + | |
| 130 | +PHP_METHOD(tn3270, getname) | |
| 131 | +{ | |
| 132 | + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); | |
| 133 | + | |
| 134 | + string str = obj->hSession->get_session_name(); | |
| 135 | + | |
| 136 | + trace("String = [%s]",str.c_str()); | |
| 137 | + RETURN_STRING(str.c_str(),1); | |
| 138 | +} | |
| 139 | + | |
| 140 | +PHP_METHOD(tn3270, __tostring) | |
| 141 | +{ | |
| 142 | + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); | |
| 143 | + string str; | |
| 144 | + | |
| 145 | + try { | |
| 146 | + | |
| 147 | + str = obj->hSession->get_contents(); | |
| 148 | + | |
| 149 | + } catch(std::exception &e) { | |
| 150 | + | |
| 151 | + str.clear(); | |
| 152 | + | |
| 153 | + } | |
| 154 | + | |
| 155 | + trace("String = [%s]",str.c_str()); | |
| 156 | + RETURN_STRING(str.c_str(),1); | |
| 157 | +} | |
| 158 | + | |
| 159 | +PHP_METHOD(tn3270, __get) | |
| 160 | +{ | |
| 161 | + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); | |
| 162 | + const char * text; | |
| 163 | + int szText; | |
| 164 | + | |
| 165 | + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &text, &szText) == FAILURE) | |
| 166 | + RETURN_NULL(); | |
| 167 | + | |
| 168 | + if(!strncasecmp("online",text,szText)) { | |
| 169 | + RETURN_BOOL(obj->hSession->is_connected()); | |
| 170 | + } else if(!strncasecmp("ready",text,szText)) { | |
| 171 | + RETURN_BOOL(obj->hSession->is_ready()); | |
| 172 | + } else if(!strncasecmp("name",text,szText)) { | |
| 173 | + string str = obj->hSession->get_session_name(); | |
| 174 | + RETURN_STRING(str.c_str(),1); | |
| 175 | + } | |
| 176 | + | |
| 177 | + RETURN_BOOL(0); | |
| 178 | +} | ... | ... |
src/main.cc
| ... | ... | @@ -43,12 +43,16 @@ static zend_object_handlers tn3270_object_handlers; |
| 43 | 43 | zend_function_entry tn3270_methods[] = |
| 44 | 44 | { |
| 45 | 45 | PHP_ME( tn3270, __construct, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
| 46 | + PHP_ME( tn3270, __tostring, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | |
| 47 | + PHP_ME( tn3270, __get, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | |
| 46 | 48 | |
| 47 | 49 | PHP_ME( tn3270, getversion, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
| 48 | 50 | PHP_ME( tn3270, getrevision, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
| 51 | + PHP_ME( tn3270, getname, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | |
| 49 | 52 | |
| 50 | 53 | PHP_ME( tn3270, connect, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
| 51 | 54 | PHP_ME( tn3270, disconnect, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
| 55 | + PHP_ME( tn3270, close, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | |
| 52 | 56 | |
| 53 | 57 | PHP_ME( tn3270, isconnected, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
| 54 | 58 | PHP_ME( tn3270, isready, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) | ... | ... |
src/misc.cc
| ... | ... | @@ -51,6 +51,8 @@ PHP_METHOD(tn3270, connect) |
| 51 | 51 | char text[szHost+1]; |
| 52 | 52 | strncpy(text,host,szHost); |
| 53 | 53 | text[szHost] = 0; |
| 54 | + | |
| 55 | + printf("[%s][%u]\n",text,(int) wait); | |
| 54 | 56 | rc = obj->hSession->connect(text,(int) wait); |
| 55 | 57 | } |
| 56 | 58 | else |
| ... | ... | @@ -137,3 +139,11 @@ PHP_METHOD(tn3270, action) |
| 137 | 139 | RETURN_LONG(obj->hSession->action(buffer)); |
| 138 | 140 | |
| 139 | 141 | } |
| 142 | + | |
| 143 | +PHP_METHOD(tn3270, close) | |
| 144 | +{ | |
| 145 | + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); | |
| 146 | + | |
| 147 | + RETURN_LONG(obj->hSession->close()); | |
| 148 | +} | |
| 149 | + | ... | ... |
src/php3270.h.in
| ... | ... | @@ -48,12 +48,17 @@ |
| 48 | 48 | |
| 49 | 49 | // 3270 session methods |
| 50 | 50 | PHP_METHOD(tn3270,__construct); |
| 51 | + PHP_METHOD(tn3270,__tostring); | |
| 52 | + PHP_METHOD(tn3270,__get); | |
| 53 | + PHP_METHOD(tn3270,__set); | |
| 51 | 54 | |
| 52 | 55 | PHP_METHOD(tn3270,getversion); |
| 53 | 56 | PHP_METHOD(tn3270,getrevision); |
| 57 | + PHP_METHOD(tn3270,getname); | |
| 54 | 58 | |
| 55 | 59 | PHP_METHOD(tn3270,connect); |
| 56 | 60 | PHP_METHOD(tn3270,disconnect); |
| 61 | + PHP_METHOD(tn3270,close); | |
| 57 | 62 | PHP_METHOD(tn3270,isconnected); |
| 58 | 63 | PHP_METHOD(tn3270,isready); |
| 59 | 64 | PHP_METHOD(tn3270,waitforready); | ... | ... |
src/set.cc
| ... | ... | @@ -86,3 +86,18 @@ PHP_METHOD(tn3270, setstringat) |
| 86 | 86 | RETURN_LONG(obj->hSession->set_string_at(row,col,buffer)); |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | +PHP_METHOD(tn3270, __set) | |
| 90 | +{ | |
| 91 | + /* | |
| 92 | + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC); | |
| 93 | + const char * name; | |
| 94 | + int szName; | |
| 95 | + const char * text; | |
| 96 | + int szText; | |
| 97 | + | |
| 98 | + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &name, &szName, &text, &szText) == FAILURE) | |
| 99 | + RETURN_NULL(); | |
| 100 | + */ | |
| 101 | + | |
| 102 | + RETURN_NULL(); | |
| 103 | +} | ... | ... |
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +<?php | |
| 2 | + | |
| 3 | + printf("PW3270 Connection test\n"); | |
| 4 | + | |
| 5 | + $host = new tn3270("service://?"); | |
| 6 | + | |
| 7 | + echo "Sessão: " . $host->name . "\n"; | |
| 8 | + | |
| 9 | + $rc = $host->connect("tn3270://fandezhi.efglobe.com:23",10); | |
| 10 | + if($rc != 0) { | |
| 11 | + die("Connection failed, rc=" . $rc . "\n"); | |
| 12 | + } | |
| 13 | + | |
| 14 | + $rc = $host->waitforready(10); | |
| 15 | + if($rc != 0) { | |
| 16 | + die("Host is not ready, rc=" . $rc . "\n"); | |
| 17 | + } | |
| 18 | + | |
| 19 | + echo "Connected: " . ($host->online ? "Yes" : "No") . "\n"; | |
| 20 | + echo "Ready: " . ($host->ready ? "Yes" : "No") . "\n"; | |
| 21 | + | |
| 22 | + echo "Contents:\n" . $host . "\n"; | |
| 23 | + | |
| 24 | + $host->disconnect(); | |
| 25 | + $host->close(); | |
| 26 | + | |
| 27 | + die("Success!!\n"); | |
| 28 | + | |
| 29 | +?> | ... | ... |