Commit 694ca33b93aa5e0d3421460af051c58e5314cfa3

Authored by Perry Werneck
1 parent 5fa0fc68
Exists in master

Mudando nome da lib para pw3270.

@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 # 25 #
26 26
27 GLUELIB=lib3270-mono@DLLEXT@ 27 GLUELIB=lib3270-mono@DLLEXT@
28 -LIBNAME=tn3270-sharp.dll 28 +LIBNAME=pw3270-sharp.dll
29 29
30 #---[ Configuration values ]------------------------------------------------------------- 30 #---[ Configuration values ]-------------------------------------------------------------
31 31
@@ -84,9 +84,9 @@ Release: \ @@ -84,9 +84,9 @@ Release: \
84 $(BINRLS)/$(LIBNAME) 84 $(BINRLS)/$(LIBNAME)
85 85
86 zip: \ 86 zip: \
87 - tn3270-sharp-@PACKAGE_VERSION@.@host@.zip 87 + pw3270-sharp-@PACKAGE_VERSION@.@host@.zip
88 88
89 -tn3270-sharp-@PACKAGE_VERSION@.@host@.zip: \ 89 +pw3270-sharp-@PACKAGE_VERSION@.@host@.zip: \
90 $(BINRLS)/$(GLUELIB) \ 90 $(BINRLS)/$(GLUELIB) \
91 $(BINRLS)/$(LIBNAME) \ 91 $(BINRLS)/$(LIBNAME) \
92 $(BINRLS)/sample.exe 92 $(BINRLS)/sample.exe
@@ -96,7 +96,7 @@ tn3270-sharp-@PACKAGE_VERSION@.@host@.zip: \ @@ -96,7 +96,7 @@ tn3270-sharp-@PACKAGE_VERSION@.@host@.zip: \
96 $(BINRLS)/$(LIBNAME) \ 96 $(BINRLS)/$(LIBNAME) \
97 $(BINRLS)/*.xml \ 97 $(BINRLS)/*.xml \
98 testprograms/sample.cs \ 98 testprograms/sample.cs \
99 - src/tn3270-sharp/tn3270-sharp.cs \ 99 + src/pw3270-sharp/pw3270-sharp.cs \
100 $(BINRLS)/sample.exe 100 $(BINRLS)/sample.exe
101 101
102 102
@@ -108,10 +108,10 @@ $(BINRLS)/$(GLUELIB): \ @@ -108,10 +108,10 @@ $(BINRLS)/$(GLUELIB): \
108 @make -C src/native $@ 108 @make -C src/native $@
109 109
110 $(BINRLS)/$(LIBNAME): \ 110 $(BINRLS)/$(LIBNAME): \
111 - src/tn3270-sharp/*.cs \ 111 + src/pw3270-sharp/*.cs \
112 src/include/*.h 112 src/include/*.h
113 113
114 - @make -C src/tn3270-sharp $@ 114 + @make -C src/pw3270-sharp $@
115 115
116 Debug: \ 116 Debug: \
117 $(BINDBG)/$(GLUELIB) \ 117 $(BINDBG)/$(GLUELIB) \
@@ -134,10 +134,10 @@ $(BINDBG)/$(GLUELIB): \ @@ -134,10 +134,10 @@ $(BINDBG)/$(GLUELIB): \
134 @make -C src/native $@ 134 @make -C src/native $@
135 135
136 $(BINDBG)/$(LIBNAME): \ 136 $(BINDBG)/$(LIBNAME): \
137 - src/tn3270-sharp/*.cs \ 137 + src/pw3270-sharp/*.cs \
138 src/include/*.h 138 src/include/*.h
139 139
140 - @make -C src/tn3270-sharp $@ 140 + @make -C src/pw3270-sharp $@
141 141
142 clean: 142 clean:
143 @rm -fr $(BINDIR) 143 @rm -fr $(BINDIR)
@@ -332,7 +332,7 @@ dnl --------------------------------------------------------------------------- @@ -332,7 +332,7 @@ dnl ---------------------------------------------------------------------------
332 332
333 AC_CONFIG_FILES(Makefile) 333 AC_CONFIG_FILES(Makefile)
334 AC_CONFIG_FILES(src/native/Makefile) 334 AC_CONFIG_FILES(src/native/Makefile)
335 -AC_CONFIG_FILES(src/tn3270-sharp/Makefile) 335 +AC_CONFIG_FILES(src/pw3270-sharp/Makefile)
336 336
337 dnl --------------------------------------------------------------------------- 337 dnl ---------------------------------------------------------------------------
338 dnl Output the generated config.status script. 338 dnl Output the generated config.status script.
src/pw3270-sharp/Makefile.in 0 → 100644
@@ -0,0 +1,85 @@ @@ -0,0 +1,85 @@
  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., 59 Temple
  19 +# Place, Suite 330, Boston, MA, 02111-1307, USA
  20 +#
  21 +# Contatos:
  22 +#
  23 +# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  24 +# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
  25 +#
  26 +
  27 +SOURCES=pw3270-sharp.cs
  28 +LIBNAME=pw3270-sharp.dll
  29 +
  30 +#---[ Configuration values ]-------------------------------------------------------------
  31 +
  32 +PACKAGE_NAME=@PACKAGE_NAME@
  33 +PACKAGE_VERSION=@PACKAGE_VERSION@
  34 +PACKAGE_TARNAME=@PACKAGE_TARNAME@
  35 +
  36 +prefix=@prefix@
  37 +exec_prefix=@exec_prefix@
  38 +bindir=@bindir@
  39 +sbindir=@sbindir@
  40 +libdir=@libdir@
  41 +
  42 +BASEDIR=@BASEDIR@
  43 +SRCDIR=$(BASEDIR)/.src/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
  44 +
  45 +OBJDIR=$(BASEDIR)/.obj
  46 +OBJDBG=$(OBJDIR)/Debug
  47 +OBJRLS=$(OBJDIR)/Release
  48 +
  49 +BINDIR=$(BASEDIR)/.bin
  50 +BINDBG=$(BINDIR)/Debug
  51 +BINRLS=$(BINDIR)/Release
  52 +
  53 +INSTALL=@INSTALL@
  54 +INSTALL_DATA=@INSTALL_DATA@
  55 +INSTALL_PROGRAM=@INSTALL_PROGRAM@
  56 +
  57 +LN_S=@LN_S@
  58 +
  59 +MCS=@MCS@
  60 +MKDIR=@MKDIR_P@
  61 +
  62 +#---[ Targets ]--------------------------------------------------------------------------
  63 +
  64 +all: \
  65 + $(BINRLS)/$(LIBNAME)
  66 +
  67 +Release: \
  68 + $(BINRLS)/$(LIBNAME)
  69 +
  70 +Debug: \
  71 + $(BINDBG)/$(LIBNAME)
  72 +
  73 +$(BINDBG)/$(LIBNAME): \
  74 + $(SOURCES)
  75 +
  76 + @$(MKDIR) `dirname $@`
  77 + @$(MCS) -debug -target:library -out:$@ $<
  78 +
  79 +$(BINRLS)/$(LIBNAME): \
  80 + $(SOURCES)
  81 +
  82 + @$(MKDIR) `dirname $@`
  83 + @$(MCS) -doc:$(basename $@).xml -target:library -out:$@ $<
  84 +
  85 +
src/pw3270-sharp/pw3270-sharp.cs 0 → 100644
@@ -0,0 +1,371 @@ @@ -0,0 +1,371 @@
  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 tn3270-sharp.cs 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 + * https://msdn.microsoft.com/en-us/library/5ast78ax.aspx
  31 + *
  32 + */
  33 +
  34 +using System;
  35 +using System.Text;
  36 +using System.Runtime.InteropServices;
  37 +
  38 +namespace tn3270 {
  39 +
  40 + /// <summary>
  41 + /// Session with 3270 HOST.
  42 + /// </summary>
  43 + public class Session {
  44 +
  45 + /// <summary>
  46 + /// lib3270 session handle
  47 + /// </summary>
  48 + private IntPtr hSession;
  49 +
  50 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  51 + extern static IntPtr tn3270_create_session(string name);
  52 +
  53 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  54 + extern static void tn3270_destroy_session(IntPtr session);
  55 +
  56 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  57 + extern static void tn3270_get_version(IntPtr session, StringBuilder str, int strlen);
  58 +
  59 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  60 + extern static void tn3270_get_revision(IntPtr session, StringBuilder str, int strlen);
  61 +
  62 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  63 + extern static int tn3270_connect(IntPtr Session, string host, int wait);
  64 +
  65 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  66 + extern static int tn3270_is_connected(IntPtr Session);
  67 +
  68 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  69 + extern static int tn3270_disconnect(IntPtr Session);
  70 +
  71 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  72 + extern static int tn3270_wait_for_ready(IntPtr Session, int seconds);
  73 +
  74 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  75 + extern static int tn3270_wait(IntPtr Session, int seconds);
  76 +
  77 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  78 + extern static int tn3270_get_cstate(IntPtr Session);
  79 +
  80 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  81 + extern static int tn3270_get_program_message(IntPtr Session);
  82 +
  83 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  84 + extern static int tn3270_get_secure(IntPtr Session);
  85 +
  86 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  87 + extern static void tn3270_get_string(IntPtr Session, int addr, StringBuilder str, int strlen);
  88 +
  89 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  90 + extern static void tn3270_get_string_at(IntPtr Session, int row, int col, StringBuilder str, int strlen);
  91 +
  92 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  93 + extern static void tn3270_set_string_at(IntPtr Session, int row, int col, string str);
  94 +
  95 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  96 + extern static int tn3270_wait_for_string_at(IntPtr Session, int row, int col, string key, int timeout);
  97 +
  98 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  99 + extern static int tn3270_cmp_string_at(IntPtr Session, int row, int col, string str);
  100 +
  101 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  102 + extern static void tn3270_set_unlock_delay(IntPtr Session, int ms);
  103 +
  104 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  105 + extern static void tn3270_set_cursor_position(IntPtr Session, int row, int col);
  106 +
  107 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  108 + extern static void tn3270_set_cursor_addr(IntPtr Session, int addr);
  109 +
  110 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  111 + extern static int tn3270_enter(IntPtr Session);
  112 +
  113 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  114 + extern static int tn3270_pfkey(IntPtr Session, int key);
  115 +
  116 + [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]
  117 + extern static int tn3270_pakey(IntPtr Session, int key);
  118 +
  119 + /// <summary>
  120 + /// Create a new session with lib3270/pw3270
  121 + /// </summary>
  122 + ///
  123 + /// <param name="name">Session name or empty string for a hidden session</param>
  124 + ///
  125 + public Session(string name) {
  126 + hSession = tn3270_create_session(name);
  127 + }
  128 +
  129 + /// <summary>
  130 + /// Disconnect from host, destroy session.
  131 + /// </summary>
  132 + ///
  133 + ~Session() {
  134 + tn3270_destroy_session(hSession);
  135 + }
  136 +
  137 + /// <summary>
  138 + /// Get lib3270/pw3270 Version identifier
  139 + /// </summary>
  140 + ///
  141 + /// <returns>
  142 + /// The version of the active instance.
  143 + /// </returns>
  144 + ///
  145 + public string GetVersion() {
  146 + StringBuilder str = new StringBuilder(10);
  147 + tn3270_get_version(hSession, str, 10);
  148 + return str.ToString();
  149 + }
  150 +
  151 + /// <summary>
  152 + /// Get lib3270/pw3270 Revision number
  153 + /// </summary>
  154 + ///
  155 + /// <returns>
  156 + /// The revision of the active instance.
  157 + /// </returns>
  158 + ///
  159 + public string GetRevision() {
  160 + StringBuilder str = new StringBuilder(10);
  161 + tn3270_get_revision(hSession, str, 10);
  162 + return str.ToString();
  163 + }
  164 +
  165 + /// <summary>
  166 + /// Connect to 3270 host.
  167 + /// </summary>
  168 + ///
  169 + /// <param name="host">URL of the target host (tn3270://hostname:port)</param>
  170 + /// <param name="wait">How many seconds should the call wait for the connection becomes ready</param>
  171 + ///
  172 + /// <returns>
  173 + /// </returns>
  174 + ///
  175 + public int Connect(string host, int wait) {
  176 + return tn3270_connect(hSession, host, wait);
  177 + }
  178 +
  179 + /// <summary>
  180 + /// Get connection state
  181 + /// </summary>
  182 + ///
  183 + /// <returns>
  184 + /// true if the session is connected to a remote host.
  185 + /// </returns>
  186 + ///
  187 + public bool IsConnected() {
  188 + return tn3270_is_connected(hSession) != 0;
  189 + }
  190 +
  191 + /// <summary>
  192 + /// Disconnect from 3270 host.
  193 + /// </summary>
  194 + ///
  195 + public int Disconnect() {
  196 + return tn3270_disconnect(hSession);
  197 + }
  198 +
  199 + /// <summary>
  200 + /// Wait for network activity
  201 + /// </summary>
  202 + ///
  203 + /// <param name="seconds">Seconds to wait</param>
  204 + ///
  205 + /// <returns>
  206 + ///
  207 + /// </returns>
  208 + ///
  209 + public int WaitForReady(int seconds) {
  210 + return tn3270_wait_for_ready(hSession, seconds);
  211 + }
  212 +
  213 + /// <summary>
  214 + /// "Sleep" keeping the network activity.
  215 + /// </summary>
  216 + ///
  217 + /// <param name="seconds">Number of seconds to wait</param>
  218 + ///
  219 + /// <returns>
  220 + ///
  221 + /// </returns>
  222 + ///
  223 + public int Wait(int seconds) {
  224 + return tn3270_wait(hSession, seconds);
  225 + }
  226 +
  227 + /// <summary>
  228 + /// Get contents at address
  229 + /// </summary>
  230 + ///
  231 + /// <param name="addr">Address of text in the screen buffer</param>
  232 + /// <param name="strlen">Number of characters to get</param>
  233 + ///
  234 + /// <returns>
  235 + /// Contents from terminal screen.
  236 + /// </returns>
  237 + ///
  238 + public string GetString(int addr, int strlen) {
  239 + StringBuilder str = new StringBuilder(strlen+1);
  240 + tn3270_get_string(hSession, addr, str, strlen);
  241 + return str.ToString(0,strlen);
  242 + }
  243 +
  244 + /// <summary>
  245 + /// Get contents at position.
  246 + /// </summary>
  247 + ///
  248 + /// <param name="row">Start row</param>
  249 + /// <param name="col">Start col</param>
  250 + /// <param name="strlen">Number of characters to get</param>
  251 + ///
  252 + /// <returns>
  253 + /// Contents from terminal screen.
  254 + /// </returns>
  255 + ///
  256 + public string GetStringAt(int row, int col, int strlen) {
  257 + StringBuilder str = new StringBuilder(strlen+1);
  258 + tn3270_get_string_at(hSession, row, col, str, strlen);
  259 + return str.ToString(0,strlen);
  260 + }
  261 +
  262 + /// <summary>
  263 + /// Set contents at position
  264 + /// </summary>
  265 + ///
  266 + /// <param name="row">Start row</param>
  267 + /// <param name="col">Start col</param>
  268 + /// <param name="str">Text to set</param>
  269 + ///
  270 + public void SetStringAg(int row, int col, string str) {
  271 + tn3270_set_string_at(hSession, row, col, str);
  272 + }
  273 +
  274 + /// <summary>
  275 + /// Wait for text at position.
  276 + /// </summary>
  277 + ///
  278 + /// <param name="row">Start row</param>
  279 + /// <param name="col">Start col</param>
  280 + /// <param name="str">Text to wait</param>
  281 + /// <param name="timeout">Seconds to wait</param>
  282 + ///
  283 + /// <returns>
  284 + ///
  285 + /// </returns>
  286 + ///
  287 + public int WaitForStringAt(int row, int col, string str, int timeout) {
  288 + return tn3270_wait_for_string_at(hSession, row, col, str, timeout);
  289 + }
  290 +
  291 + /// <summary>
  292 + /// Compare contents at position
  293 + /// </summary>
  294 + ///
  295 + /// <param name="row">Start row</param>
  296 + /// <param name="col">Start col</param>
  297 + /// <param name="str">Text to compare</param>
  298 + ///
  299 + /// <returns>
  300 + /// Result (0 = The strings are the same).
  301 + /// </returns>
  302 + ///
  303 + public int CmpStringAt(int row, int col, string str) {
  304 + return tn3270_cmp_string_at(hSession, row, col, str);
  305 + }
  306 +
  307 + /// <summary>
  308 + /// Set cursor position.
  309 + /// </summary>
  310 + ///
  311 + /// <param name="row">New cursor row</param>
  312 + /// <param name="col">New cursor column</param>
  313 + ///
  314 + public void SetCursorPosition(int row, int col) {
  315 + tn3270_set_cursor_position(hSession, row, col);
  316 + }
  317 +
  318 + /// <summary>
  319 + /// Set cursor position based on address.
  320 + /// </summary>
  321 + ///
  322 + /// <param name="addr">Address of the new cursor position</param>
  323 + ///
  324 + public void SetCursorPosition(int addr) {
  325 + tn3270_set_cursor_addr(hSession, addr);
  326 + }
  327 +
  328 + /// <summary>
  329 + /// Send "Enter" key
  330 + /// </summary>
  331 + ///
  332 + /// <returns>
  333 + ///
  334 + /// </returns>
  335 + ///
  336 + public int Enter() {
  337 + return tn3270_enter(hSession);
  338 + }
  339 +
  340 + /// <summary>
  341 + /// Send "PF" key
  342 + /// </summary>
  343 + ///
  344 + /// <param name="key">Key identifier 1=PF1, 2=PF2, ...</param>
  345 + ///
  346 + /// <returns>
  347 + ///
  348 + /// </returns>
  349 + ///
  350 + public int PfKey(int key) {
  351 + return tn3270_pfkey(hSession, key);
  352 + }
  353 +
  354 + /// <summary>
  355 + /// Send "PA" key
  356 + /// </summary>
  357 + ///
  358 + /// <param name="key">Key identifier 1=PA1, 2=PA2, ...</param>
  359 + ///
  360 + /// <returns>
  361 + ///
  362 + /// </returns>
  363 + ///
  364 + public int PaKey(int key) {
  365 + return tn3270_pakey(hSession, key);
  366 + }
  367 +
  368 +
  369 + }
  370 +
  371 +}
src/tn3270-sharp/Makefile.in
@@ -1,85 +0,0 @@ @@ -1,85 +0,0 @@
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., 59 Temple  
19 -# Place, Suite 330, Boston, MA, 02111-1307, USA  
20 -#  
21 -# Contatos:  
22 -#  
23 -# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)  
24 -# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)  
25 -#  
26 -  
27 -SOURCES=tn3270-sharp.cs  
28 -LIBNAME=tn3270-sharp.dll  
29 -  
30 -#---[ Configuration values ]-------------------------------------------------------------  
31 -  
32 -PACKAGE_NAME=@PACKAGE_NAME@  
33 -PACKAGE_VERSION=@PACKAGE_VERSION@  
34 -PACKAGE_TARNAME=@PACKAGE_TARNAME@  
35 -  
36 -prefix=@prefix@  
37 -exec_prefix=@exec_prefix@  
38 -bindir=@bindir@  
39 -sbindir=@sbindir@  
40 -libdir=@libdir@  
41 -  
42 -BASEDIR=@BASEDIR@  
43 -SRCDIR=$(BASEDIR)/.src/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)  
44 -  
45 -OBJDIR=$(BASEDIR)/.obj  
46 -OBJDBG=$(OBJDIR)/Debug  
47 -OBJRLS=$(OBJDIR)/Release  
48 -  
49 -BINDIR=$(BASEDIR)/.bin  
50 -BINDBG=$(BINDIR)/Debug  
51 -BINRLS=$(BINDIR)/Release  
52 -  
53 -INSTALL=@INSTALL@  
54 -INSTALL_DATA=@INSTALL_DATA@  
55 -INSTALL_PROGRAM=@INSTALL_PROGRAM@  
56 -  
57 -LN_S=@LN_S@  
58 -  
59 -MCS=@MCS@  
60 -MKDIR=@MKDIR_P@  
61 -  
62 -#---[ Targets ]--------------------------------------------------------------------------  
63 -  
64 -all: \  
65 - $(BINRLS)/$(LIBNAME)  
66 -  
67 -Release: \  
68 - $(BINRLS)/$(LIBNAME)  
69 -  
70 -Debug: \  
71 - $(BINDBG)/$(LIBNAME)  
72 -  
73 -$(BINDBG)/$(LIBNAME): \  
74 - $(SOURCES)  
75 -  
76 - @$(MKDIR) `dirname $@`  
77 - @$(MCS) -debug -target:library -out:$@ $<  
78 -  
79 -$(BINRLS)/$(LIBNAME): \  
80 - $(SOURCES)  
81 -  
82 - @$(MKDIR) `dirname $@`  
83 - @$(MCS) -doc:$(basename $@).xml -target:library -out:$@ $<  
84 -  
85 -  
src/tn3270-sharp/tn3270-sharp.cs
@@ -1,371 +0,0 @@ @@ -1,371 +0,0 @@
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 tn3270-sharp.cs 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 - * https://msdn.microsoft.com/en-us/library/5ast78ax.aspx  
31 - *  
32 - */  
33 -  
34 -using System;  
35 -using System.Text;  
36 -using System.Runtime.InteropServices;  
37 -  
38 -namespace tn3270 {  
39 -  
40 - /// <summary>  
41 - /// Session with 3270 HOST.  
42 - /// </summary>  
43 - public class Session {  
44 -  
45 - /// <summary>  
46 - /// lib3270 session handle  
47 - /// </summary>  
48 - private IntPtr hSession;  
49 -  
50 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
51 - extern static IntPtr tn3270_create_session(string name);  
52 -  
53 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
54 - extern static void tn3270_destroy_session(IntPtr session);  
55 -  
56 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
57 - extern static void tn3270_get_version(IntPtr session, StringBuilder str, int strlen);  
58 -  
59 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
60 - extern static void tn3270_get_revision(IntPtr session, StringBuilder str, int strlen);  
61 -  
62 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
63 - extern static int tn3270_connect(IntPtr Session, string host, int wait);  
64 -  
65 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
66 - extern static int tn3270_is_connected(IntPtr Session);  
67 -  
68 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
69 - extern static int tn3270_disconnect(IntPtr Session);  
70 -  
71 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
72 - extern static int tn3270_wait_for_ready(IntPtr Session, int seconds);  
73 -  
74 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
75 - extern static int tn3270_wait(IntPtr Session, int seconds);  
76 -  
77 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
78 - extern static int tn3270_get_cstate(IntPtr Session);  
79 -  
80 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
81 - extern static int tn3270_get_program_message(IntPtr Session);  
82 -  
83 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
84 - extern static int tn3270_get_secure(IntPtr Session);  
85 -  
86 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
87 - extern static void tn3270_get_string(IntPtr Session, int addr, StringBuilder str, int strlen);  
88 -  
89 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
90 - extern static void tn3270_get_string_at(IntPtr Session, int row, int col, StringBuilder str, int strlen);  
91 -  
92 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
93 - extern static void tn3270_set_string_at(IntPtr Session, int row, int col, string str);  
94 -  
95 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
96 - extern static int tn3270_wait_for_string_at(IntPtr Session, int row, int col, string key, int timeout);  
97 -  
98 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
99 - extern static int tn3270_cmp_string_at(IntPtr Session, int row, int col, string str);  
100 -  
101 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
102 - extern static void tn3270_set_unlock_delay(IntPtr Session, int ms);  
103 -  
104 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
105 - extern static void tn3270_set_cursor_position(IntPtr Session, int row, int col);  
106 -  
107 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
108 - extern static void tn3270_set_cursor_addr(IntPtr Session, int addr);  
109 -  
110 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
111 - extern static int tn3270_enter(IntPtr Session);  
112 -  
113 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
114 - extern static int tn3270_pfkey(IntPtr Session, int key);  
115 -  
116 - [DllImport ("lib3270-mono",CallingConvention=CallingConvention.Cdecl)]  
117 - extern static int tn3270_pakey(IntPtr Session, int key);  
118 -  
119 - /// <summary>  
120 - /// Create a new session with lib3270/pw3270  
121 - /// </summary>  
122 - ///  
123 - /// <param name="name">Session name or empty string for a hidden session</param>  
124 - ///  
125 - public Session(string name) {  
126 - hSession = tn3270_create_session(name);  
127 - }  
128 -  
129 - /// <summary>  
130 - /// Disconnect from host, destroy session.  
131 - /// </summary>  
132 - ///  
133 - ~Session() {  
134 - tn3270_destroy_session(hSession);  
135 - }  
136 -  
137 - /// <summary>  
138 - /// Get lib3270/pw3270 Version identifier  
139 - /// </summary>  
140 - ///  
141 - /// <returns>  
142 - /// The version of the active instance.  
143 - /// </returns>  
144 - ///  
145 - public string GetVersion() {  
146 - StringBuilder str = new StringBuilder(10);  
147 - tn3270_get_version(hSession, str, 10);  
148 - return str.ToString();  
149 - }  
150 -  
151 - /// <summary>  
152 - /// Get lib3270/pw3270 Revision number  
153 - /// </summary>  
154 - ///  
155 - /// <returns>  
156 - /// The revision of the active instance.  
157 - /// </returns>  
158 - ///  
159 - public string GetRevision() {  
160 - StringBuilder str = new StringBuilder(10);  
161 - tn3270_get_revision(hSession, str, 10);  
162 - return str.ToString();  
163 - }  
164 -  
165 - /// <summary>  
166 - /// Connect to 3270 host.  
167 - /// </summary>  
168 - ///  
169 - /// <param name="host">URL of the target host (tn3270://hostname:port)</param>  
170 - /// <param name="wait">How many seconds should the call wait for the connection becomes ready</param>  
171 - ///  
172 - /// <returns>  
173 - /// </returns>  
174 - ///  
175 - public int Connect(string host, int wait) {  
176 - return tn3270_connect(hSession, host, wait);  
177 - }  
178 -  
179 - /// <summary>  
180 - /// Get connection state  
181 - /// </summary>  
182 - ///  
183 - /// <returns>  
184 - /// true if the session is connected to a remote host.  
185 - /// </returns>  
186 - ///  
187 - public bool IsConnected() {  
188 - return tn3270_is_connected(hSession) != 0;  
189 - }  
190 -  
191 - /// <summary>  
192 - /// Disconnect from 3270 host.  
193 - /// </summary>  
194 - ///  
195 - public int Disconnect() {  
196 - return tn3270_disconnect(hSession);  
197 - }  
198 -  
199 - /// <summary>  
200 - /// Wait for network activity  
201 - /// </summary>  
202 - ///  
203 - /// <param name="seconds">Seconds to wait</param>  
204 - ///  
205 - /// <returns>  
206 - ///  
207 - /// </returns>  
208 - ///  
209 - public int WaitForReady(int seconds) {  
210 - return tn3270_wait_for_ready(hSession, seconds);  
211 - }  
212 -  
213 - /// <summary>  
214 - /// "Sleep" keeping the network activity.  
215 - /// </summary>  
216 - ///  
217 - /// <param name="seconds">Number of seconds to wait</param>  
218 - ///  
219 - /// <returns>  
220 - ///  
221 - /// </returns>  
222 - ///  
223 - public int Wait(int seconds) {  
224 - return tn3270_wait(hSession, seconds);  
225 - }  
226 -  
227 - /// <summary>  
228 - /// Get contents at address  
229 - /// </summary>  
230 - ///  
231 - /// <param name="addr">Address of text in the screen buffer</param>  
232 - /// <param name="strlen">Number of characters to get</param>  
233 - ///  
234 - /// <returns>  
235 - /// Contents from terminal screen.  
236 - /// </returns>  
237 - ///  
238 - public string GetString(int addr, int strlen) {  
239 - StringBuilder str = new StringBuilder(strlen+1);  
240 - tn3270_get_string(hSession, addr, str, strlen);  
241 - return str.ToString(0,strlen);  
242 - }  
243 -  
244 - /// <summary>  
245 - /// Get contents at position.  
246 - /// </summary>  
247 - ///  
248 - /// <param name="row">Start row</param>  
249 - /// <param name="col">Start col</param>  
250 - /// <param name="strlen">Number of characters to get</param>  
251 - ///  
252 - /// <returns>  
253 - /// Contents from terminal screen.  
254 - /// </returns>  
255 - ///  
256 - public string GetStringAt(int row, int col, int strlen) {  
257 - StringBuilder str = new StringBuilder(strlen+1);  
258 - tn3270_get_string_at(hSession, row, col, str, strlen);  
259 - return str.ToString(0,strlen);  
260 - }  
261 -  
262 - /// <summary>  
263 - /// Set contents at position  
264 - /// </summary>  
265 - ///  
266 - /// <param name="row">Start row</param>  
267 - /// <param name="col">Start col</param>  
268 - /// <param name="str">Text to set</param>  
269 - ///  
270 - public void SetStringAg(int row, int col, string str) {  
271 - tn3270_set_string_at(hSession, row, col, str);  
272 - }  
273 -  
274 - /// <summary>  
275 - /// Wait for text at position.  
276 - /// </summary>  
277 - ///  
278 - /// <param name="row">Start row</param>  
279 - /// <param name="col">Start col</param>  
280 - /// <param name="str">Text to wait</param>  
281 - /// <param name="timeout">Seconds to wait</param>  
282 - ///  
283 - /// <returns>  
284 - ///  
285 - /// </returns>  
286 - ///  
287 - public int WaitForStringAt(int row, int col, string str, int timeout) {  
288 - return tn3270_wait_for_string_at(hSession, row, col, str, timeout);  
289 - }  
290 -  
291 - /// <summary>  
292 - /// Compare contents at position  
293 - /// </summary>  
294 - ///  
295 - /// <param name="row">Start row</param>  
296 - /// <param name="col">Start col</param>  
297 - /// <param name="str">Text to compare</param>  
298 - ///  
299 - /// <returns>  
300 - /// Result (0 = The strings are the same).  
301 - /// </returns>  
302 - ///  
303 - public int CmpStringAt(int row, int col, string str) {  
304 - return tn3270_cmp_string_at(hSession, row, col, str);  
305 - }  
306 -  
307 - /// <summary>  
308 - /// Set cursor position.  
309 - /// </summary>  
310 - ///  
311 - /// <param name="row">New cursor row</param>  
312 - /// <param name="col">New cursor column</param>  
313 - ///  
314 - public void SetCursorPosition(int row, int col) {  
315 - tn3270_set_cursor_position(hSession, row, col);  
316 - }  
317 -  
318 - /// <summary>  
319 - /// Set cursor position based on address.  
320 - /// </summary>  
321 - ///  
322 - /// <param name="addr">Address of the new cursor position</param>  
323 - ///  
324 - public void SetCursorPosition(int addr) {  
325 - tn3270_set_cursor_addr(hSession, addr);  
326 - }  
327 -  
328 - /// <summary>  
329 - /// Send "Enter" key  
330 - /// </summary>  
331 - ///  
332 - /// <returns>  
333 - ///  
334 - /// </returns>  
335 - ///  
336 - public int Enter() {  
337 - return tn3270_enter(hSession);  
338 - }  
339 -  
340 - /// <summary>  
341 - /// Send "PF" key  
342 - /// </summary>  
343 - ///  
344 - /// <param name="key">Key identifier 1=PF1, 2=PF2, ...</param>  
345 - ///  
346 - /// <returns>  
347 - ///  
348 - /// </returns>  
349 - ///  
350 - public int PfKey(int key) {  
351 - return tn3270_pfkey(hSession, key);  
352 - }  
353 -  
354 - /// <summary>  
355 - /// Send "PA" key  
356 - /// </summary>  
357 - ///  
358 - /// <param name="key">Key identifier 1=PA1, 2=PA2, ...</param>  
359 - ///  
360 - /// <returns>  
361 - ///  
362 - /// </returns>  
363 - ///  
364 - public int PaKey(int key) {  
365 - return tn3270_pakey(hSession, key);  
366 - }  
367 -  
368 -  
369 - }  
370 -  
371 -}