Commit ae8948cbdac52e41401368020c2f582640dc7bf6
1 parent
7a99821c
Exists in
master
and in
5 other branches
Reconstruindo módulo libreoffice do zero
Showing
15 changed files
with
0 additions
and
2245 deletions
Show diff stats
src/oxt/Makefile.in
... | ... | @@ -1,175 +0,0 @@ |
1 | - | |
2 | -PACKAGE=@PACKAGE_NAME@ | |
3 | - | |
4 | -SOURCES=main.cxx local.cxx connection.cxx get.cxx set.cxx actions.cxx remote.cxx | |
5 | - | |
6 | -prefix=/usr | |
7 | -exec_prefix=@exec_prefix@ | |
8 | -libdir=@libdir@ | |
9 | -instdir=$(DESTDIR)/$(libdir)/libreoffice/share/extensions/$(PACKAGE) | |
10 | - | |
11 | -#---[ Paths ]------------------------------------------------------------------------------------------ | |
12 | -ROOTDIR ?= . | |
13 | -OBJDIR ?= $(ROOTDIR)/.obj | |
14 | -BINDIR ?= $(ROOTDIR)/.bin | |
15 | - | |
16 | -BINDBG ?= $(BINDIR)/Debug | |
17 | -BINRLS ?= $(BINDIR)/Release | |
18 | -LIBDBG ?= $(BINDIR)/Debug/lib | |
19 | - | |
20 | -OBJDBG = $(OBJDIR)/Debug | |
21 | -OBJRLS = $(OBJDIR)/Release | |
22 | - | |
23 | -#---[ Tools ]------------------------------------------------------------------------------------------ | |
24 | -MKDIR=@MKDIR_P@ | |
25 | -INSTALL=@INSTALL@ | |
26 | -INSTALL_DATA=@INSTALL_DATA@ | |
27 | -INSTALL_PROGRAM=@INSTALL_PROGRAM@ | |
28 | -CXX=@CXX@ | |
29 | -CONVERT=@CONVERT@ | |
30 | -ZIP=@ZIP@ | |
31 | - | |
32 | -DBG_CFLAGS=-g -DDEBUG=1 | |
33 | -RLS_CFLAGS=-DNDEBUG=1 | |
34 | - | |
35 | -#---[ LibreOffice SDK ]-------------------------------------------------------------------------------- | |
36 | -COMID=gcc3 | |
37 | -OO_SDK_NAME=openoffice.org3.5_sdk | |
38 | -OFFICE_HOME=@OFFICE_HOME@ | |
39 | -OO_SDK_HOME=@OO_SDK_HOME@ | |
40 | -OO_SDK_URE_HOME=@OO_SDK_URE_HOME@ | |
41 | -OO_SDK_URE_BIN_DIR=${OO_SDK_URE_HOME}/bin | |
42 | -OO_SDK_URE_LIB_DIR=${OO_SDK_URE_HOME}/lib | |
43 | - | |
44 | -TYPES_RDB=${OO_SDK_URE_HOME}/share/misc/types.rdb | |
45 | - | |
46 | -SALLIB=-luno_sal | |
47 | -CPPULIB=-luno_cppu | |
48 | -CPPUHELPERLIB=-luno_cppuhelper$(COMID) | |
49 | -SALHELPERLIB=-luno_salhelper$(COMID) | |
50 | -REGLIB=-lreg | |
51 | -STORELIB=-lstore | |
52 | - | |
53 | -# Libre office tools | |
54 | -IDLC=@IDLC@ | |
55 | -REGMERGE=@REGMERGE@ | |
56 | -CPPUMAKER=@CPPUMAKER@ | |
57 | - | |
58 | -#---[ Rules ]------------------------------------------------------------------------------------------ | |
59 | - | |
60 | -LIB3270_CFLAGS ?= `pkg-config --cflags lib3270` | |
61 | - | |
62 | -DLL_CFLAGS=@DLL_CFLAGS@ | |
63 | -DLL_FLAGS=-shared | |
64 | - | |
65 | -CXXFLAGS=-Wno-strict-aliasing -I$(OBJDIR)/uno/include -I$(OO_SDK_HOME)/include \ | |
66 | - -I$(OBJDIR)/uno/include/br/com/bb $(LIB3270_CFLAGS) \ | |
67 | - @DBUS_CFLAGS@ | |
68 | - | |
69 | -LDFLAGS=-L${OO_SDK_HOME}/lib -L${OO_SDK_URE_HOME}/lib \ | |
70 | - -Wl,-rpath-link=${OO_SDK_URE_HOME}/lib,-rpath=${OO_SDK_URE_HOME}/lib \ | |
71 | - $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB) @DBUS_LIBS@ | |
72 | - | |
73 | -# CC_DEFINES=-DUNX -DGCC -DLINUX -DCPPU_ENV=$(CPPU_ENV) -DGXX_INCLUDE_PATH=$(SDK_GXX_INCLUDE_PATH) -DHAVE_GCC_VISIBILITY_FEATURE | |
74 | - | |
75 | -$(OBJDBG)/%.o: %.cxx $(OBJDIR)/uno/include/br/com/bb/$(PACKAGE).hpp Makefile | |
76 | - @echo $< ... | |
77 | - @$(MKDIR) `dirname $@` | |
78 | - @$(CXX) $(DBG_CFLAGS) $(CXXFLAGS) $(LIB3270_CFLAGS) $(DLL_CFLAGS) -o $@ -c $< | |
79 | - | |
80 | -$(OBJRLS)/%.o: %.cxx $(OBJDIR)/uno/include/br/com/bb/$(PACKAGE).hpp Makefile | |
81 | - @echo $< ... | |
82 | - @$(MKDIR) `dirname $@` | |
83 | - @$(CXX) $(CXXFLAGS) $(LIB3270_CFLAGS) $(DLL_CFLAGS) -o $@ -c $< | |
84 | - | |
85 | -%.urd: %.idl | |
86 | - @echo $< ... | |
87 | - @$(MKDIR) `dirname $@` | |
88 | - @$(IDLC) -C -I$(OO_SDK_HOME)/idl -O`dirname $@` $< | |
89 | - | |
90 | -%.uno.rdb: %.urd $(TYPES_RDB) | |
91 | - @echo $< ... | |
92 | - @mkdir -p `dirname $@` | |
93 | - @rm -f $@ | |
94 | - $(REGMERGE) -v $@ / $(TYPES_RDB) | |
95 | - $(REGMERGE) -v $@ /UCR $< | |
96 | - $(REGMERGE) -v $@ / $< | |
97 | - | |
98 | - | |
99 | -#---[ Release targets ]-------------------------------------------------------------------------------- | |
100 | - | |
101 | -Release: $(BINDIR)/$(PACKAGE).oxt | |
102 | - | |
103 | -install: $(BINRLS)/$(PACKAGE).uno@DLLEXT@ $(PACKAGE).uno.rdb description.xml manifest.xml description.txt $(PACKAGE).png | |
104 | - @$(MKDIR) $(instdir) | |
105 | - @$(MKDIR) $(instdir)/META-INF | |
106 | - @$(INSTALL_DATA) manifest.xml $(instdir)/META-INF | |
107 | - | |
108 | - @$(INSTALL_DATA) description.xml $(instdir) | |
109 | - @$(INSTALL_DATA) description.txt $(instdir) | |
110 | - | |
111 | - @$(INSTALL_DATA) $(PACKAGE).png $(instdir)/$(PACKAGE).png | |
112 | - | |
113 | - @$(INSTALL_PROGRAM) $(BINRLS)/$(PACKAGE).uno@DLLEXT@ $(instdir) | |
114 | - @$(INSTALL_DATA) $(PACKAGE).uno.rdb $(instdir) | |
115 | - | |
116 | -$(BINDIR)/$(PACKAGE).oxt: $(BINRLS)/$(PACKAGE).uno@DLLEXT@ $(PACKAGE).uno.rdb description.xml manifest.xml description.txt | |
117 | - @rm -f $@ | |
118 | - | |
119 | - @$(MKDIR) $(BINDIR)/$(PACKAGE).oxt.tmp | |
120 | - | |
121 | - @$(MKDIR) $(BINDIR)/$(PACKAGE).oxt.tmp/META-INF | |
122 | - @cp manifest.xml $(BINDIR)/$(PACKAGE).oxt.tmp/META-INF | |
123 | - | |
124 | - @cp description.xml $(BINDIR)/$(PACKAGE).oxt.tmp | |
125 | - @cp description.txt $(BINDIR)/$(PACKAGE).oxt.tmp | |
126 | - | |
127 | - @$(CONVERT) ../pw3270/pixmaps/pw3270.svg --format=png > $(BINDIR)/$(PACKAGE).oxt.tmp/$(PACKAGE).png | |
128 | - | |
129 | - @cp $(BINRLS)/$(PACKAGE).uno@DLLEXT@ $(BINDIR)/$(PACKAGE).oxt.tmp | |
130 | - @cp $(PACKAGE).uno.rdb $(BINDIR)/$(PACKAGE).oxt.tmp | |
131 | - @rm -f $(BINDIR)/$(PACKAGE).oxt | |
132 | - @cd $(BINDIR)/$(PACKAGE).oxt.tmp ; $(ZIP) -r -m ../$(PACKAGE).oxt . | |
133 | - @echo $@ Ok. | |
134 | - | |
135 | -$(BINRLS)/$(PACKAGE).uno@DLLEXT@: $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) | |
136 | - @echo $@ ... | |
137 | - @$(MKDIR) `dirname $@` | |
138 | - @$(CXX) $(DLL_FLAGS) $(LDFLAGS) -o $@ $^ | |
139 | - | |
140 | -$(PACKAGE).png: ../pw3270/pixmaps/pw3270.svg | |
141 | - @$(CONVERT) $^ --format=png > $@ | |
142 | - | |
143 | -#---[ Debug Targets ]---------------------------------------------------------------------------------- | |
144 | - | |
145 | -Debug: $(BINDBG)/testprogram | |
146 | - | |
147 | -run: $(BINDBG)/testprogram | |
148 | - @$(BINDBG)/testprogram | |
149 | - | |
150 | -$(BINDBG)/$(PACKAGE).uno@DLLEXT@: $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) | |
151 | - @echo $@ ... | |
152 | - @$(MKDIR) `dirname $@` | |
153 | - @$(CXX) $(DLL_FLAGS) $(LDFLAGS) -o $@ $^ | |
154 | - | |
155 | -$(BINDBG)/testprogram: $(BINDBG)/$(PACKAGE).uno@DLLEXT@ $(OBJDBG)/testprogram.o | |
156 | - @echo $@ ... | |
157 | - @$(MKDIR) `dirname $@` | |
158 | - @$(CXX) $(LDFLAGS) -o $@ $(OBJDBG)/testprogram.o | |
159 | - | |
160 | -$(OBJDIR)/uno/include/br/com/bb/$(PACKAGE).hpp: $(PACKAGE).uno.rdb | |
161 | - @echo $< ... | |
162 | - @rm -fr $(OBJDIR)/uno/include | |
163 | - @$(MKDIR) $(OBJDIR)/uno/include | |
164 | - @$(CPPUMAKER) -O$(OBJDIR)/uno/include -L -BUCR $< | |
165 | - @touch $@ | |
166 | - | |
167 | -cleanDebug: clean | |
168 | - | |
169 | -clean: | |
170 | - @rm -f *.urd | |
171 | - @rm -f *.uno.rdb | |
172 | - @rm -f $(PACKAGE).png | |
173 | - @rm -fr $(OBJDIR) | |
174 | - @rm -fr $(BINDIR) | |
175 | - |
src/oxt/actions.cxx
... | ... | @@ -1,113 +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 | - * Este programa está nomeado como actions.cxx 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 | - * licinio@bb.com.br (Licínio Luis Branco) | |
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | - * | |
30 | - */ | |
31 | - | |
32 | - #include "globals.hpp" | |
33 | - #include <unistd.h> | |
34 | - #include <string.h> | |
35 | - | |
36 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | |
37 | - | |
38 | -::sal_Int16 SAL_CALL pw3270::uno_impl::enter( ) throw (::com::sun::star::uno::RuntimeException) | |
39 | -{ | |
40 | - return hSession->enter(); | |
41 | -} | |
42 | - | |
43 | -::sal_Int16 SAL_CALL pw3270::uno_impl::pfkey( ::sal_Int16 keycode ) throw (::com::sun::star::uno::RuntimeException) | |
44 | -{ | |
45 | - return hSession->pfkey((int) keycode); | |
46 | -} | |
47 | - | |
48 | -::sal_Int16 SAL_CALL pw3270::uno_impl::pakey( ::sal_Int16 keycode ) throw (::com::sun::star::uno::RuntimeException) | |
49 | -{ | |
50 | - return hSession->pakey((int) keycode); | |
51 | -} | |
52 | - | |
53 | -::sal_Int16 SAL_CALL pw3270::uno_impl::cmpTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& text ) throw (::com::sun::star::uno::RuntimeException) | |
54 | -{ | |
55 | - return hSession->cmp_text_at((int) row, (int) col, rtl::OUStringToOString(text,hSession->get_encoding()).getStr()); | |
56 | -} | |
57 | - | |
58 | -::sal_Bool SAL_CALL pw3270::uno_impl::isReady( ) throw (::com::sun::star::uno::RuntimeException) | |
59 | -{ | |
60 | - if(!hSession->in_tn3270e()) | |
61 | - return false; | |
62 | - | |
63 | - if(hSession->get_state() == LIB3270_MESSAGE_NONE) | |
64 | - return true; | |
65 | - | |
66 | - return false; | |
67 | -} | |
68 | - | |
69 | -::sal_Bool SAL_CALL pw3270::uno_impl::isConnected( ) throw (::com::sun::star::uno::RuntimeException) | |
70 | -{ | |
71 | - return hSession->in_tn3270e() != 0; | |
72 | -} | |
73 | - | |
74 | -::sal_Bool SAL_CALL pw3270::uno_impl::hasTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& text ) throw (::com::sun::star::uno::RuntimeException) | |
75 | -{ | |
76 | - if(!hSession->in_tn3270e()) | |
77 | - return false; | |
78 | - | |
79 | - return cmpTextAt(row,col,text) == 0; | |
80 | -} | |
81 | - | |
82 | -::sal_Int16 SAL_CALL pw3270::uno_impl::waitForReady( ::sal_Int16 seconds ) throw (::com::sun::star::uno::RuntimeException) | |
83 | -{ | |
84 | - time_t end = time(0) + seconds; | |
85 | - | |
86 | - while(time(0) < end) | |
87 | - { | |
88 | - osl_yieldThread(); | |
89 | - | |
90 | - switch(hSession->get_state()) | |
91 | - { | |
92 | - case LIB3270_MESSAGE_NONE: | |
93 | - return 0; | |
94 | - | |
95 | - case LIB3270_MESSAGE_DISCONNECTED: | |
96 | - return ENOTCONN; | |
97 | - | |
98 | - case LIB3270_MESSAGE_MINUS: | |
99 | - case LIB3270_MESSAGE_PROTECTED: | |
100 | - case LIB3270_MESSAGE_NUMERIC: | |
101 | - case LIB3270_MESSAGE_OVERFLOW: | |
102 | - case LIB3270_MESSAGE_INHIBIT: | |
103 | - case LIB3270_MESSAGE_KYBDLOCK: | |
104 | - return EPROTO; | |
105 | - | |
106 | - | |
107 | - } | |
108 | - | |
109 | - sleep(1); | |
110 | - } | |
111 | - | |
112 | - return ETIMEDOUT; | |
113 | -} |
src/oxt/connection.cxx
... | ... | @@ -1,47 +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 | - * Este programa está nomeado como connection.cxx 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 | - * licinio@bb.com.br (Licínio Luis Branco) | |
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | - * | |
30 | - */ | |
31 | - | |
32 | - #include "globals.hpp" | |
33 | - | |
34 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | |
35 | - | |
36 | -sal_Int16 SAL_CALL pw3270::uno_impl::Connect( const ::rtl::OUString& hostinfo ) throw (::com::sun::star::uno::RuntimeException) | |
37 | -{ | |
38 | - OString str = rtl::OUStringToOString( hostinfo , hSession->get_encoding() ); | |
39 | - return hSession->connect(str.getStr()); | |
40 | -} | |
41 | - | |
42 | -sal_Int16 SAL_CALL pw3270::uno_impl::Disconnect( ) throw (::com::sun::star::uno::RuntimeException) | |
43 | -{ | |
44 | - return hSession->disconnect(); | |
45 | -} | |
46 | - | |
47 | - |
src/oxt/description.txt
src/oxt/description.xml.in
... | ... | @@ -1,30 +0,0 @@ |
1 | -<?xml version="1.0" encoding="UTF-8"?> | |
2 | -<description xmlns="http://openoffice.org/extensions/description/2006" | |
3 | -xmlns:d="http://openoffice.org/extensions/description/2006" | |
4 | -xmlns:xlink="http://www.w3.org/1999/xlink"> | |
5 | - | |
6 | - <version value="@PACKAGE_VERSION@" /> | |
7 | - | |
8 | - <identifier value="@PACKAGE_NAME@" /> | |
9 | - | |
10 | - <platform value="linux_@host_cpu@" /> | |
11 | - | |
12 | - <dependencies> | |
13 | - <OpenOffice.org-minimal-version value="2.2" d:name="OpenOffice.org 2.2"/> | |
14 | - </dependencies> | |
15 | - | |
16 | - <display-name> | |
17 | - <name lang="en">3270 access extension</name> | |
18 | - </display-name> | |
19 | - | |
20 | - <icon> | |
21 | - <default xlink:href="@PACKAGE_NAME@.png" /> | |
22 | - </icon> | |
23 | - | |
24 | - <extension-description> | |
25 | - <src xlink:href="description.txt" lang="en" /> | |
26 | - </extension-description> | |
27 | - | |
28 | - | |
29 | - | |
30 | -</description> |
src/oxt/get.cxx
... | ... | @@ -1,68 +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 | - * Este programa está nomeado como get.cxx 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 | - * licinio@bb.com.br (Licínio Luis Branco) | |
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | - * | |
30 | - */ | |
31 | - | |
32 | - #include "globals.hpp" | |
33 | - #include <string.h> | |
34 | - | |
35 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | |
36 | - | |
37 | -sal_Int16 SAL_CALL pw3270::uno_impl::getRevision() throw (RuntimeException) | |
38 | -{ | |
39 | - return hSession->get_revision(); | |
40 | -} | |
41 | - | |
42 | -::rtl::OUString SAL_CALL pw3270::uno_impl::getVersion() throw (RuntimeException) | |
43 | -{ | |
44 | - const char *version = PACKAGE_VERSION; | |
45 | - return OUString(version, strlen(version), hSession->get_encoding(), RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | |
46 | -} | |
47 | - | |
48 | -sal_Int16 SAL_CALL pw3270::uno_impl::getConnectionState( ) throw (::com::sun::star::uno::RuntimeException) | |
49 | -{ | |
50 | - return hSession->get_state(); | |
51 | -} | |
52 | - | |
53 | -::rtl::OUString SAL_CALL pw3270::uno_impl::getTextAt( ::sal_Int16 row, ::sal_Int16 col, ::sal_Int16 size ) throw (::com::sun::star::uno::RuntimeException) | |
54 | -{ | |
55 | - char * ptr = hSession->get_text_at(row,col,size); | |
56 | - OUString ret; | |
57 | - | |
58 | - if(!ptr) | |
59 | - return OUString( RTL_CONSTASCII_USTRINGPARAM( "" ) ); | |
60 | - | |
61 | - ret = OUString(ptr, strlen(ptr), hSession->get_encoding(), RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | |
62 | - | |
63 | - hSession->mem_free(ptr); | |
64 | - | |
65 | - return ret; | |
66 | -} | |
67 | - | |
68 | - |
src/oxt/globals.hpp
... | ... | @@ -1,229 +0,0 @@ |
1 | - | |
2 | - | |
3 | -#ifndef GLOBALS_HPP_INCLUDED | |
4 | - | |
5 | - #define GLOBALS_HPP_INCLUDED 1 | |
6 | - #define UNX 1 | |
7 | - #define GCC 1 | |
8 | - #define LINUX 1 | |
9 | - #define CPPU_ENV gcc3 | |
10 | - #define HAVE_GCC_VISIBILITY_FEATURE 1 | |
11 | - #define LANGUAGE_BINDING_NAME "gcc3" | |
12 | - | |
13 | - #include <stdio.h> | |
14 | - #include <lib3270.h> | |
15 | - | |
16 | -#if defined(HAVE_DBUS) | |
17 | - #include <stdio.h> | |
18 | - #include <dbus/dbus.h> | |
19 | -#endif // HAVE_DBUS | |
20 | - | |
21 | - #include <rtl/uuid.h> | |
22 | - #include <osl/thread.hxx> | |
23 | - | |
24 | - #include <cppuhelper/implbase3.hxx> // "3" implementing three interfaces | |
25 | - #include <cppuhelper/factory.hxx> | |
26 | - #include <cppuhelper/implementationentry.hxx> | |
27 | - | |
28 | - #include <com/sun/star/lang/XServiceInfo.hpp> | |
29 | - #include <com/sun/star/lang/XInitialization.hpp> | |
30 | - #include <com/sun/star/lang/IllegalArgumentException.hpp> | |
31 | - | |
32 | - #include <pw3270intf.hpp> | |
33 | - | |
34 | - /*---[ Debug macros ]--------------------------------------------------------------------------------------*/ | |
35 | - | |
36 | - #ifdef DEBUG | |
37 | - #define trace(fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); | |
38 | - #else | |
39 | - #define trace( fmt, ... ) /* fmt __VA_ARGS__ */ | |
40 | - #endif | |
41 | - | |
42 | - /*---[ Object implementation ]-----------------------------------------------------------------------------*/ | |
43 | - | |
44 | - #define IMPLNAME "br.com.bb.pw3270intf" | |
45 | - #define SERVICENAME "br.com.bb.pw3270" | |
46 | - | |
47 | - using namespace br::com::bb; | |
48 | - using namespace ::rtl; // for OUString | |
49 | - using namespace ::com::sun::star; // for sdk interfaces | |
50 | - using namespace ::com::sun::star::uno; // for basic types | |
51 | - | |
52 | - namespace pw3270 | |
53 | - { | |
54 | - | |
55 | - class uno_impl; | |
56 | - | |
57 | - class session | |
58 | - { | |
59 | - public: | |
60 | - session(); | |
61 | - virtual ~session(); | |
62 | - virtual int get_revision(void) = 0; | |
63 | - virtual LIB3270_MESSAGE get_state(void) = 0; | |
64 | - virtual char * get_text_at(int row, int col, int len) = 0; | |
65 | - virtual int set_text_at(int row, int col, const char *text) = 0; | |
66 | - virtual int cmp_text_at(int row, int col, const char *text) = 0; | |
67 | - virtual void set_toggle(LIB3270_TOGGLE toggle, bool state) = 0; | |
68 | - | |
69 | - virtual int connect(const char *uri) = 0; | |
70 | - virtual int disconnect(void) = 0; | |
71 | - virtual bool connected(void) = 0; | |
72 | - | |
73 | - virtual int enter(void) = 0; | |
74 | - virtual int pfkey(int key) = 0; | |
75 | - virtual int pakey(int key) = 0; | |
76 | - virtual bool in_tn3270e() = 0; | |
77 | - virtual void mem_free(void *) = 0; | |
78 | - | |
79 | - void sleep(int seconds = 1); | |
80 | - | |
81 | - void log(const char *fmt, const char *msg); | |
82 | - | |
83 | - rtl_TextEncoding get_encoding(); | |
84 | - | |
85 | - }; | |
86 | - | |
87 | - class lib3270_session : public session | |
88 | - { | |
89 | - public: | |
90 | - lib3270_session(uno_impl *obj) throw( RuntimeException ); | |
91 | - virtual ~lib3270_session(); | |
92 | - | |
93 | - virtual int get_revision(void); | |
94 | - virtual LIB3270_MESSAGE get_state(void); | |
95 | - | |
96 | - virtual int connect(const char *uri); | |
97 | - virtual int disconnect(void); | |
98 | - virtual bool connected(void); | |
99 | - virtual bool in_tn3270e(void); | |
100 | - | |
101 | - virtual int enter(void); | |
102 | - virtual int pfkey(int key); | |
103 | - virtual int pakey(int key); | |
104 | - | |
105 | - virtual char * get_text_at(int row, int col, int len); | |
106 | - virtual int set_text_at(int row, int col, const char *text); | |
107 | - virtual int cmp_text_at(int row, int col, const char *text); | |
108 | - | |
109 | - virtual void mem_free(void *ptr); | |
110 | - virtual void set_toggle(LIB3270_TOGGLE toggle, bool state); | |
111 | - | |
112 | - private: | |
113 | - bool enabled; | |
114 | - oslModule hModule; | |
115 | - oslThread hThread; | |
116 | - H3270 * hSession; | |
117 | - | |
118 | - /* Internal calls */ | |
119 | - static void start_connect(lib3270_session *session); | |
120 | - void network_loop(void); | |
121 | - | |
122 | - /* lib3270 entry points */ | |
123 | - const char * (* _get_revision)(void); | |
124 | - LIB3270_MESSAGE (* _get_program_message)(H3270 *); | |
125 | - int (* _in_tn3270e)(H3270 *); | |
126 | - char * (* _get_text_at)(H3270 *,int,int,int); | |
127 | - int (* _set_text_at)(H3270 *,int,int,const unsigned char *); | |
128 | - int (* _cmp_text_at)(H3270 *,int,int,const char *); | |
129 | - int (* _enter)(H3270 *); | |
130 | - int (* _pfkey)(H3270 *, int); | |
131 | - int (* _pakey)(H3270 *, int); | |
132 | - void * (* _mem_free)(void *); | |
133 | - void (*_set_toggle)(void *h, LIB3270_TOGGLE ix, int value); | |
134 | - | |
135 | - | |
136 | - }; | |
137 | - | |
138 | - class ipc3270_session : public session | |
139 | - { | |
140 | - public: | |
141 | - ipc3270_session(uno_impl *obj, const char *name) throw( RuntimeException ); | |
142 | - virtual ~ipc3270_session(); | |
143 | - virtual int get_revision(void); | |
144 | - virtual LIB3270_MESSAGE get_state(void); | |
145 | - virtual char * get_text_at(int row, int col, int len); | |
146 | - virtual int set_text_at(int row, int col, const char *text); | |
147 | - virtual int cmp_text_at(int row, int col, const char *text); | |
148 | - virtual void set_toggle(LIB3270_TOGGLE toggle, bool state); | |
149 | - | |
150 | - virtual int connect(const char *uri); | |
151 | - virtual int disconnect(void); | |
152 | - virtual bool connected(void); | |
153 | - | |
154 | - virtual int enter(void); | |
155 | - virtual int pfkey(int key); | |
156 | - virtual int pakey(int key); | |
157 | - virtual bool in_tn3270e(); | |
158 | - virtual void mem_free(void *); | |
159 | - | |
160 | - private: | |
161 | - | |
162 | -#if defined(HAVE_DBUS) | |
163 | - | |
164 | - DBusConnection * conn; | |
165 | - char * dest; | |
166 | - char * path; | |
167 | - char * intf; | |
168 | - DBusMessage * create_message(const char *method); | |
169 | - DBusMessage * call(DBusMessage *msg); | |
170 | - char * query_string(const char *method); | |
171 | - int query_intval(const char *method); | |
172 | - | |
173 | -#endif // HAVE_DBUS | |
174 | - | |
175 | - }; | |
176 | - | |
177 | - | |
178 | - class uno_impl : public ::cppu::WeakImplHelper3< br::com::bb::pw3270intf, com::sun::star::lang::XServiceInfo, com::sun::star::lang::XInitialization > | |
179 | - { | |
180 | - public: | |
181 | - | |
182 | - uno_impl( const com::sun::star::uno::Reference< XComponentContext > & xContext ); | |
183 | - virtual ~uno_impl(); | |
184 | - | |
185 | - // XInitialization will be called upon createInstanceWithArguments[AndContext]() | |
186 | - virtual void SAL_CALL initialize( Sequence< Any > const & args ) throw (Exception); | |
187 | - | |
188 | - // XServiceInfo implementation | |
189 | - virtual OUString SAL_CALL getImplementationName( ) throw(RuntimeException); | |
190 | - virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(RuntimeException); | |
191 | - virtual Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(RuntimeException); | |
192 | - | |
193 | - // pw3270 implementation - Main | |
194 | - virtual ::sal_Int16 SAL_CALL getRevision() throw (RuntimeException); | |
195 | - virtual ::rtl::OUString SAL_CALL getVersion( ) throw (::com::sun::star::uno::RuntimeException); | |
196 | - virtual ::sal_Int16 SAL_CALL Connect( const ::rtl::OUString& hostinfo ) throw (::com::sun::star::uno::RuntimeException); | |
197 | - virtual ::sal_Int16 SAL_CALL Disconnect( ) throw (::com::sun::star::uno::RuntimeException); | |
198 | - virtual ::sal_Int16 SAL_CALL getConnectionState( ) throw (::com::sun::star::uno::RuntimeException); | |
199 | - virtual ::sal_Int16 SAL_CALL sleep( ::sal_Int16 seconds ) throw (::com::sun::star::uno::RuntimeException); | |
200 | - virtual ::rtl::OUString SAL_CALL getTextAt( ::sal_Int16 row, ::sal_Int16 col, ::sal_Int16 size ) throw (::com::sun::star::uno::RuntimeException); | |
201 | - virtual ::sal_Int16 SAL_CALL setTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& text ) throw (::com::sun::star::uno::RuntimeException); | |
202 | - virtual ::sal_Int16 SAL_CALL log(const ::rtl::OUString& text ) throw (::com::sun::star::uno::RuntimeException); | |
203 | - virtual ::sal_Int16 SAL_CALL enter( ) throw (::com::sun::star::uno::RuntimeException); | |
204 | - virtual ::sal_Int16 SAL_CALL pfkey( ::sal_Int16 keycode ) throw (::com::sun::star::uno::RuntimeException); | |
205 | - virtual ::sal_Int16 SAL_CALL pakey( ::sal_Int16 keycode ) throw (::com::sun::star::uno::RuntimeException); | |
206 | - virtual ::sal_Int16 SAL_CALL cmpTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& text ) throw (::com::sun::star::uno::RuntimeException); | |
207 | - virtual ::sal_Bool SAL_CALL isReady( ) throw (::com::sun::star::uno::RuntimeException); | |
208 | - virtual ::sal_Bool SAL_CALL isConnected( ) throw (::com::sun::star::uno::RuntimeException); | |
209 | - virtual ::sal_Bool SAL_CALL hasTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& text ) throw (::com::sun::star::uno::RuntimeException); | |
210 | - virtual ::sal_Int16 SAL_CALL waitForReady( ::sal_Int16 seconds ) throw (::com::sun::star::uno::RuntimeException); | |
211 | - virtual ::sal_Int16 SAL_CALL dsTrace( ::sal_Bool state ) throw (::com::sun::star::uno::RuntimeException); | |
212 | - virtual ::sal_Int16 SAL_CALL screenTrace( ::sal_Bool state ) throw (::com::sun::star::uno::RuntimeException); | |
213 | - virtual ::sal_Int16 SAL_CALL setSession( const ::rtl::OUString& name ) throw (::com::sun::star::uno::RuntimeException); | |
214 | - | |
215 | - void failed(const char *fmt, ...) throw( ::com::sun::star::uno::RuntimeException ); | |
216 | - | |
217 | - private: | |
218 | - | |
219 | - session *hSession; | |
220 | - | |
221 | - }; | |
222 | - | |
223 | - }; | |
224 | - | |
225 | - | |
226 | - | |
227 | - | |
228 | -#endif // GLOBALS_HPP_INCLUDED | |
229 | - |
src/oxt/local.cxx
... | ... | @@ -1,343 +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 | - * Este programa está nomeado como local.cxx 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 | - * licinio@bb.com.br (Licínio Luis Branco) | |
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | - * | |
30 | - */ | |
31 | - | |
32 | - #include "globals.hpp" | |
33 | - #include <errno.h> | |
34 | - #include <string.h> | |
35 | - | |
36 | - #ifdef HAVE_SYSLOG | |
37 | - #include <syslog.h> | |
38 | - #include <stdarg.h> | |
39 | - #endif // HAVE_SYSLOG | |
40 | - | |
41 | -/* | |
42 | - * NOTE: Take a better look at osl_createEmptySocketAddr() & osl_connectSocketTo() to see if there's | |
43 | - * a way to use this calls to connect with the host for better performance. | |
44 | - */ | |
45 | - | |
46 | -/*---[ Statics ]-------------------------------------------------------------------------------------------*/ | |
47 | - | |
48 | - | |
49 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | |
50 | - | |
51 | - static void loghandler(H3270 *session, const char *module, int rc, const char *fmt, va_list args) | |
52 | - { | |
53 | -#ifdef HAVE_SYSLOG | |
54 | - openlog(PACKAGE_NAME, LOG_NDELAY, LOG_USER); | |
55 | - vsyslog(LOG_INFO,fmt,args); | |
56 | - closelog(); | |
57 | -#endif // HAVE_SYSLOG | |
58 | - } | |
59 | - | |
60 | - static void tracehandler(H3270 *session, const char *fmt, va_list args) | |
61 | - { | |
62 | -#ifdef HAVE_SYSLOG | |
63 | - | |
64 | - #define MAX_LOG_LENGTH 200 | |
65 | - | |
66 | - static char line[MAX_LOG_LENGTH+1]; | |
67 | - char temp[MAX_LOG_LENGTH]; | |
68 | - char * ptr; | |
69 | - size_t len = strlen(line); | |
70 | - | |
71 | - vsnprintf(temp,MAX_LOG_LENGTH-len,fmt,args); | |
72 | - | |
73 | - ptr = strchr(temp,'\n'); | |
74 | - if(!ptr) | |
75 | - { | |
76 | - strncat(line,temp,MAX_LOG_LENGTH); | |
77 | - if(strlen(line) >= MAX_LOG_LENGTH) | |
78 | - { | |
79 | - openlog(PACKAGE_NAME, LOG_NDELAY, LOG_USER); | |
80 | - syslog(LOG_INFO,line); | |
81 | - closelog(); | |
82 | - *line = 0; | |
83 | - } | |
84 | - return; | |
85 | - } | |
86 | - | |
87 | - *ptr = 0; | |
88 | - strncat(line,temp,MAX_LOG_LENGTH); | |
89 | - | |
90 | - openlog(PACKAGE_NAME, LOG_NDELAY, LOG_USER); | |
91 | - syslog(LOG_DEBUG,line); | |
92 | - closelog(); | |
93 | - | |
94 | - strncpy(line,ptr+1,MAX_LOG_LENGTH); | |
95 | - | |
96 | -#endif // HAVE_SYSLOG | |
97 | - } | |
98 | - | |
99 | - pw3270::lib3270_session::lib3270_session(uno_impl *obj) throw( RuntimeException ) | |
100 | - { | |
101 | - struct _call | |
102 | - { | |
103 | - void **entry; | |
104 | - const char * name; | |
105 | - } call[] = | |
106 | - { | |
107 | - { (void **) & _get_revision, "lib3270_get_revision" }, | |
108 | - { (void **) & _get_text_at, "lib3270_get_text_at" }, | |
109 | - { (void **) & _set_text_at, "lib3270_set_string_at" }, | |
110 | - { (void **) & _cmp_text_at, "lib3270_cmp_text_at" }, | |
111 | - { (void **) & _enter, "lib3270_enter" }, | |
112 | - { (void **) & _pfkey, "lib3270_pfkey" }, | |
113 | - { (void **) & _pakey, "lib3270_pakey" }, | |
114 | - { (void **) & _in_tn3270e, "lib3270_in_tn3270e" }, | |
115 | - { (void **) & _get_program_message, "lib3270_get_program_message" }, | |
116 | - { (void **) & _mem_free, "lib3270_free" }, | |
117 | - { (void **) & _set_toggle, "lib3270_set_toggle" } | |
118 | - | |
119 | - }; | |
120 | - | |
121 | - H3270 * (*lib3270_new)(const char *); | |
122 | - void (*set_log_handler)(void (*loghandler)(H3270 *, const char *, int, const char *, va_list)); | |
123 | - void (*set_trace_handler)( void (*handler)(H3270 *session, const char *fmt, va_list args) ); | |
124 | - | |
125 | - hThread = NULL; | |
126 | - hSession = NULL; | |
127 | - | |
128 | - hModule = osl_loadModuleAscii("lib3270.so." PACKAGE_VERSION,SAL_LOADMODULE_NOW); | |
129 | - trace("%s: hModule(lib3270.so." PACKAGE_VERSION ")=%p",__FUNCTION__,hModule); | |
130 | - | |
131 | - if(!hModule) | |
132 | - { | |
133 | - hModule = osl_loadModuleAscii("lib3270.so." PACKAGE_VERSION,SAL_LOADMODULE_NOW); | |
134 | - trace("%s: hModule(lib3270.so)=%p",__FUNCTION__,hModule); | |
135 | - } | |
136 | - | |
137 | - if(!hModule) | |
138 | - { | |
139 | - obj->failed("%s","Can't load lib3270"); | |
140 | - return; | |
141 | - } | |
142 | - | |
143 | - for(int f = 0; f < (sizeof (call) / sizeof ((call)[0]));f++) | |
144 | - { | |
145 | - *call[f].entry = (void *) osl_getAsciiFunctionSymbol(hModule,call[f].name); | |
146 | - if(!*call[f].entry) | |
147 | - obj->failed("Error loading lib3270::%s",call[f].name); | |
148 | - } | |
149 | - | |
150 | - /* Get lib3270 session handle */ | |
151 | - set_log_handler = (void (*)(void (*loghandler)(H3270 *, const char *, int, const char *, va_list))) osl_getAsciiFunctionSymbol(hModule,"lib3270_set_log_handler"); | |
152 | - set_trace_handler = (void (*)(void (*handler)(H3270 *session, const char *fmt, va_list args) )) osl_getAsciiFunctionSymbol(hModule,"lib3270_set_trace_handler"); | |
153 | - | |
154 | - if(set_log_handler) | |
155 | - set_log_handler(loghandler); | |
156 | - | |
157 | - if(set_trace_handler) | |
158 | - set_trace_handler(tracehandler); | |
159 | - | |
160 | - lib3270_new = (H3270 * (*)(const char *)) osl_getAsciiFunctionSymbol(hModule,"lib3270_session_new"); | |
161 | - hSession = lib3270_new(""); | |
162 | - | |
163 | - log("%s UNO extension loaded",PACKAGE_NAME); | |
164 | - } | |
165 | - | |
166 | - pw3270::lib3270_session::~lib3270_session() | |
167 | - { | |
168 | - | |
169 | - trace("%s hModule=%p hSession=%p",__FUNCTION__,hModule,hSession); | |
170 | - | |
171 | - disconnect(); | |
172 | - osl_yieldThread(); | |
173 | - | |
174 | - if(hThread) | |
175 | - osl_joinWithThread(hThread); | |
176 | - | |
177 | - if(hModule) | |
178 | - { | |
179 | - if(hSession) | |
180 | - { | |
181 | - void (*lib3270_free)(void *) = (void (*)(void *)) osl_getAsciiFunctionSymbol(hModule,"lib3270_session_free"); | |
182 | - lib3270_free(hSession); | |
183 | - hSession = NULL; | |
184 | - } | |
185 | - osl_unloadModule(hModule); | |
186 | - hModule = NULL; | |
187 | - } | |
188 | - | |
189 | - log("%s UNO extension unloaded",PACKAGE_NAME); | |
190 | - } | |
191 | - | |
192 | - int pw3270::lib3270_session::get_revision(void) | |
193 | - { | |
194 | - if(!_get_revision) | |
195 | - return -1; | |
196 | - return atoi(_get_revision()); | |
197 | - } | |
198 | - | |
199 | - int pw3270::lib3270_session::connect(const char *uri) | |
200 | - { | |
201 | - const char * (*set_host)(void *h, const char *n); | |
202 | - | |
203 | - if(!(hModule && hSession)) | |
204 | - return EINVAL; | |
205 | - | |
206 | - if(hThread) | |
207 | - return EBUSY; | |
208 | - | |
209 | - set_host = (const char * (*)(void *,const char *)) osl_getAsciiFunctionSymbol(hModule,"lib3270_set_host"); | |
210 | - if(!set_host) | |
211 | - return EINVAL; | |
212 | - | |
213 | - set_host(hSession,uri); | |
214 | - | |
215 | - enabled = true; | |
216 | - hThread = osl_createThread((oslWorkerFunction) pw3270::lib3270_session::start_connect, this); | |
217 | - | |
218 | - osl_yieldThread(); | |
219 | - | |
220 | - if(!hThread) | |
221 | - return -1; | |
222 | - | |
223 | - osl_yieldThread(); | |
224 | - | |
225 | - return 0; | |
226 | - } | |
227 | - | |
228 | - int pw3270::lib3270_session::disconnect(void) | |
229 | - { | |
230 | - enabled = false; | |
231 | - return 0; | |
232 | - } | |
233 | - | |
234 | - void pw3270::lib3270_session::start_connect(lib3270_session *session) | |
235 | - { | |
236 | - session->network_loop(); | |
237 | - session->hThread = NULL; | |
238 | - session->enabled = false; | |
239 | - } | |
240 | - | |
241 | - void pw3270::lib3270_session::network_loop(void) | |
242 | - { | |
243 | - /* Lib3270 entry points */ | |
244 | - void (* _disconnect)(void *h) = | |
245 | - (void (*)(void *)) osl_getAsciiFunctionSymbol(hModule,"lib3270_disconnect"); | |
246 | - | |
247 | - int (* _connect)(void *h,const char *n, int wait) = | |
248 | - (int (*)(void *,const char *,int)) osl_getAsciiFunctionSymbol(hModule,"lib3270_connect"); | |
249 | - | |
250 | - int (* _status)(void *h) = | |
251 | - (int (*)(void *)) osl_getAsciiFunctionSymbol(hModule,"lib3270_disconnected"); | |
252 | - | |
253 | - void (*_iterate)(void *h, int wait) = | |
254 | - (void (*)(void *, int)) osl_getAsciiFunctionSymbol(hModule,"lib3270_main_iterate"); | |
255 | - | |
256 | - trace("%s starts",__FUNCTION__); | |
257 | - _connect(hSession,NULL,1); | |
258 | - | |
259 | - trace("%s network loop begin",__FUNCTION__); | |
260 | - while(enabled && !_status(hSession)) | |
261 | - { | |
262 | - osl_yieldThread(); | |
263 | - _iterate(hSession,1); | |
264 | - } | |
265 | - trace("%s network loop ends",__FUNCTION__); | |
266 | - | |
267 | - osl_yieldThread(); | |
268 | - | |
269 | - _disconnect(hSession); | |
270 | - | |
271 | - } | |
272 | - | |
273 | - bool pw3270::lib3270_session::connected(void) | |
274 | - { | |
275 | - return enabled; | |
276 | - } | |
277 | - | |
278 | - int pw3270::lib3270_session::enter(void) | |
279 | - { | |
280 | - if(!hSession) | |
281 | - return EINVAL; | |
282 | - return _enter(hSession); | |
283 | - } | |
284 | - | |
285 | - int pw3270::lib3270_session::pfkey(int key) | |
286 | - { | |
287 | - if(!hSession) | |
288 | - return EINVAL; | |
289 | - return _pfkey(hSession,key); | |
290 | - } | |
291 | - | |
292 | - int pw3270::lib3270_session::pakey(int key) | |
293 | - { | |
294 | - if(!hSession) | |
295 | - return EINVAL; | |
296 | - return _pakey(hSession,key); | |
297 | - } | |
298 | - | |
299 | - LIB3270_MESSAGE pw3270::lib3270_session::get_state(void) | |
300 | - { | |
301 | - if(!hSession) | |
302 | - return LIB3270_MESSAGE_DISCONNECTED; | |
303 | - return _get_program_message(hSession); | |
304 | - } | |
305 | - | |
306 | - void pw3270::lib3270_session::mem_free(void *ptr) | |
307 | - { | |
308 | - _mem_free(ptr); | |
309 | - } | |
310 | - | |
311 | - char * pw3270::lib3270_session::get_text_at(int row, int col, int len) | |
312 | - { | |
313 | - if(!hSession) | |
314 | - return NULL; | |
315 | - return _get_text_at(hSession,row,col,len); | |
316 | - } | |
317 | - | |
318 | - int pw3270::lib3270_session::set_text_at(int row, int col, const char *text) | |
319 | - { | |
320 | - if(!hSession) | |
321 | - return EINVAL; | |
322 | - return _set_text_at(hSession,row,col,(const unsigned char *) text); | |
323 | - } | |
324 | - | |
325 | - int pw3270::lib3270_session::cmp_text_at(int row, int col,const char *text) | |
326 | - { | |
327 | - if(!hSession) | |
328 | - return EINVAL; | |
329 | - return _cmp_text_at(hSession,row,col,text); | |
330 | - } | |
331 | - | |
332 | - bool pw3270::lib3270_session::in_tn3270e(void) | |
333 | - { | |
334 | - if(!hSession) | |
335 | - return false; | |
336 | - return _in_tn3270e(hSession) != 0; | |
337 | - } | |
338 | - | |
339 | - void pw3270::lib3270_session::set_toggle(LIB3270_TOGGLE toggle, bool state) | |
340 | - { | |
341 | - if(hSession) | |
342 | - _set_toggle(hSession,toggle,(int) state); | |
343 | - } |
src/oxt/main.cxx
... | ... | @@ -1,330 +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 | - * Este programa está nomeado como main.cxx 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 | - * licinio@bb.com.br (Licínio Luis Branco) | |
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | - * | |
30 | - */ | |
31 | - | |
32 | -#include "globals.hpp" | |
33 | -#include <string.h> | |
34 | - | |
35 | -#ifdef HAVE_SYSLOG | |
36 | - #include <syslog.h> | |
37 | -#endif // HAVE_SYSLOG | |
38 | - | |
39 | -#include <salhelper/timer.hxx> | |
40 | -#include <com/sun/star/registry/XRegistryKey.hpp> | |
41 | -#include <com/sun/star/lang/XSingleComponentFactory.hpp> | |
42 | - | |
43 | -using namespace com::sun::star::registry; // for XRegistryKey | |
44 | -using namespace com::sun::star::lang; // for XSingleComponentFactory | |
45 | - | |
46 | -/*---[ Statics ]-------------------------------------------------------------------------------------------*/ | |
47 | - | |
48 | - | |
49 | - | |
50 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | |
51 | - | |
52 | -static Sequence< OUString > getSupportedServiceNames() | |
53 | -{ | |
54 | - Sequence<OUString> names(1); | |
55 | - | |
56 | - trace("%s returns: %s",__FUNCTION__, SERVICENAME); | |
57 | - names[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICENAME ) ); | |
58 | - | |
59 | - return names; | |
60 | -} | |
61 | - | |
62 | -static Reference< XInterface > SAL_CALL CreateInstance( const Reference< XComponentContext > & xContext ) | |
63 | -{ | |
64 | - return static_cast< XTypeProvider * >( new pw3270::uno_impl( xContext ) ); | |
65 | -} | |
66 | - | |
67 | -/*---[ Implement exported calls ]--------------------------------------------------------------------------*/ | |
68 | - | |
69 | -/************************************************************** | |
70 | - * Function to determine the environment of the implementation. | |
71 | - * | |
72 | - * If the environment is NOT session specific | |
73 | - * (needs no additional context), then this function | |
74 | - * should return the environment type name and leave ppEnv (0). | |
75 | - * | |
76 | - * @param ppEnvTypeName environment type name; | |
77 | - * string must be constant | |
78 | - * @param ppEnv function returns its environment | |
79 | - * if the environment is session specific, | |
80 | - * i.e. has special context | |
81 | - */ | |
82 | -extern "C" void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv) | |
83 | -{ | |
84 | -#ifdef LANGUAGE_BINDING_NAME | |
85 | - trace("%s set envtype to %s\n",__FUNCTION__,LANGUAGE_BINDING_NAME); | |
86 | - *ppEnvTypeName = LANGUAGE_BINDING_NAME; | |
87 | -#else | |
88 | - trace("%s set envtype to %s\n",__FUNCTION__,"msci"); | |
89 | - *ppEnvTypeName = "msci"; | |
90 | -#endif | |
91 | -} | |
92 | - | |
93 | -/************************************************************ | |
94 | - * Optional function to retrieve a component description. | |
95 | - * | |
96 | - * @return an XML formatted string containing a short | |
97 | - * component description | |
98 | - */ | |
99 | -// typedef const sal_Char * (SAL_CALL * component_getDescriptionFunc)(void); | |
100 | - | |
101 | -/********************************************************** | |
102 | - * Writes component registry info, at least writing the | |
103 | - * supported service names. | |
104 | - * | |
105 | - * @param pServiceManager a service manager | |
106 | - * (the type is XMultiServiceFactory | |
107 | - * to be used by the environment | |
108 | - * returned by | |
109 | - * component_getImplementationEnvironment) | |
110 | - * | |
111 | - * @param pRegistryKey a registry key | |
112 | - * (the type is XRegistryKey to be used | |
113 | - * by the environment returned by | |
114 | - * component_getImplementationEnvironment) | |
115 | - * | |
116 | - * @return true if everything went fine | |
117 | - */ | |
118 | -extern "C" sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void * pRegistryKey) | |
119 | -{ | |
120 | - sal_Bool result = sal_False; | |
121 | - | |
122 | - trace("%s",__FUNCTION__); | |
123 | - | |
124 | - if (pRegistryKey) | |
125 | - { | |
126 | - try | |
127 | - { | |
128 | - Reference< XRegistryKey > xNewKey( | |
129 | - reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( | |
130 | - OUString( RTL_CONSTASCII_USTRINGPARAM("/" IMPLNAME "/UNO/SERVICES") ) ) ); | |
131 | - | |
132 | - const Sequence< OUString > & rSNL = getSupportedServiceNames(); | |
133 | - const OUString * pArray = rSNL.getConstArray(); | |
134 | - | |
135 | - for ( sal_Int32 nPos = rSNL.getLength(); nPos--; ) | |
136 | - xNewKey->createKey( pArray[nPos] ); | |
137 | - | |
138 | - return sal_True; | |
139 | - } | |
140 | - catch (InvalidRegistryException &) | |
141 | - { | |
142 | - // we should not ignore exceptions | |
143 | - } | |
144 | - } | |
145 | - | |
146 | - return result; | |
147 | -} | |
148 | - | |
149 | -/********************************************************* | |
150 | - * Retrieves a factory to create component instances. | |
151 | - * | |
152 | - * @param pImplName desired implementation name | |
153 | - * | |
154 | - * @param pServiceManager a service manager | |
155 | - * (the type is XMultiServiceFactory | |
156 | - * to be used by the environment | |
157 | - * returned by | |
158 | - * component_getImplementationEnvironment) | |
159 | - * | |
160 | - * @param pRegistryKey a registry key | |
161 | - * (the type is XRegistryKey to be used | |
162 | - * by the environment returned by | |
163 | - * component_getImplementationEnvironment) | |
164 | - * | |
165 | - * @return acquired component factory | |
166 | - * (the type is XInterface to be used by the | |
167 | - * environment returned by | |
168 | - * component_getImplementationEnvironment) | |
169 | - */ | |
170 | -extern "C" void * SAL_CALL component_getFactory(const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey) | |
171 | -{ | |
172 | - void * pRet = 0; | |
173 | - | |
174 | - trace("%s",__FUNCTION__); | |
175 | - | |
176 | - if(pServiceManager && rtl_str_compare( pImplName, IMPLNAME ) == 0) | |
177 | - { | |
178 | - Reference< XSingleComponentFactory > xFactory( ::cppu::createSingleComponentFactory( | |
179 | - CreateInstance, OUString::createFromAscii( IMPLNAME ), getSupportedServiceNames() )); | |
180 | - | |
181 | - | |
182 | - if (xFactory.is()) | |
183 | - { | |
184 | - xFactory->acquire(); | |
185 | - pRet = xFactory.get(); | |
186 | - } | |
187 | - } | |
188 | - | |
189 | - return pRet; | |
190 | -} | |
191 | - | |
192 | -/*---[ Implement XInitialization ]-------------------------------------------------------------------------*/ | |
193 | - | |
194 | -void SAL_CALL pw3270::uno_impl::initialize( Sequence< Any > const & args ) throw (Exception) | |
195 | -{ | |
196 | - trace("%s",__FUNCTION__); | |
197 | -} | |
198 | - | |
199 | -/*---[ Implement XServiceInfo ]----------------------------------------------------------------------------*/ | |
200 | - | |
201 | -OUString SAL_CALL pw3270::uno_impl::getImplementationName( ) throw(RuntimeException) | |
202 | -{ | |
203 | - trace("%s",__FUNCTION__); | |
204 | - return OUString( RTL_CONSTASCII_USTRINGPARAM(IMPLNAME) ); | |
205 | -} | |
206 | - | |
207 | -sal_Bool SAL_CALL pw3270::uno_impl::supportsService( const OUString& ServiceName ) throw(RuntimeException) | |
208 | -{ | |
209 | - trace("%s",__FUNCTION__); | |
210 | - return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("IMPLNAME") ); | |
211 | -} | |
212 | - | |
213 | -Sequence< OUString > pw3270::uno_impl::getSupportedServiceNames() throw (RuntimeException) | |
214 | -{ | |
215 | - return getSupportedServiceNames(); | |
216 | -} | |
217 | - | |
218 | -/*---[ Implement pw3270 ]----------------------------------------------------------------------------------*/ | |
219 | - | |
220 | -pw3270::uno_impl::uno_impl( const Reference< XComponentContext > & xContext ) | |
221 | -{ | |
222 | - this->hSession = new lib3270_session(this); | |
223 | -} | |
224 | - | |
225 | -pw3270::uno_impl::~uno_impl() | |
226 | -{ | |
227 | - delete this->hSession; | |
228 | -} | |
229 | - | |
230 | -::sal_Int16 SAL_CALL pw3270::uno_impl::sleep( ::sal_Int16 seconds ) throw (::com::sun::star::uno::RuntimeException) | |
231 | -{ | |
232 | - salhelper::TTimeValue t = salhelper::TTimeValue(seconds,0); | |
233 | - osl_waitThread(&t); | |
234 | - return 0; | |
235 | -} | |
236 | - | |
237 | -::sal_Int16 SAL_CALL pw3270::uno_impl::log( const ::rtl::OUString& msg ) throw (::com::sun::star::uno::RuntimeException) | |
238 | -{ | |
239 | - hSession->log("%s",rtl::OUStringToOString(msg,RTL_TEXTENCODING_UTF8).getStr()); | |
240 | - return 0; | |
241 | -} | |
242 | - | |
243 | -::sal_Int16 SAL_CALL pw3270::uno_impl::dsTrace( ::sal_Bool state ) throw (::com::sun::star::uno::RuntimeException) | |
244 | -{ | |
245 | - hSession->log("DS trace is %s",state ? "ON" : "OFF"); | |
246 | - hSession->set_toggle(LIB3270_TOGGLE_DS_TRACE,state); | |
247 | - return 0; | |
248 | -} | |
249 | - | |
250 | -::sal_Int16 SAL_CALL pw3270::uno_impl::screenTrace( ::sal_Bool state ) throw (::com::sun::star::uno::RuntimeException) | |
251 | -{ | |
252 | - hSession->log("Screen trace is %s",state ? "ON" : "OFF"); | |
253 | - hSession->set_toggle(LIB3270_TOGGLE_SCREEN_TRACE,state); | |
254 | - return 0; | |
255 | -} | |
256 | - | |
257 | -pw3270::session::session() | |
258 | -{ | |
259 | - trace("%s",__FUNCTION__); | |
260 | -} | |
261 | - | |
262 | -pw3270::session::~session() | |
263 | -{ | |
264 | - trace("%s",__FUNCTION__); | |
265 | -} | |
266 | - | |
267 | -rtl_TextEncoding pw3270::session::get_encoding() | |
268 | -{ | |
269 | - return RTL_TEXTENCODING_ISO_8859_1; | |
270 | -} | |
271 | - | |
272 | -void pw3270::session::sleep(int seconds) | |
273 | -{ | |
274 | - salhelper::TTimeValue t = salhelper::TTimeValue(seconds,0); | |
275 | - osl_waitThread(&t); | |
276 | -} | |
277 | - | |
278 | -void pw3270::session::log(const char *fmt, const char *msg) | |
279 | -{ | |
280 | -#ifdef HAVE_SYSLOG | |
281 | - openlog(PACKAGE_NAME, LOG_NDELAY, LOG_USER); | |
282 | - syslog(LOG_INFO,fmt,msg); | |
283 | - closelog(); | |
284 | -#else | |
285 | - #error This module needs syslog support | |
286 | -#endif // HAVE_SYSLOG | |
287 | -} | |
288 | - | |
289 | -void pw3270::uno_impl::failed(const char *fmt, ...) throw( ::com::sun::star::uno::RuntimeException ) | |
290 | -{ | |
291 | - va_list arg_ptr; | |
292 | - char * msg = (char *) malloc(1024); | |
293 | - | |
294 | - va_start(arg_ptr, fmt); | |
295 | - vsnprintf(msg, 1023, fmt, arg_ptr); | |
296 | - va_end(arg_ptr); | |
297 | - | |
298 | -#ifdef HAVE_SYSLOG | |
299 | - openlog(PACKAGE_NAME, LOG_NDELAY, LOG_USER); | |
300 | - syslog(LOG_ERR,"%s",msg); | |
301 | - closelog(); | |
302 | -#endif // HAVE_SYSLOG | |
303 | - | |
304 | - trace("%s: %s",__FUNCTION__,msg); | |
305 | - | |
306 | - ::rtl::OUString str = OUString(msg, strlen(msg), RTL_TEXTENCODING_UTF8, RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | |
307 | - | |
308 | - free(msg); | |
309 | - | |
310 | - throw Exception( str , *this ); | |
311 | - | |
312 | -} | |
313 | - | |
314 | -::sal_Int16 SAL_CALL pw3270::uno_impl::setSession( const ::rtl::OUString& name ) throw (::com::sun::star::uno::RuntimeException) | |
315 | -{ | |
316 | - const char *ptr; | |
317 | - | |
318 | - OString str = rtl::OUStringToOString( name , hSession->get_encoding() ); | |
319 | - | |
320 | - delete this->hSession; | |
321 | - | |
322 | - ptr = str.getStr(); | |
323 | - | |
324 | - if(ptr && *ptr) | |
325 | - this->hSession = new ipc3270_session(this,str.getStr()); | |
326 | - else | |
327 | - this->hSession = new lib3270_session(this); | |
328 | - | |
329 | - return 0; | |
330 | -} |
src/oxt/manifest.xml.in
... | ... | @@ -1,6 +0,0 @@ |
1 | -<?xml version="1.0" encoding="UTF-8"?> | |
2 | -<manifest:manifest> | |
3 | -<manifest:file-entry manifest:media-type= "application/vnd.sun.star.uno-component;type=native;platform=Linux_@host_cpu@" manifest:full-path="@PACKAGE_NAME@.uno.so"/> | |
4 | -<manifest:file-entry manifest:media-type="application/vnd.sun.star.uno-typelibrary;type=RDB" manifest:full-path="@PACKAGE_NAME@.uno.rdb"/> | |
5 | -</manifest:manifest> | |
6 | - |
src/oxt/pw3270.idl
... | ... | @@ -1,101 +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 pw3270.idl 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 | - * licinio@bb.com.br (Licínio Luis Branco) | |
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | - * | |
30 | - */ | |
31 | - | |
32 | -#include <com/sun/star/uno/XInterface.idl> | |
33 | -#include <com/sun/star/lang/XTypeProvider.idl> | |
34 | - | |
35 | -/* | |
36 | - | |
37 | - Referências: | |
38 | - | |
39 | - http://wiki.services.openoffice.org/wiki/IDL_Files_and_Cpp | |
40 | - http://wiki.services.openoffice.org/wiki/IDL_Files_and_Cpp#Specifying_an_interface | |
41 | - | |
42 | - */ | |
43 | - | |
44 | -module br | |
45 | -{ | |
46 | - module com | |
47 | - { | |
48 | - module bb | |
49 | - { | |
50 | - | |
51 | - /** | |
52 | - * Interface to pw3270. | |
53 | - * | |
54 | - * http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Bridge/Default_Mappings | |
55 | - * | |
56 | - */ | |
57 | - interface pw3270intf : com::sun::star::uno::XInterface | |
58 | - { | |
59 | - /* Connect/Disconnect */ | |
60 | - short Connect( [in] string hostinfo ); | |
61 | - short Disconnect(); | |
62 | - short getConnectionState(); | |
63 | - | |
64 | - /* Get */ | |
65 | - string getTextAt([in] short row, [in] short col, [in] short size); | |
66 | - | |
67 | - /* Set */ | |
68 | - short setTextAt([in] short row, [in] short col, [in] string text); | |
69 | - | |
70 | - /* Actions */ | |
71 | - short cmpTextAt([in] short row, [in] short col, [in] string text); | |
72 | - short enter(); | |
73 | - short pfkey([in] short keycode); | |
74 | - short pakey([in] short keycode); | |
75 | - | |
76 | - /* Misc */ | |
77 | - short setSession([in] string name); | |
78 | - short getRevision(); | |
79 | - string getVersion(); | |
80 | - short log([in] string msg); | |
81 | - short sleep([in] short seconds); | |
82 | - boolean isReady(); | |
83 | - boolean hasTextAt([in] short row, [in] short col, [in] string text); | |
84 | - short waitForReady([in] short seconds); | |
85 | -// short waitForTextAt(in] short row, [in] short col, [in] string text, [in] short seconds); | |
86 | - boolean isConnected(); | |
87 | - short dsTrace([in] boolean mode); | |
88 | - short screenTrace([in] boolean mode); | |
89 | - | |
90 | - }; | |
91 | - | |
92 | - service pw3270 | |
93 | - { | |
94 | - // exported interfaces: | |
95 | - interface pw3270intf; | |
96 | - }; | |
97 | - | |
98 | - }; | |
99 | - }; | |
100 | -}; | |
101 | - |
src/oxt/pw3270OXT.cbp
... | ... | @@ -1,53 +0,0 @@ |
1 | -<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | |
2 | -<CodeBlocks_project_file> | |
3 | - <FileVersion major="1" minor="6" /> | |
4 | - <Project> | |
5 | - <Option title="pw3270 OXT" /> | |
6 | - <Option makefile_is_custom="1" /> | |
7 | - <Option pch_mode="2" /> | |
8 | - <Option compiler="gcc" /> | |
9 | - <Build> | |
10 | - <Target title="Debug"> | |
11 | - <Option output=".bin/Debug/testprogram" prefix_auto="1" extension_auto="1" /> | |
12 | - <Option object_output=".obj/Debug/" /> | |
13 | - <Option type="1" /> | |
14 | - <Option compiler="gcc" /> | |
15 | - <Compiler> | |
16 | - <Add option="-g" /> | |
17 | - </Compiler> | |
18 | - </Target> | |
19 | - <Target title="Release"> | |
20 | - <Option output=".bin/Release/pw3270" imp_lib="$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).a" def_file="$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).def" prefix_auto="0" extension_auto="1" /> | |
21 | - <Option object_output=".obj/Release/" /> | |
22 | - <Option type="3" /> | |
23 | - <Option compiler="gcc" /> | |
24 | - <Compiler> | |
25 | - <Add option="-O2" /> | |
26 | - </Compiler> | |
27 | - <Linker> | |
28 | - <Add option="-s" /> | |
29 | - </Linker> | |
30 | - </Target> | |
31 | - </Build> | |
32 | - <Compiler> | |
33 | - <Add option="-Wall" /> | |
34 | - </Compiler> | |
35 | - <Unit filename="Makefile.in" /> | |
36 | - <Unit filename="actions.cxx" /> | |
37 | - <Unit filename="connection.cxx" /> | |
38 | - <Unit filename="description.xml.in" /> | |
39 | - <Unit filename="get.cxx" /> | |
40 | - <Unit filename="globals.hpp" /> | |
41 | - <Unit filename="local.cxx" /> | |
42 | - <Unit filename="main.cxx" /> | |
43 | - <Unit filename="manifest.xml.in" /> | |
44 | - <Unit filename="pw3270.idl" /> | |
45 | - <Unit filename="remote.cxx" /> | |
46 | - <Unit filename="set.cxx" /> | |
47 | - <Unit filename="testprogram.cxx" /> | |
48 | - <Extensions> | |
49 | - <code_completion /> | |
50 | - <debugger /> | |
51 | - </Extensions> | |
52 | - </Project> | |
53 | -</CodeBlocks_project_file> |
src/oxt/remote.cxx
... | ... | @@ -1,533 +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 | - * Este programa está nomeado como remote.cxx 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 | - * licinio@bb.com.br (Licínio Luis Branco) | |
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | - * | |
30 | - */ | |
31 | - | |
32 | - #include "globals.hpp" | |
33 | - #include <errno.h> | |
34 | - #include <string.h> | |
35 | - | |
36 | -/*---[ Statics ]-------------------------------------------------------------------------------------------*/ | |
37 | - | |
38 | -#if defined(HAVE_DBUS) | |
39 | - static const char * prefix_dest = "br.com.bb."; | |
40 | - static const char * prefix_path = "/br/com/bb/"; | |
41 | -#endif // HAVE_DBUS | |
42 | - | |
43 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | |
44 | - | |
45 | -#if defined(HAVE_DBUS) | |
46 | -DBusMessage * pw3270::ipc3270_session::create_message(const char *method) | |
47 | -{ | |
48 | - DBusMessage * msg = dbus_message_new_method_call( this->dest, // Destination | |
49 | - this->path, // Path | |
50 | - this->intf, // Interface | |
51 | - method); // method | |
52 | - | |
53 | - if (!msg) | |
54 | - log("Error creating message for method %s",method); | |
55 | - | |
56 | - return msg; | |
57 | -} | |
58 | - | |
59 | -DBusMessage * pw3270::ipc3270_session::call(DBusMessage *msg) | |
60 | -{ | |
61 | - DBusMessage * reply; | |
62 | - DBusError error; | |
63 | - | |
64 | - dbus_error_init(&error); | |
65 | - reply = dbus_connection_send_with_reply_and_block(conn,msg,10000,&error); | |
66 | - dbus_message_unref(msg); | |
67 | - | |
68 | - if(!reply) | |
69 | - { | |
70 | - log("%s",error.message); | |
71 | - dbus_error_free(&error); | |
72 | - } | |
73 | - | |
74 | - return reply; | |
75 | - | |
76 | -} | |
77 | - | |
78 | -static char * get_string(DBusMessage * msg) | |
79 | -{ | |
80 | - char *rc = NULL; | |
81 | - if(msg) | |
82 | - { | |
83 | - DBusMessageIter iter; | |
84 | - | |
85 | - if(dbus_message_iter_init(msg, &iter)) | |
86 | - { | |
87 | - if(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_STRING) | |
88 | - { | |
89 | - const char * str; | |
90 | - dbus_message_iter_get_basic(&iter, &str); | |
91 | - trace("Response: [%s]",str); | |
92 | - rc = strdup(str); | |
93 | - } | |
94 | -#ifdef DEBUG | |
95 | - else | |
96 | - { | |
97 | - trace("Return type is %c, expecting %c",dbus_message_iter_get_arg_type(&iter),DBUS_TYPE_STRING); | |
98 | - } | |
99 | -#endif | |
100 | - } | |
101 | - | |
102 | - dbus_message_unref(msg); | |
103 | - } | |
104 | - return rc; | |
105 | -} | |
106 | - | |
107 | -char * pw3270::ipc3270_session::query_string(const char *method) | |
108 | -{ | |
109 | - if(conn) | |
110 | - return get_string(call(create_message(method))); | |
111 | - return NULL; | |
112 | -} | |
113 | - | |
114 | -static int get_intval(DBusMessage * msg) | |
115 | -{ | |
116 | - int rc = -1; | |
117 | - | |
118 | - if(msg) | |
119 | - { | |
120 | - DBusMessageIter iter; | |
121 | - | |
122 | - if(dbus_message_iter_init(msg, &iter)) | |
123 | - { | |
124 | - if(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_INT32) | |
125 | - { | |
126 | - dbus_int32_t iSigned; | |
127 | - dbus_message_iter_get_basic(&iter, &iSigned); | |
128 | - rc = (int) iSigned; | |
129 | - } | |
130 | -#ifdef DEBUG | |
131 | - else | |
132 | - { | |
133 | - trace("Return type is %c, expecting %c",dbus_message_iter_get_arg_type(&iter),DBUS_TYPE_INT32); | |
134 | - } | |
135 | -#endif | |
136 | - } | |
137 | - | |
138 | - dbus_message_unref(msg); | |
139 | - } | |
140 | - | |
141 | - return rc; | |
142 | -} | |
143 | - | |
144 | -int pw3270::ipc3270_session::query_intval(const char *method) | |
145 | -{ | |
146 | - if(conn) | |
147 | - return get_intval(call(create_message(method))); | |
148 | - return -1; | |
149 | -} | |
150 | - | |
151 | -#endif // HAVE_DBUS | |
152 | - | |
153 | - | |
154 | -pw3270::ipc3270_session::ipc3270_session(uno_impl *obj, const char *name) throw( RuntimeException ) : pw3270::session() | |
155 | -{ | |
156 | -#ifdef HAVE_DBUS | |
157 | - | |
158 | - DBusError err; | |
159 | - int rc; | |
160 | - char * str = strdup(name); | |
161 | - char * ptr; | |
162 | - | |
163 | - for(ptr=str;*ptr;ptr++) | |
164 | - *ptr = tolower(*ptr); | |
165 | - | |
166 | - ptr = strchr(str,':'); | |
167 | - | |
168 | - if(ptr) | |
169 | - { | |
170 | - size_t sz; | |
171 | - | |
172 | - *(ptr++) = 0; | |
173 | - | |
174 | - // Build destination | |
175 | - sz = strlen(ptr)+strlen(str)+strlen(prefix_dest)+2; | |
176 | - dest = (char *) malloc(sz+1); | |
177 | - strncpy(dest,prefix_dest,sz); | |
178 | - strncat(dest,str,sz); | |
179 | - strncat(dest,".",sz); | |
180 | - strncat(dest,ptr,sz); | |
181 | - | |
182 | - // Build path | |
183 | - sz = strlen(str)+strlen(prefix_path); | |
184 | - path = (char *) malloc(sz+1); | |
185 | - strncpy(path,prefix_path,sz); | |
186 | - strncat(path,str,sz); | |
187 | - | |
188 | - // Build intf | |
189 | - sz = strlen(str)+strlen(prefix_dest)+1; | |
190 | - intf = (char *) malloc(sz+1); | |
191 | - strncpy(intf,prefix_dest,sz); | |
192 | - strncat(intf,str,sz); | |
193 | - | |
194 | - } | |
195 | - else | |
196 | - { | |
197 | - size_t sz; | |
198 | - | |
199 | - // Build destination | |
200 | - sz = strlen(str)+strlen(prefix_dest)+2; | |
201 | - dest = (char *) malloc(sz+1); | |
202 | - strncpy(dest,prefix_dest,sz); | |
203 | - strncat(dest,str,sz); | |
204 | - | |
205 | - // Build path | |
206 | - sz = strlen(str)+strlen(prefix_path); | |
207 | - path = (char *) malloc(sz+1); | |
208 | - strncpy(path,prefix_path,sz); | |
209 | - strncat(path,str,sz); | |
210 | - | |
211 | - // Build intf | |
212 | - sz = strlen(str)+strlen(prefix_dest)+1; | |
213 | - intf = (char *) malloc(sz+1); | |
214 | - strncpy(intf,prefix_dest,sz); | |
215 | - strncat(intf,str,sz); | |
216 | - | |
217 | - } | |
218 | - | |
219 | - trace("DBUS:\nDestination:\t[%s]\nPath:\t\t[%s]\nInterface:\t[%s]",dest,path,intf); | |
220 | - | |
221 | - free(str); | |
222 | - | |
223 | - dbus_error_init(&err); | |
224 | - | |
225 | - conn = dbus_bus_get(DBUS_BUS_SESSION, &err); | |
226 | - | |
227 | - trace("conn=%p",conn); | |
228 | - | |
229 | - if (dbus_error_is_set(&err)) | |
230 | - { | |
231 | - trace("DBUS Connection Error (%s)", err.message); | |
232 | - obj->failed("DBUS Connection Error (%s)", err.message); | |
233 | - dbus_error_free(&err); | |
234 | - return; | |
235 | - } | |
236 | - | |
237 | - if(!conn) | |
238 | - { | |
239 | - obj->failed("%s", "DBUS Connection failed"); | |
240 | - return; | |
241 | - } | |
242 | - | |
243 | - rc = dbus_bus_request_name(conn, "br.com.bb." PACKAGE_NAME ".oo", DBUS_NAME_FLAG_REPLACE_EXISTING , &err); | |
244 | - | |
245 | - if (dbus_error_is_set(&err)) | |
246 | - { | |
247 | - obj->failed("DBUS Name Error (%s)", err.message); | |
248 | - dbus_error_free(&err); | |
249 | - conn = NULL; | |
250 | - return; | |
251 | - } | |
252 | - | |
253 | - if(rc != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) | |
254 | - { | |
255 | - obj->failed("%s", "DBUS request name failed"); | |
256 | - conn = NULL; | |
257 | - return; | |
258 | - } | |
259 | - else | |
260 | - { | |
261 | - DBusMessage * reply; | |
262 | - DBusMessage * msg = create_message("getRevision"); | |
263 | - DBusError error; | |
264 | - | |
265 | - dbus_error_init(&error); | |
266 | - reply = dbus_connection_send_with_reply_and_block(conn,msg,10000,&error); | |
267 | - dbus_message_unref(msg); | |
268 | - | |
269 | - if(reply) | |
270 | - { | |
271 | - log("%s","PW3270 DBus object found"); | |
272 | - dbus_message_unref(reply); | |
273 | - } | |
274 | - else | |
275 | - { | |
276 | - obj->failed("DBUS error: %s",error.message); | |
277 | - dbus_error_free(&error); | |
278 | - } | |
279 | - } | |
280 | -#else | |
281 | - | |
282 | -#endif // HAVE_DBUS | |
283 | -} | |
284 | - | |
285 | -pw3270::ipc3270_session::~ipc3270_session() | |
286 | -{ | |
287 | -#ifdef HAVE_DBUS | |
288 | - | |
289 | - free(dest); | |
290 | - free(path); | |
291 | - free(intf); | |
292 | - | |
293 | -#endif // HAVE_DBUS | |
294 | -} | |
295 | - | |
296 | -int pw3270::ipc3270_session::get_revision(void) | |
297 | -{ | |
298 | -#ifdef HAVE_DBUS | |
299 | - char *ptr = query_string("getRevision"); | |
300 | - if(ptr) | |
301 | - { | |
302 | - int rc = atoi(ptr); | |
303 | - free(ptr); | |
304 | - return rc; | |
305 | - } | |
306 | - return -1; | |
307 | - | |
308 | -#else | |
309 | - | |
310 | - return -1; | |
311 | - | |
312 | -#endif // HAVE_DBUS | |
313 | -} | |
314 | - | |
315 | -LIB3270_MESSAGE pw3270::ipc3270_session::get_state(void) | |
316 | -{ | |
317 | -#ifdef HAVE_DBUS | |
318 | - | |
319 | - return (LIB3270_MESSAGE) query_intval("getMessageID"); | |
320 | - | |
321 | -#else | |
322 | - | |
323 | - return (LIB3270_MESSAGE) -1; | |
324 | - | |
325 | -#endif // HAVE_DBUS | |
326 | -} | |
327 | - | |
328 | -char * pw3270::ipc3270_session::get_text_at(int row, int col, int len) | |
329 | -{ | |
330 | -#ifdef HAVE_DBUS | |
331 | - | |
332 | - dbus_int32_t r = (dbus_int32_t) row; | |
333 | - dbus_int32_t c = (dbus_int32_t) col; | |
334 | - dbus_int32_t l = (dbus_int32_t) len; | |
335 | - | |
336 | - DBusMessage * msg = create_message("getTextAt"); | |
337 | - if(!msg) | |
338 | - return NULL; | |
339 | - | |
340 | - trace("%s(%d,%d,%d)",__FUNCTION__,r,c,l); | |
341 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_INT32, &l, DBUS_TYPE_INVALID); | |
342 | - | |
343 | - return get_string(call(msg)); | |
344 | - | |
345 | -#else | |
346 | - | |
347 | - return NULL; | |
348 | - | |
349 | -#endif // HAVE_DBUS | |
350 | -} | |
351 | - | |
352 | -int pw3270::ipc3270_session::set_text_at(int row, int col, const char *text) | |
353 | -{ | |
354 | -#ifdef HAVE_DBUS | |
355 | - | |
356 | - dbus_int32_t r = (dbus_int32_t) row; | |
357 | - dbus_int32_t c = (dbus_int32_t) col; | |
358 | - | |
359 | - DBusMessage * msg = create_message("setTextAt"); | |
360 | - if(msg) | |
361 | - { | |
362 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | |
363 | - return get_intval(call(msg)); | |
364 | - } | |
365 | - | |
366 | -#else | |
367 | - | |
368 | - return -1; | |
369 | - | |
370 | -#endif // HAVE_DBUS | |
371 | -} | |
372 | - | |
373 | -int pw3270::ipc3270_session::cmp_text_at(int row, int col, const char *text) | |
374 | -{ | |
375 | -#ifdef HAVE_DBUS | |
376 | - | |
377 | - dbus_int32_t r = (dbus_int32_t) row; | |
378 | - dbus_int32_t c = (dbus_int32_t) col; | |
379 | - | |
380 | - DBusMessage * msg = create_message("cmpTextAt"); | |
381 | - if(msg) | |
382 | - { | |
383 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | |
384 | - return get_intval(call(msg)); | |
385 | - } | |
386 | - | |
387 | -#else | |
388 | - | |
389 | - return -1; | |
390 | - | |
391 | -#endif // HAVE_DBUS | |
392 | -} | |
393 | - | |
394 | -void pw3270::ipc3270_session::set_toggle(LIB3270_TOGGLE toggle, bool state) | |
395 | -{ | |
396 | -#ifdef HAVE_DBUS | |
397 | - | |
398 | - dbus_int32_t i = (dbus_int32_t) toggle; | |
399 | - dbus_int32_t v = (dbus_int32_t) state; | |
400 | - | |
401 | - DBusMessage * msg = create_message("setToggle"); | |
402 | - if(msg) | |
403 | - { | |
404 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &i, DBUS_TYPE_INT32, &v, DBUS_TYPE_INVALID); | |
405 | - get_intval(call(msg)); | |
406 | - } | |
407 | - | |
408 | -#endif // HAVE_DBUS | |
409 | -} | |
410 | - | |
411 | -int pw3270::ipc3270_session::connect(const char *uri) | |
412 | -{ | |
413 | -#ifdef HAVE_DBUS | |
414 | - | |
415 | - int rc; | |
416 | - DBusMessage * msg = create_message("connect"); | |
417 | - if(!msg) | |
418 | - return -1; | |
419 | - | |
420 | - dbus_message_append_args(msg, DBUS_TYPE_STRING, &uri, DBUS_TYPE_INVALID); | |
421 | - | |
422 | - return get_intval(call(msg)); | |
423 | - | |
424 | -#else | |
425 | - | |
426 | - return -1; | |
427 | - | |
428 | -#endif // HAVE_DBUS | |
429 | -} | |
430 | - | |
431 | -int pw3270::ipc3270_session::disconnect(void) | |
432 | -{ | |
433 | -#ifdef HAVE_DBUS | |
434 | - | |
435 | - return query_intval("disconnect"); | |
436 | - | |
437 | -#else | |
438 | - | |
439 | - return -1; | |
440 | - | |
441 | -#endif // HAVE_DBUS | |
442 | -} | |
443 | - | |
444 | -bool pw3270::ipc3270_session::connected(void) | |
445 | -{ | |
446 | -#ifdef HAVE_DBUS | |
447 | - | |
448 | - return query_intval("isConnected") > 0; | |
449 | - | |
450 | -#else | |
451 | - | |
452 | - return false; | |
453 | - | |
454 | -#endif // HAVE_DBUS | |
455 | -} | |
456 | - | |
457 | -int pw3270::ipc3270_session::enter(void) | |
458 | -{ | |
459 | -#ifdef HAVE_DBUS | |
460 | - | |
461 | - return query_intval("enter"); | |
462 | - | |
463 | -#else | |
464 | - | |
465 | - return -1; | |
466 | - | |
467 | -#endif // HAVE_DBUS | |
468 | -} | |
469 | - | |
470 | -int pw3270::ipc3270_session::pfkey(int key) | |
471 | -{ | |
472 | -#ifdef HAVE_DBUS | |
473 | - | |
474 | - dbus_int32_t k = (dbus_int32_t) key; | |
475 | - | |
476 | - DBusMessage * msg = create_message("pfKey"); | |
477 | - if(msg) | |
478 | - { | |
479 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
480 | - return get_intval(call(msg)); | |
481 | - } | |
482 | - | |
483 | -#endif // HAVE_DBUS | |
484 | - | |
485 | - return -1; | |
486 | - | |
487 | -} | |
488 | - | |
489 | -int pw3270::ipc3270_session::pakey(int key) | |
490 | -{ | |
491 | -#ifdef HAVE_DBUS | |
492 | - | |
493 | - dbus_int32_t k = (dbus_int32_t) key; | |
494 | - | |
495 | - DBusMessage * msg = create_message("paKey"); | |
496 | - if(msg) | |
497 | - { | |
498 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
499 | - return get_intval(call(msg)); | |
500 | - } | |
501 | - | |
502 | -#endif // HAVE_DBUS | |
503 | - | |
504 | - return -1; | |
505 | - | |
506 | -} | |
507 | - | |
508 | -bool pw3270::ipc3270_session::in_tn3270e() | |
509 | -{ | |
510 | -#ifdef HAVE_DBUS | |
511 | - | |
512 | - return query_intval("inTN3270E") > 0; | |
513 | - | |
514 | -#else | |
515 | - | |
516 | - return false; | |
517 | - | |
518 | -#endif // HAVE_DBUS | |
519 | -} | |
520 | - | |
521 | -void pw3270::ipc3270_session::mem_free(void *ptr) | |
522 | -{ | |
523 | -#ifdef HAVE_DBUS | |
524 | - | |
525 | - free(ptr); | |
526 | - | |
527 | -#else | |
528 | - | |
529 | - | |
530 | -#endif // HAVE_DBUS | |
531 | -} | |
532 | - | |
533 | - |
src/oxt/set.cxx
... | ... | @@ -1,42 +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 | - * Este programa está nomeado como set.cxx 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 | - * licinio@bb.com.br (Licínio Luis Branco) | |
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | - * | |
30 | - */ | |
31 | - | |
32 | - #include "globals.hpp" | |
33 | - #include <string.h> | |
34 | - | |
35 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | |
36 | - | |
37 | -::sal_Int16 SAL_CALL pw3270::uno_impl::setTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& text ) throw (::com::sun::star::uno::RuntimeException) | |
38 | -{ | |
39 | - return hSession->set_text_at((int) row, (int) col, rtl::OUStringToOString(text,hSession->get_encoding()).getStr()); | |
40 | -} | |
41 | - | |
42 | - |
src/oxt/testprogram.cxx
... | ... | @@ -1,173 +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 | - * Este programa está nomeado como testprogram.cxx 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 | - * licinio@bb.com.br (Licínio Luis Branco) | |
28 | - * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
29 | - * | |
30 | - */ | |
31 | - | |
32 | -#include <stdio.h> | |
33 | -#ifdef WIN32 | |
34 | - #include <windows.h> | |
35 | - #define sleep(x) Sleep(x) | |
36 | -#endif | |
37 | - | |
38 | -#define trace( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); | |
39 | - | |
40 | -#include "globals.hpp" | |
41 | -#include <cppuhelper/bootstrap.hxx> | |
42 | -#include <com/sun/star/registry/XSimpleRegistry.hpp> | |
43 | -#include <com/sun/star/registry/XImplementationRegistration.hpp> | |
44 | -#include <com/sun/star/lang/XComponent.hpp> | |
45 | - | |
46 | -using namespace com::sun::star::registry; | |
47 | -using namespace com::sun::star::lang; | |
48 | -using namespace cppu; | |
49 | - | |
50 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | |
51 | - | |
52 | -int SAL_CALL main(int argc, char **argv) | |
53 | -{ | |
54 | - Reference< XSimpleRegistry > xReg = createSimpleRegistry(); | |
55 | - | |
56 | - OSL_ENSURE( xReg.is(), "### cannot get service instance of \"com.sun.star.regiystry.SimpleRegistry\"!" ); | |
57 | - | |
58 | - xReg->open(OUString::createFromAscii("pw3270.uno.rdb"), sal_False, sal_False); | |
59 | - | |
60 | - OSL_ENSURE( xReg->isValid(), "### cannot open test registry \"pw3270.uno.rdb\"!" ); | |
61 | - | |
62 | - trace("%s","Calling bootstrap_InitialComponentContext"); | |
63 | - Reference< XComponentContext > xContext = bootstrap_InitialComponentContext(xReg); | |
64 | - OSL_ENSURE( xContext.is(), "### cannot creage intial component context!" ); | |
65 | - | |
66 | - trace("%s","Calling getServiceManager\n"); | |
67 | - Reference< XMultiComponentFactory > xMgr = xContext->getServiceManager(); | |
68 | - OSL_ENSURE( xMgr.is(), "### cannot get initial service manager!" ); | |
69 | - | |
70 | - // register my component | |
71 | - trace("%s","Calling createInstanceWithContext"); | |
72 | - | |
73 | - Reference< XImplementationRegistration > xImplReg( | |
74 | - xMgr->createInstanceWithContext(OUString::createFromAscii("com.sun.star.registry.ImplementationRegistration"), xContext), UNO_QUERY); | |
75 | - OSL_ENSURE( xImplReg.is(), "### cannot get service instance of \"com.sun.star.registry.ImplementationRegistration\"!" ); | |
76 | - | |
77 | - if (xImplReg.is()) | |
78 | - { | |
79 | - const char *libname = ".bin/Debug/pw3270.uno.so"; | |
80 | - | |
81 | - trace("Loading %s",libname); | |
82 | - | |
83 | - xImplReg->registerImplementation( | |
84 | - OUString::createFromAscii("com.sun.star.loader.SharedLibrary"), // loader for component | |
85 | - OUString::createFromAscii(libname), // component location | |
86 | - Reference< XSimpleRegistry >() // registry omitted, | |
87 | - // defaulting to service manager registry used | |
88 | - ); | |
89 | - | |
90 | - // get an object instance | |
91 | - printf("Calling createInstanceWithContext(%s)\n",IMPLNAME); | |
92 | - | |
93 | - Reference< XInterface > xx ; | |
94 | - xx = xMgr->createInstanceWithContext(OUString::createFromAscii(IMPLNAME), xContext); | |
95 | - | |
96 | - printf("Instance: %p\n",&xx); | |
97 | - | |
98 | - Reference< pw3270intf > srv( xx, UNO_QUERY ); | |
99 | - | |
100 | - OSL_ENSURE( srv.is(), "### cannot get service instance!"); | |
101 | - | |
102 | - printf("object.is(): %d\n",srv.is()); | |
103 | - | |
104 | - if(srv.is()) | |
105 | - { | |
106 | - // Wait for commands | |
107 | - char buffer[4096]; | |
108 | - OString str; | |
109 | - | |
110 | - try | |
111 | - { | |
112 | - | |
113 | - srv->setSession(OUString::createFromAscii("pw3270:a")); | |
114 | - | |
115 | - } | |
116 | - catch( RuntimeException & e ) | |
117 | - { | |
118 | - OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ); | |
119 | - fprintf( stderr, "%s\n", o.pData->buffer ); | |
120 | - exit(-1); | |
121 | - } | |
122 | - | |
123 | - printf("Revision:\t%d\n",srv->getRevision()); | |
124 | - | |
125 | - srv->dsTrace(true); | |
126 | - srv->screenTrace(true); | |
127 | - | |
128 | - printf("getConnectionState: %d\n", srv->getConnectionState()); | |
129 | - printf("Connect(): %d\n" , srv->Connect(OUString::createFromAscii("L:3270.df.bb:9023"))); | |
130 | - | |
131 | - srv->sleep(2); | |
132 | - printf("getConnectionState: %d\n", srv->getConnectionState()); | |
133 | - srv->sleep(2); | |
134 | - | |
135 | - str = OUStringToOString( srv->getTextAt(1,1,2000),RTL_TEXTENCODING_UTF8); | |
136 | - printf("ContentsAt(1,1):\n%s\n",str.pData->buffer); | |
137 | - | |
138 | - printf("getConnectionState: %d\n", srv->getConnectionState()); | |
139 | - | |
140 | - srv->sleep(1); | |
141 | - srv->enter(); | |
142 | - srv->sleep(1); | |
143 | - | |
144 | - str = OUStringToOString( srv->getTextAt(1,1,2000),RTL_TEXTENCODING_UTF8); | |
145 | - printf("ContentsAt(1,1):\n%s\n",str.pData->buffer); | |
146 | - | |
147 | - /* | |
148 | - printf("waitForStringAt(SISBB) returned %d\n",srv->waitForStringAt(20,39,OUString::createFromAscii("SISBB"),20)); | |
149 | - printf("sendEnterKey() returned %d\n",srv->sendEnterKey()); | |
150 | - printf("waitForStringAt(Senha) returned %d\n",srv->waitForStringAt(14,2,OUString::createFromAscii("Senha"),20)); | |
151 | - printf("setStringAt returned %d\n",srv->setStringAt(13,21,OUString::createFromAscii("c1103788"))); | |
152 | - | |
153 | - str = OUStringToOString( srv->getScreenContent(),RTL_TEXTENCODING_UTF8); | |
154 | - printf("Entire screen:\n%s\n",str.pData->buffer); | |
155 | - | |
156 | - | |
157 | - */ | |
158 | - | |
159 | - printf("Enter to exit...\n"); | |
160 | - fgets(buffer,80,stdin); | |
161 | - | |
162 | - printf("Disconnect(): %d\n" , srv->Disconnect()); | |
163 | - | |
164 | - srv->sleep(5); | |
165 | - | |
166 | - } | |
167 | - } | |
168 | - | |
169 | - | |
170 | - Reference< XComponent >::query( xContext )->dispose(); | |
171 | - | |
172 | - return 0; | |
173 | -} |