Commit 2cd54c2062e7ddc40b727731cdf70f64dfedc69c
1 parent
82fa758b
Exists in
master
and in
1 other branch
Adding methods to set lib3270's properties.
Showing
7 changed files
with
129 additions
and
3 deletions
Show diff stats
client/ipcclient.cbp
... | ... | @@ -79,6 +79,7 @@ |
79 | 79 | <Unit filename="src/session/local/get.cc" /> |
80 | 80 | <Unit filename="src/session/local/init.cc" /> |
81 | 81 | <Unit filename="src/session/local/private.h" /> |
82 | + <Unit filename="src/session/local/properties.cc" /> | |
82 | 83 | <Unit filename="src/session/local/set.cc" /> |
83 | 84 | <Unit filename="src/session/local/wait.cc" /> |
84 | 85 | <Unit filename="src/session/remote/actions.cc" /> |
... | ... | @@ -97,9 +98,6 @@ |
97 | 98 | <Unit filename="src/session/tools.cc" /> |
98 | 99 | <Unit filename="src/testprogram/testprogram.cc" /> |
99 | 100 | <Extensions> |
100 | - <code_completion /> | |
101 | - <envvars /> | |
102 | - <debugger /> | |
103 | 101 | <lib_finder disable_auto="1" /> |
104 | 102 | </Extensions> |
105 | 103 | </Project> | ... | ... |
client/src/include/lib3270/ipc.h
... | ... | @@ -660,6 +660,11 @@ |
660 | 660 | int compare(int baddr, const char* s, int len = -1) const; |
661 | 661 | int compare(unsigned short row, unsigned short col, const char* s, int len = -1) const; |
662 | 662 | |
663 | + virtual void setProperty(const char *name, const int value) = 0; | |
664 | + virtual void setProperty(const char *name, const unsigned int value) = 0; | |
665 | + virtual void setProperty(const char *name, const bool value) = 0; | |
666 | + virtual void setProperty(const char *name, const char *value) = 0; | |
667 | + | |
663 | 668 | }; |
664 | 669 | |
665 | 670 | /// @brief TN3270 Host |
... | ... | @@ -954,6 +959,19 @@ |
954 | 959 | int compare(int baddr, const char* s, int len = -1) const; |
955 | 960 | int compare(unsigned short row, unsigned short col, const char* s, int len = -1) const; |
956 | 961 | |
962 | + /* | |
963 | + Host & setProperty(const char *name, const std::string &value) { | |
964 | + session->setProperty(name,value.c_str()); | |
965 | + return *this; | |
966 | + } | |
967 | + | |
968 | + template <typename T> | |
969 | + Host & setProperty(const char *name, const T value) { | |
970 | + session->setProperty(name,value); | |
971 | + return *this; | |
972 | + } | |
973 | + */ | |
974 | + | |
957 | 975 | // Set contents. |
958 | 976 | |
959 | 977 | /// @brief Input string. | ... | ... |
client/src/session/local/private.h
... | ... | @@ -162,6 +162,10 @@ |
162 | 162 | unsigned short setCursor(unsigned short row, unsigned short col) override; |
163 | 163 | unsigned short getCursorAddress() override; |
164 | 164 | Session::Cursor getCursorPosition() override; |
165 | + void setProperty(const char *name, const int value) override; | |
166 | + void setProperty(const char *name, const unsigned int value) override; | |
167 | + void setProperty(const char *name, const bool value) override; | |
168 | + void setProperty(const char *name, const char *value) override; | |
165 | 169 | |
166 | 170 | }; |
167 | 171 | ... | ... |
... | ... | @@ -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., 51 Franklin | |
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | |
20 | + * | |
21 | + * Este programa está nomeado como - 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 | + */ | |
29 | + | |
30 | +/** | |
31 | + * @file | |
32 | + * | |
33 | + * @brief | |
34 | + * | |
35 | + * @author perry.werneck@gmail.com | |
36 | + * | |
37 | + */ | |
38 | + | |
39 | + #include "private.h" | |
40 | + #include <lib3270/ipc.h> | |
41 | + #include <lib3270/properties.h> | |
42 | + | |
43 | +/*---[ Implement ]----------------------------------------------------------------------------------*/ | |
44 | + | |
45 | + namespace TN3270 { | |
46 | + | |
47 | + void Local::Session::setProperty(const char *name, const int value) { | |
48 | + | |
49 | + std::lock_guard<std::recursive_mutex> lock(const_cast<Local::Session *>(this)->sync); | |
50 | + int rc = lib3270_set_int_property(hSession,name,value,0); | |
51 | + if(rc) | |
52 | + chkResponse(rc); | |
53 | + | |
54 | + } | |
55 | + | |
56 | + void Local::Session::setProperty(const char *name, const unsigned int value) { | |
57 | + | |
58 | + std::lock_guard<std::recursive_mutex> lock(const_cast<Local::Session *>(this)->sync); | |
59 | + int rc = lib3270_set_uint_property(hSession,name,value,0); | |
60 | + if(rc) | |
61 | + chkResponse(rc); | |
62 | + | |
63 | + } | |
64 | + | |
65 | + void Local::Session::setProperty(const char *name, const bool value) { | |
66 | + | |
67 | + std::lock_guard<std::recursive_mutex> lock(const_cast<Local::Session *>(this)->sync); | |
68 | + int rc = lib3270_set_boolean_property(hSession,name,(int) value, 0); | |
69 | + if(rc) | |
70 | + chkResponse(rc); | |
71 | + | |
72 | + } | |
73 | + | |
74 | + void Local::Session::setProperty(const char *name, const char *value) { | |
75 | + | |
76 | + std::lock_guard<std::recursive_mutex> lock(const_cast<Local::Session *>(this)->sync); | |
77 | + int rc = lib3270_set_string_property(hSession, name, value, 0); | |
78 | + if(rc) | |
79 | + chkResponse(rc); | |
80 | + | |
81 | + } | |
82 | + | |
83 | + } | |
84 | + | |
85 | + | ... | ... |
client/src/session/remote/private.h
... | ... | @@ -167,6 +167,10 @@ |
167 | 167 | unsigned short setCursor(unsigned short row, unsigned short col) override; |
168 | 168 | unsigned short getCursorAddress() override; |
169 | 169 | Session::Cursor getCursorPosition() override; |
170 | + void setProperty(const char *name, const int value) override; | |
171 | + void setProperty(const char *name, const unsigned int value) override; | |
172 | + void setProperty(const char *name, const bool value) override; | |
173 | + void setProperty(const char *name, const char *value) override; | |
170 | 174 | |
171 | 175 | }; |
172 | 176 | ... | ... |
client/src/session/remote/properties.cc
... | ... | @@ -236,6 +236,22 @@ |
236 | 236 | |
237 | 237 | } |
238 | 238 | |
239 | + void IPC::Session::setProperty(const char *name, const int value) { | |
240 | + setAttribute(name,value); | |
241 | + } | |
242 | + | |
243 | + void IPC::Session::setProperty(const char *name, const unsigned int value) { | |
244 | + setAttribute(name,value); | |
245 | + } | |
246 | + | |
247 | + void IPC::Session::setProperty(const char *name, const bool value) { | |
248 | + setAttribute(name,value); | |
249 | + } | |
250 | + | |
251 | + void IPC::Session::setProperty(const char *name, const char *value) { | |
252 | + setAttribute(name,value); | |
253 | + } | |
254 | + | |
239 | 255 | } |
240 | 256 | |
241 | 257 | ... | ... |