diff --git a/Makefile.in b/Makefile.in
index c73e918..39e9ae7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -230,6 +230,14 @@ run: \
php -d extension=$(BINDBG)/$(LIBNAME) testprograms/version.php
+cleanDebug:
+ @rm -fr $(OBJDBG)
+ @rm -fr $(BINDBG)
+
+cleanRelease:
+ @rm -fr $(OBJRLS)
+ @rm -fr $(BINRLS)
+
clean:
@rm -fr $(BINDIR)
diff --git a/pw3270-php5.cbp b/pw3270-php5.cbp
index 32015e2..5f44f15 100644
--- a/pw3270-php5.cbp
+++ b/pw3270-php5.cbp
@@ -3,6 +3,7 @@
+
diff --git a/src/get.cc b/src/get.cc
index 798c21c..b71d48e 100644
--- a/src/get.cc
+++ b/src/get.cc
@@ -126,3 +126,53 @@ PHP_METHOD(tn3270, getrevision)
trace("String = [%s]",str.c_str());
RETURN_STRING(str.c_str(),1);
}
+
+PHP_METHOD(tn3270, getname)
+{
+ tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ string str = obj->hSession->get_session_name();
+
+ trace("String = [%s]",str.c_str());
+ RETURN_STRING(str.c_str(),1);
+}
+
+PHP_METHOD(tn3270, __tostring)
+{
+ tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
+ string str;
+
+ try {
+
+ str = obj->hSession->get_contents();
+
+ } catch(std::exception &e) {
+
+ str.clear();
+
+ }
+
+ trace("String = [%s]",str.c_str());
+ RETURN_STRING(str.c_str(),1);
+}
+
+PHP_METHOD(tn3270, __get)
+{
+ tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
+ const char * text;
+ int szText;
+
+ if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &text, &szText) == FAILURE)
+ RETURN_NULL();
+
+ if(!strncasecmp("online",text,szText)) {
+ RETURN_BOOL(obj->hSession->is_connected());
+ } else if(!strncasecmp("ready",text,szText)) {
+ RETURN_BOOL(obj->hSession->is_ready());
+ } else if(!strncasecmp("name",text,szText)) {
+ string str = obj->hSession->get_session_name();
+ RETURN_STRING(str.c_str(),1);
+ }
+
+ RETURN_BOOL(0);
+}
diff --git a/src/main.cc b/src/main.cc
index 81280e9..7501621 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -43,12 +43,16 @@ static zend_object_handlers tn3270_object_handlers;
zend_function_entry tn3270_methods[] =
{
PHP_ME( tn3270, __construct, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
+ PHP_ME( tn3270, __tostring, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
+ PHP_ME( tn3270, __get, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
PHP_ME( tn3270, getversion, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
PHP_ME( tn3270, getrevision, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
+ PHP_ME( tn3270, getname, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
PHP_ME( tn3270, connect, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
PHP_ME( tn3270, disconnect, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
+ PHP_ME( tn3270, close, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
PHP_ME( tn3270, isconnected, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
PHP_ME( tn3270, isready, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
diff --git a/src/misc.cc b/src/misc.cc
index 3c4cebb..da5666e 100644
--- a/src/misc.cc
+++ b/src/misc.cc
@@ -51,6 +51,8 @@ PHP_METHOD(tn3270, connect)
char text[szHost+1];
strncpy(text,host,szHost);
text[szHost] = 0;
+
+ printf("[%s][%u]\n",text,(int) wait);
rc = obj->hSession->connect(text,(int) wait);
}
else
@@ -137,3 +139,11 @@ PHP_METHOD(tn3270, action)
RETURN_LONG(obj->hSession->action(buffer));
}
+
+PHP_METHOD(tn3270, close)
+{
+ tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ RETURN_LONG(obj->hSession->close());
+}
+
diff --git a/src/php3270.h.in b/src/php3270.h.in
index b511360..3f69e6e 100644
--- a/src/php3270.h.in
+++ b/src/php3270.h.in
@@ -48,12 +48,17 @@
// 3270 session methods
PHP_METHOD(tn3270,__construct);
+ PHP_METHOD(tn3270,__tostring);
+ PHP_METHOD(tn3270,__get);
+ PHP_METHOD(tn3270,__set);
PHP_METHOD(tn3270,getversion);
PHP_METHOD(tn3270,getrevision);
+ PHP_METHOD(tn3270,getname);
PHP_METHOD(tn3270,connect);
PHP_METHOD(tn3270,disconnect);
+ PHP_METHOD(tn3270,close);
PHP_METHOD(tn3270,isconnected);
PHP_METHOD(tn3270,isready);
PHP_METHOD(tn3270,waitforready);
diff --git a/src/set.cc b/src/set.cc
index 9cbdbeb..f973209 100644
--- a/src/set.cc
+++ b/src/set.cc
@@ -86,3 +86,18 @@ PHP_METHOD(tn3270, setstringat)
RETURN_LONG(obj->hSession->set_string_at(row,col,buffer));
}
+PHP_METHOD(tn3270, __set)
+{
+ /*
+ tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
+ const char * name;
+ int szName;
+ const char * text;
+ int szText;
+
+ if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &name, &szName, &text, &szText) == FAILURE)
+ RETURN_NULL();
+ */
+
+ RETURN_NULL();
+}
diff --git a/testprograms/service.php b/testprograms/service.php
new file mode 100644
index 0000000..fc1af86
--- /dev/null
+++ b/testprograms/service.php
@@ -0,0 +1,29 @@
+name . "\n";
+
+ $rc = $host->connect("tn3270://fandezhi.efglobe.com:23",10);
+ if($rc != 0) {
+ die("Connection failed, rc=" . $rc . "\n");
+ }
+
+ $rc = $host->waitforready(10);
+ if($rc != 0) {
+ die("Host is not ready, rc=" . $rc . "\n");
+ }
+
+ echo "Connected: " . ($host->online ? "Yes" : "No") . "\n";
+ echo "Ready: " . ($host->ready ? "Yes" : "No") . "\n";
+
+ echo "Contents:\n" . $host . "\n";
+
+ $host->disconnect();
+ $host->close();
+
+ die("Success!!\n");
+
+?>
--
libgit2 0.21.2