Commit aff1fde60cb3fab520864ad5de902f649a6d3a41

Authored by perry.werneck@gmail.com
1 parent 792c9aab

Implementando extensão php

src/php/get.cc 0 → 100644
... ... @@ -0,0 +1,49 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como get.cc e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + * Referências:
  29 + *
  30 + * http://devzone.zend.com/1435/wrapping-c-classes-in-a-php-extension/
  31 + *
  32 + */
  33 +
  34 + #include "php3270.h"
  35 +
  36 +/*--[ Implement ]--------------------------------------------------------------------------------------------------*/
  37 +
  38 +PHP_METHOD(tn3270, isconnected)
  39 +{
  40 + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
  41 + RETURN_BOOL(obj->hSession->is_connected());
  42 +}
  43 +
  44 +PHP_METHOD(tn3270, isready)
  45 +{
  46 + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
  47 + RETURN_BOOL(obj->hSession->is_ready());
  48 +}
  49 +
... ...
src/php/main.cc
... ... @@ -46,6 +46,12 @@ zend_function_entry tn3270_methods[] =
46 46 PHP_ME( tn3270, connect, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
47 47 PHP_ME( tn3270, disconnect, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
48 48  
  49 + PHP_ME( tn3270, isconnected, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
  50 + PHP_ME( tn3270, isready, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
  51 +
  52 + PHP_ME( tn3270, pfkey, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
  53 + PHP_ME( tn3270, pakey, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
  54 + PHP_ME( tn3270, enter, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
49 55  
50 56 {NULL, NULL, NULL}
51 57 };
... ...
src/php/php3270.cbp
... ... @@ -48,10 +48,12 @@
48 48 <Unit filename="../classlib/remote.cc" />
49 49 <Unit filename="../classlib/session.cc" />
50 50 <Unit filename="../include/pw3270/class.h" />
  51 + <Unit filename="get.cc" />
51 52 <Unit filename="init.cc" />
52 53 <Unit filename="main.cc" />
53 54 <Unit filename="php3270.h" />
54 55 <Unit filename="sample.php" />
  56 + <Unit filename="set.cc" />
55 57 <Extensions>
56 58 <code_completion />
57 59 <envvars />
... ...
src/php/php3270.h
... ... @@ -50,6 +50,12 @@
50 50 PHP_METHOD(tn3270,__construct);
51 51 PHP_METHOD(tn3270,connect);
52 52 PHP_METHOD(tn3270,disconnect);
  53 + PHP_METHOD(tn3270,isconnected);
  54 + PHP_METHOD(tn3270,isready);
  55 +
  56 + PHP_METHOD(tn3270,pfkey);
  57 + PHP_METHOD(tn3270,pakey);
  58 + PHP_METHOD(tn3270,enter);
53 59  
54 60  
55 61 #undef PACKAGE_NAME
... ...
src/php/set.cc 0 → 100644
... ... @@ -0,0 +1,66 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como set.cc e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + * Referências:
  29 + *
  30 + * http://devzone.zend.com/1435/wrapping-c-classes-in-a-php-extension/
  31 + *
  32 + */
  33 +
  34 + #include "php3270.h"
  35 +
  36 +/*--[ Implement ]--------------------------------------------------------------------------------------------------*/
  37 +
  38 +PHP_METHOD(tn3270, pfkey)
  39 +{
  40 + long id;
  41 + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
  42 +
  43 + // http://www.php.net/manual/pt_BR/internals2.funcs.php
  44 + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &id) == FAILURE)
  45 + RETURN_NULL();
  46 +
  47 + RETURN_LONG(obj->hSession->pfkey((int) id));
  48 +}
  49 +
  50 +PHP_METHOD(tn3270, pakey)
  51 +{
  52 + long id;
  53 + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
  54 +
  55 + // http://www.php.net/manual/pt_BR/internals2.funcs.php
  56 + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &id) == FAILURE)
  57 + RETURN_NULL();
  58 +
  59 + RETURN_LONG(obj->hSession->pakey((int) id));
  60 +}
  61 +
  62 +PHP_METHOD(tn3270, enter)
  63 +{
  64 + tn3270_object * obj = (tn3270_object *) zend_object_store_get_object(getThis() TSRMLS_CC);
  65 + RETURN_LONG(obj->hSession->enter());
  66 +}
... ...