Commit d3143661311432b736efdef4120294660cbecc0c
1 parent
e2f2fd02
Exists in
master
and in
5 other branches
Reimplementando extensão libreoffice, corrigindo bugs encontrados na interface DBUS
Showing
41 changed files
with
1478 additions
and
1329 deletions
Show diff stats
src/classlib/local.cc
@@ -454,18 +454,18 @@ | @@ -454,18 +454,18 @@ | ||
454 | return 0; | 454 | return 0; |
455 | } | 455 | } |
456 | 456 | ||
457 | - string * get_text_at(int row, int col, size_t sz) | 457 | + string get_text_at(int row, int col, size_t sz) |
458 | { | 458 | { |
459 | + string rc; | ||
459 | char * ptr = _get_text_at(hSession,row,col,sz); | 460 | char * ptr = _get_text_at(hSession,row,col,sz); |
460 | 461 | ||
461 | if(ptr) | 462 | if(ptr) |
462 | { | 463 | { |
463 | - string *s = new string(ptr); | 464 | + rc.assign(ptr); |
464 | _free(ptr); | 465 | _free(ptr); |
465 | - return s; | ||
466 | } | 466 | } |
467 | 467 | ||
468 | - return new string(""); | 468 | + return rc; |
469 | } | 469 | } |
470 | 470 | ||
471 | int set_text_at(int row, int col, const char *str) | 471 | int set_text_at(int row, int col, const char *str) |
@@ -478,18 +478,18 @@ | @@ -478,18 +478,18 @@ | ||
478 | return _cmp_text_at(hSession,row,col,text); | 478 | return _cmp_text_at(hSession,row,col,text); |
479 | } | 479 | } |
480 | 480 | ||
481 | - string * get_text(int offset, size_t len) | 481 | + string get_text(int offset, size_t len) |
482 | { | 482 | { |
483 | - char *ptr = _get_text(hSession,offset,len); | 483 | + string rc; |
484 | + char * ptr = _get_text(hSession,offset,len); | ||
484 | 485 | ||
485 | if(ptr) | 486 | if(ptr) |
486 | { | 487 | { |
487 | - string *s = new string(ptr); | 488 | + rc.assign(ptr); |
488 | _free(ptr); | 489 | _free(ptr); |
489 | - return s; | ||
490 | } | 490 | } |
491 | 491 | ||
492 | - return new string(""); | 492 | + return rc; |
493 | } | 493 | } |
494 | 494 | ||
495 | int set_cursor_position(int row, int col) | 495 | int set_cursor_position(int row, int col) |
@@ -561,9 +561,9 @@ | @@ -561,9 +561,9 @@ | ||
561 | return 0; | 561 | return 0; |
562 | } | 562 | } |
563 | 563 | ||
564 | - string * get_display_charset(void) | 564 | + string get_display_charset(void) |
565 | { | 565 | { |
566 | - return new string(_get_display_charset(hSession)); | 566 | + return string(_get_display_charset(hSession)); |
567 | } | 567 | } |
568 | 568 | ||
569 | int set_host_charset(const char *charset) | 569 | int set_host_charset(const char *charset) |
@@ -571,9 +571,9 @@ | @@ -571,9 +571,9 @@ | ||
571 | return _set_host_charset(hSession,charset); | 571 | return _set_host_charset(hSession,charset); |
572 | } | 572 | } |
573 | 573 | ||
574 | - string * get_host_charset(void) | 574 | + string get_host_charset(void) |
575 | { | 575 | { |
576 | - return new string(_get_host_charset(hSession)); | 576 | + return string(_get_host_charset(hSession)); |
577 | } | 577 | } |
578 | 578 | ||
579 | int erase_eof(void) | 579 | int erase_eof(void) |
src/classlib/remote.cc
@@ -214,8 +214,10 @@ | @@ -214,8 +214,10 @@ | ||
214 | return reply; | 214 | return reply; |
215 | } | 215 | } |
216 | 216 | ||
217 | - string * get_string(DBusMessage * msg) | 217 | + string get_string(DBusMessage * msg) |
218 | { | 218 | { |
219 | + string rc; | ||
220 | + | ||
219 | if(msg) | 221 | if(msg) |
220 | { | 222 | { |
221 | DBusMessageIter iter; | 223 | DBusMessageIter iter; |
@@ -224,11 +226,10 @@ | @@ -224,11 +226,10 @@ | ||
224 | { | 226 | { |
225 | if(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_STRING) | 227 | if(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_STRING) |
226 | { | 228 | { |
227 | - string * rc; | ||
228 | const char * str; | 229 | const char * str; |
229 | dbus_message_iter_get_basic(&iter, &str); | 230 | dbus_message_iter_get_basic(&iter, &str); |
230 | trace("Response: [%s]",str); | 231 | trace("Response: [%s]",str); |
231 | - rc = new string(str); | 232 | + rc.assign(str); |
232 | dbus_message_unref(msg); | 233 | dbus_message_unref(msg); |
233 | return rc; | 234 | return rc; |
234 | } | 235 | } |
@@ -242,10 +243,10 @@ | @@ -242,10 +243,10 @@ | ||
242 | 243 | ||
243 | } | 244 | } |
244 | 245 | ||
245 | - return NULL; | 246 | + return rc; |
246 | } | 247 | } |
247 | 248 | ||
248 | - string * query_string(const char *method) | 249 | + string query_string(const char *method) |
249 | { | 250 | { |
250 | return get_string(call(create_message(method))); | 251 | return get_string(call(create_message(method))); |
251 | } | 252 | } |
@@ -863,7 +864,7 @@ | @@ -863,7 +864,7 @@ | ||
863 | #endif | 864 | #endif |
864 | } | 865 | } |
865 | 866 | ||
866 | - string * get_text_at(int row, int col, size_t sz) | 867 | + string get_text_at(int row, int col, size_t sz) |
867 | { | 868 | { |
868 | #if defined(WIN32) | 869 | #if defined(WIN32) |
869 | 870 | ||
@@ -888,7 +889,7 @@ | @@ -888,7 +889,7 @@ | ||
888 | 889 | ||
889 | #else | 890 | #else |
890 | 891 | ||
891 | - return NULL; | 892 | + return string(); |
892 | 893 | ||
893 | #endif | 894 | #endif |
894 | 895 | ||
@@ -978,7 +979,7 @@ | @@ -978,7 +979,7 @@ | ||
978 | return ETIMEDOUT; | 979 | return ETIMEDOUT; |
979 | } | 980 | } |
980 | 981 | ||
981 | - string * get_text(int baddr, size_t len) | 982 | + string get_text(int baddr, size_t len) |
982 | { | 983 | { |
983 | #if defined(WIN32) | 984 | #if defined(WIN32) |
984 | struct hllapi_packet_query_offset query = { HLLAPI_PACKET_GET_TEXT_AT_OFFSET, (unsigned short) baddr, (unsigned short) len }; | 985 | struct hllapi_packet_query_offset query = { HLLAPI_PACKET_GET_TEXT_AT_OFFSET, (unsigned short) baddr, (unsigned short) len }; |
@@ -999,7 +1000,7 @@ | @@ -999,7 +1000,7 @@ | ||
999 | return get_string(call(msg)); | 1000 | return get_string(call(msg)); |
1000 | #else | 1001 | #else |
1001 | throw exception("%s","IPC support is unavailable"); | 1002 | throw exception("%s","IPC support is unavailable"); |
1002 | - return NULL; | 1003 | + return string(); |
1003 | #endif | 1004 | #endif |
1004 | } | 1005 | } |
1005 | 1006 | ||
@@ -1248,7 +1249,7 @@ | @@ -1248,7 +1249,7 @@ | ||
1248 | #endif | 1249 | #endif |
1249 | } | 1250 | } |
1250 | 1251 | ||
1251 | - string * get_host_charset(void) | 1252 | + string get_host_charset(void) |
1252 | { | 1253 | { |
1253 | #if defined(WIN32) | 1254 | #if defined(WIN32) |
1254 | 1255 | ||
@@ -1268,7 +1269,7 @@ | @@ -1268,7 +1269,7 @@ | ||
1268 | 1269 | ||
1269 | 1270 | ||
1270 | #if defined(HAVE_DBUS) | 1271 | #if defined(HAVE_DBUS) |
1271 | - string * get_clipboard(void) | 1272 | + string get_clipboard(void) |
1272 | { | 1273 | { |
1273 | return query_string("getClipboard"); | 1274 | return query_string("getClipboard"); |
1274 | } | 1275 | } |
@@ -1278,7 +1279,7 @@ | @@ -1278,7 +1279,7 @@ | ||
1278 | return query_intval("setClipboard", DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | 1279 | return query_intval("setClipboard", DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); |
1279 | } | 1280 | } |
1280 | 1281 | ||
1281 | - string * get_display_charset(void) | 1282 | + string get_display_charset(void) |
1282 | { | 1283 | { |
1283 | return query_string("getDisplayCharset"); | 1284 | return query_string("getDisplayCharset"); |
1284 | } | 1285 | } |
src/classlib/session.cc
@@ -124,7 +124,7 @@ | @@ -124,7 +124,7 @@ | ||
124 | void session::set_display_charset(const char *remote, const char *local) | 124 | void session::set_display_charset(const char *remote, const char *local) |
125 | { | 125 | { |
126 | #ifdef HAVE_ICONV | 126 | #ifdef HAVE_ICONV |
127 | - string *display_charset = this->get_display_charset(); | 127 | + string display_charset = this->get_display_charset(); |
128 | 128 | ||
129 | if(this->conv2Local != (iconv_t) (-1)) | 129 | if(this->conv2Local != (iconv_t) (-1)) |
130 | iconv_close(this->conv2Local); | 130 | iconv_close(this->conv2Local); |
@@ -133,7 +133,7 @@ | @@ -133,7 +133,7 @@ | ||
133 | iconv_close(this->conv2Host); | 133 | iconv_close(this->conv2Host); |
134 | 134 | ||
135 | if(!remote) | 135 | if(!remote) |
136 | - remote = display_charset->c_str(); | 136 | + remote = display_charset.c_str(); |
137 | 137 | ||
138 | if(strcmp(local,remote)) | 138 | if(strcmp(local,remote)) |
139 | { | 139 | { |
@@ -146,14 +146,18 @@ | @@ -146,14 +146,18 @@ | ||
146 | conv2Local = conv2Host = (iconv_t)(-1); | 146 | conv2Local = conv2Host = (iconv_t)(-1); |
147 | } | 147 | } |
148 | 148 | ||
149 | - delete display_charset; | ||
150 | #endif | 149 | #endif |
151 | 150 | ||
152 | } | 151 | } |
153 | 152 | ||
154 | - string * session::get_display_charset(void) | 153 | + string session::get_display_charset(void) |
155 | { | 154 | { |
156 | - return new string("ISO-8859-1"); | 155 | + return string(get_encoding()); |
156 | + } | ||
157 | + | ||
158 | + const char * session::get_encoding(void) | ||
159 | + { | ||
160 | + return "ISO-8859-1"; | ||
157 | } | 161 | } |
158 | 162 | ||
159 | // 3270 methods | 163 | // 3270 methods |
@@ -209,13 +213,13 @@ | @@ -209,13 +213,13 @@ | ||
209 | return EINVAL; | 213 | return EINVAL; |
210 | } | 214 | } |
211 | 215 | ||
212 | - string * session::get_copy(void) | 216 | + string session::get_copy(void) |
213 | { | 217 | { |
214 | errno = EINVAL; | 218 | errno = EINVAL; |
215 | - return NULL; | 219 | + return string(); |
216 | } | 220 | } |
217 | 221 | ||
218 | - string * session::get_clipboard(void) | 222 | + string session::get_clipboard(void) |
219 | { | 223 | { |
220 | #if defined(WIN32) | 224 | #if defined(WIN32) |
221 | 225 | ||
@@ -239,7 +243,7 @@ | @@ -239,7 +243,7 @@ | ||
239 | return NULL; | 243 | return NULL; |
240 | } | 244 | } |
241 | 245 | ||
242 | - string *text = new string ( pszText ); | 246 | + string text = string ( pszText ); |
243 | 247 | ||
244 | GlobalUnlock( hData ); | 248 | GlobalUnlock( hData ); |
245 | 249 | ||
@@ -294,69 +298,75 @@ | @@ -294,69 +298,75 @@ | ||
294 | return -1; | 298 | return -1; |
295 | } | 299 | } |
296 | 300 | ||
297 | - string * session::file_chooser_dialog(int action, const char *title, const char *extension, const char *filename) | 301 | + string session::file_chooser_dialog(int action, const char *title, const char *extension, const char *filename) |
298 | { | 302 | { |
299 | - return NULL; | 303 | + return string(""); |
300 | } | 304 | } |
301 | 305 | ||
302 | - string * session::get_3270_text(string *str) | 306 | + string session::get_3270_text(const char *str) |
303 | { | 307 | { |
308 | + string rc; | ||
309 | + | ||
304 | #ifdef HAVE_ICONV | 310 | #ifdef HAVE_ICONV |
305 | - if(str && conv2Host != (iconv_t)(-1)) | 311 | + size_t in = strlen(str); |
312 | + | ||
313 | + if(in && conv2Host != (iconv_t)(-1)) | ||
306 | { | 314 | { |
307 | - size_t in = str->length(); | ||
308 | size_t out = (in << 1); | 315 | size_t out = (in << 1); |
309 | char * ptr; | 316 | char * ptr; |
310 | char * outBuffer = (char *) malloc(out); | 317 | char * outBuffer = (char *) malloc(out); |
311 | - ICONV_CONST char * inBuffer = (ICONV_CONST char *) str->c_str(); | 318 | + ICONV_CONST char * inBuffer = (ICONV_CONST char *) str; |
312 | 319 | ||
313 | memset(ptr=outBuffer,0,out); | 320 | memset(ptr=outBuffer,0,out); |
314 | 321 | ||
315 | iconv(conv2Host,NULL,NULL,NULL,NULL); // Reset state | 322 | iconv(conv2Host,NULL,NULL,NULL,NULL); // Reset state |
316 | 323 | ||
317 | if(iconv(conv2Host,&inBuffer,&in,&ptr,&out) != ((size_t) -1)) | 324 | if(iconv(conv2Host,&inBuffer,&in,&ptr,&out) != ((size_t) -1)) |
318 | - str->assign(outBuffer); | 325 | + rc.assign(outBuffer); |
319 | 326 | ||
320 | free(outBuffer); | 327 | free(outBuffer); |
321 | } | 328 | } |
329 | +#else | ||
330 | + rc = str; | ||
322 | #endif // HAVE_ICONV | 331 | #endif // HAVE_ICONV |
323 | 332 | ||
324 | - return str; | 333 | + return rc; |
325 | } | 334 | } |
326 | 335 | ||
327 | - string * session::get_local_text(string *str) | 336 | + string session::get_local_text(const char *str) |
328 | { | 337 | { |
338 | + string rc; | ||
339 | + | ||
329 | #ifdef HAVE_ICONV | 340 | #ifdef HAVE_ICONV |
330 | - if(str && conv2Local != (iconv_t)(-1)) | 341 | + size_t in = strlen(str); |
342 | + | ||
343 | + if(in && conv2Local != (iconv_t)(-1)) | ||
331 | { | 344 | { |
332 | - size_t in = str->length(); | ||
333 | size_t out = (in << 1); | 345 | size_t out = (in << 1); |
334 | char * ptr; | 346 | char * ptr; |
335 | char * outBuffer = (char *) malloc(out); | 347 | char * outBuffer = (char *) malloc(out); |
336 | - ICONV_CONST char * inBuffer = (ICONV_CONST char *) str->c_str(); | 348 | + ICONV_CONST char * inBuffer = (ICONV_CONST char *) str; |
337 | 349 | ||
338 | memset(ptr=outBuffer,0,out); | 350 | memset(ptr=outBuffer,0,out); |
339 | 351 | ||
340 | iconv(conv2Local,NULL,NULL,NULL,NULL); // Reset state | 352 | iconv(conv2Local,NULL,NULL,NULL,NULL); // Reset state |
341 | 353 | ||
342 | if(iconv(conv2Local,&inBuffer,&in,&ptr,&out) != ((size_t) -1)) | 354 | if(iconv(conv2Local,&inBuffer,&in,&ptr,&out) != ((size_t) -1)) |
343 | - str->assign(outBuffer); | 355 | + rc.assign(outBuffer); |
344 | 356 | ||
345 | free(outBuffer); | 357 | free(outBuffer); |
346 | } | 358 | } |
359 | +#else | ||
360 | + rc = str; | ||
347 | #endif // HAVE_ICONV | 361 | #endif // HAVE_ICONV |
348 | 362 | ||
349 | - return str; | 363 | + return rc; |
350 | } | 364 | } |
351 | 365 | ||
352 | - string * session::get_string_at(int row, int col, size_t sz) | 366 | + string session::get_string_at(int row, int col, size_t sz) |
353 | { | 367 | { |
354 | - string *str = this->get_text_at(row,col,sz); | ||
355 | - | ||
356 | - if(str) | ||
357 | - return this->get_local_text(str); | ||
358 | - | ||
359 | - return 0; | 368 | + string str = this->get_text_at(row,col,sz); |
369 | + return this->get_local_text(str.c_str()); | ||
360 | } | 370 | } |
361 | 371 | ||
362 | int session::set_string_at(int row, int col, const char *str) | 372 | int session::set_string_at(int row, int col, const char *str) |
@@ -427,23 +437,17 @@ | @@ -427,23 +437,17 @@ | ||
427 | 437 | ||
428 | int session::cmp_string_at(int row, int col, const char *text) | 438 | int session::cmp_string_at(int row, int col, const char *text) |
429 | { | 439 | { |
430 | - string * str = get_3270_text(new string(text)); | ||
431 | - int rc = cmp_text_at(row,col,str->c_str()); | ||
432 | - delete str; | ||
433 | - return rc; | 440 | + return cmp_text_at(row,col,get_3270_text(text).c_str()); |
434 | } | 441 | } |
435 | 442 | ||
436 | int session::wait_for_string_at(int row, int col, const char *key, int timeout) | 443 | int session::wait_for_string_at(int row, int col, const char *key, int timeout) |
437 | { | 444 | { |
438 | - string * str = get_3270_text(new string(key)); | ||
439 | - int rc = wait_for_text_at(row,col,str->c_str(),timeout); | ||
440 | - delete str; | ||
441 | - return rc; | 445 | + return wait_for_text_at(row,col,get_3270_text(key).c_str(),timeout); |
442 | } | 446 | } |
443 | 447 | ||
444 | - string * session::get_string(int baddr, size_t len) | 448 | + string session::get_string(int baddr, size_t len) |
445 | { | 449 | { |
446 | - return get_local_text(get_text(baddr,len)); | 450 | + return get_local_text(get_text(baddr,len).c_str()); |
447 | } | 451 | } |
448 | 452 | ||
449 | string session::asc2ebc(string &str) | 453 | string session::asc2ebc(string &str) |
src/classlib/testprogram.cc
@@ -40,7 +40,7 @@ | @@ -40,7 +40,7 @@ | ||
40 | { | 40 | { |
41 | 41 | ||
42 | { | 42 | { |
43 | - string *s; | 43 | + string s; |
44 | session *session = session::start("pw3270:a"); | 44 | session *session = session::start("pw3270:a"); |
45 | // session *session = session::start("new"); | 45 | // session *session = session::start("new"); |
46 | 46 | ||
@@ -55,12 +55,10 @@ | @@ -55,12 +55,10 @@ | ||
55 | cout << "\tSession state: " << session->get_cstate() << endl; | 55 | cout << "\tSession state: " << session->get_cstate() << endl; |
56 | 56 | ||
57 | s = session->get_display_charset(); | 57 | s = session->get_display_charset(); |
58 | - cout << "\tDisplay charset: " << s->c_str() << endl; | ||
59 | - delete s; | 58 | + cout << "\tDisplay charset: " << s.c_str() << endl; |
60 | 59 | ||
61 | s = session->get_host_charset(); | 60 | s = session->get_host_charset(); |
62 | - cout << "\tHost charset: " << s->c_str() << endl; | ||
63 | - delete s; | 61 | + cout << "\tHost charset: " << s.c_str() << endl; |
64 | 62 | ||
65 | session->connect(false); | 63 | session->connect(false); |
66 | delete session; | 64 | delete session; |
src/include/pw3270/class.h
@@ -130,8 +130,8 @@ | @@ -130,8 +130,8 @@ | ||
130 | #endif // WIN32 | 130 | #endif // WIN32 |
131 | 131 | ||
132 | virtual int set_host_charset(const char *charset) = 0; | 132 | virtual int set_host_charset(const char *charset) = 0; |
133 | - virtual string * get_host_charset(void) = 0; | ||
134 | - virtual string * get_display_charset(void); | 133 | + virtual string get_host_charset(void) = 0; |
134 | + virtual string get_display_charset(void); | ||
135 | 135 | ||
136 | // Connection & Network | 136 | // Connection & Network |
137 | int connect(const char *host, bool wait = true); | 137 | int connect(const char *host, bool wait = true); |
@@ -144,8 +144,8 @@ | @@ -144,8 +144,8 @@ | ||
144 | virtual int iterate(bool wait = true) = 0; | 144 | virtual int iterate(bool wait = true) = 0; |
145 | 145 | ||
146 | // Get/Set/Test without charset translation | 146 | // Get/Set/Test without charset translation |
147 | - virtual string * get_text(int baddr, size_t len) = 0; | ||
148 | - virtual string * get_text_at(int row, int col, size_t sz) = 0; | 147 | + virtual string get_text(int baddr, size_t len) = 0; |
148 | + virtual string get_text_at(int row, int col, size_t sz) = 0; | ||
149 | virtual int set_text_at(int row, int col, const char *str) = 0; | 149 | virtual int set_text_at(int row, int col, const char *str) = 0; |
150 | virtual int cmp_text_at(int row, int col, const char *text) = 0; | 150 | virtual int cmp_text_at(int row, int col, const char *text) = 0; |
151 | virtual int wait_for_text_at(int row, int col, const char *key, int timeout); | 151 | virtual int wait_for_text_at(int row, int col, const char *key, int timeout); |
@@ -158,8 +158,8 @@ | @@ -158,8 +158,8 @@ | ||
158 | string ebc2asc(string &str); | 158 | string ebc2asc(string &str); |
159 | 159 | ||
160 | // Get/Set/Test with charset translation | 160 | // Get/Set/Test with charset translation |
161 | - string * get_string(int baddr, size_t len); | ||
162 | - string * get_string_at(int row, int col, size_t sz); | 161 | + string get_string(int baddr, size_t len); |
162 | + string get_string_at(int row, int col, size_t sz); | ||
163 | int set_string_at(int row, int col, const char *str); | 163 | int set_string_at(int row, int col, const char *str); |
164 | int cmp_string_at(int row, int col, const char *text); | 164 | int cmp_string_at(int row, int col, const char *text); |
165 | int wait_for_string_at(int row, int col, const char *key, int timeout); | 165 | int wait_for_string_at(int row, int col, const char *key, int timeout); |
@@ -190,21 +190,23 @@ | @@ -190,21 +190,23 @@ | ||
190 | 190 | ||
191 | // Clipboard management | 191 | // Clipboard management |
192 | virtual int set_copy(const char *text); | 192 | virtual int set_copy(const char *text); |
193 | - virtual string * get_copy(void); | 193 | + virtual string get_copy(void); |
194 | 194 | ||
195 | - virtual string * get_clipboard(void); | 195 | + virtual string get_clipboard(void); |
196 | virtual int set_clipboard(const char *text); | 196 | virtual int set_clipboard(const char *text); |
197 | 197 | ||
198 | // Dialogs | 198 | // Dialogs |
199 | virtual int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); | 199 | virtual int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); |
200 | - virtual string * file_chooser_dialog(int action, const char *title, const char *extension, const char *filename); | 200 | + virtual string file_chooser_dialog(int action, const char *title, const char *extension, const char *filename); |
201 | 201 | ||
202 | // File transfer | 202 | // File transfer |
203 | virtual int file_transfer(LIB3270_FT_OPTION options, const char *local, const char *remote, int lrecl = 0, int blksize = 0, int primspace = 0, int secspace = 0, int dft = 4096); | 203 | virtual int file_transfer(LIB3270_FT_OPTION options, const char *local, const char *remote, int lrecl = 0, int blksize = 0, int primspace = 0, int secspace = 0, int dft = 4096); |
204 | 204 | ||
205 | // Charset translation | 205 | // Charset translation |
206 | - string * get_3270_text(string *str); | ||
207 | - string * get_local_text(string *str); | 206 | + const char * get_encoding(void); |
207 | + | ||
208 | + string get_3270_text(const char *str); | ||
209 | + string get_local_text(const char *str); | ||
208 | 210 | ||
209 | protected: | 211 | protected: |
210 | session(); | 212 | session(); |
@@ -0,0 +1,192 @@ | @@ -0,0 +1,192 @@ | ||
1 | +# | ||
2 | +# "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | +# (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | +# aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | +# | ||
6 | +# Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | +# | ||
8 | +# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | +# os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | +# Free Software Foundation. | ||
11 | +# | ||
12 | +# Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | +# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | +# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | +# obter mais detalhes. | ||
16 | +# | ||
17 | +# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | +# programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | ||
19 | +# Place, Suite 330, Boston, MA, 02111-1307, USA | ||
20 | +# | ||
21 | +# Contatos: | ||
22 | +# | ||
23 | +# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
24 | +# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
25 | +# | ||
26 | + | ||
27 | +PACKAGE_NAME=@PACKAGE_NAME@ | ||
28 | +SOURCES=info.cc get.cc set.cc service.cc init.cc connect.cc | ||
29 | + | ||
30 | +UNO_CLASSES= /com/sun/star/uno/XWeak \ | ||
31 | + /com/sun/star/uno/RuntimeException \ | ||
32 | + /com/sun/star/lang/WrappedTargetException | ||
33 | + | ||
34 | + | ||
35 | +#---[ LibreOffice SDK ]-------------------------------------------------------- | ||
36 | + | ||
37 | +OO_SDK_HOME=@OO_SDK_HOME@ | ||
38 | +OO_SDK_URE_HOME=@OO_SDK_URE_HOME@ | ||
39 | + | ||
40 | +UNO=@UNO@ | ||
41 | +UNOPKG=@UNOPKG@ | ||
42 | +IDLC=@IDLC@ | ||
43 | +REGMERGE=@REGMERGE@ | ||
44 | +CPPUMAKER=@CPPUMAKER@ | ||
45 | +CONVERT=@CONVERT@ | ||
46 | +ZIP=@ZIP@ | ||
47 | + | ||
48 | +TYPES_RDB=@OO_SDK_URE_HOME@/share/misc/types.rdb | ||
49 | + | ||
50 | +#---[ Paths ]------------------------------------------------------------------ | ||
51 | + | ||
52 | +prefix=@prefix@ | ||
53 | +exec_prefix=@exec_prefix@ | ||
54 | +bindir=@bindir@ | ||
55 | +sbindir=@sbindir@ | ||
56 | +libdir=@libdir@ | ||
57 | +includedir=@includedir@ | ||
58 | + | ||
59 | +#---[ Tools ]------------------------------------------------------------------ | ||
60 | + | ||
61 | +CXX=@CXX@ | ||
62 | +MKDIR=@MKDIR_P@ | ||
63 | + | ||
64 | +#---[ Paths ]------------------------------------------------------------------ | ||
65 | + | ||
66 | +OBJDIR=.obj | ||
67 | +BINDIR=.bin | ||
68 | +RDBDIR=.rdb | ||
69 | +URDDIR=.urd | ||
70 | + | ||
71 | +OBJDBG=$(OBJDIR)/Debug | ||
72 | +BINDBG=$(BINDIR)/Debug | ||
73 | + | ||
74 | +OBJRLS=$(OBJDIR)/Release | ||
75 | +BINRLS=$(BINDIR)/Release | ||
76 | + | ||
77 | +#---[ lib3270 common class ]--------------------------------------------------- | ||
78 | + | ||
79 | +DEBUG_CFLAGS=-DDEBUG=1 -g -Wall | ||
80 | +PW3270_CFLAGS=-I../include | ||
81 | +CLASSLIBDIR=../classlib | ||
82 | +include $(CLASSLIBDIR)/class.mak | ||
83 | + | ||
84 | +#---[ Build options ]---------------------------------------------------------- | ||
85 | + | ||
86 | +CPPUENV="gcc3" | ||
87 | +CXXFLAGS=@CXXFLAGS@ -fvisibility=hidden @DLL_CFLAGS@ -Wno-strict-aliasing -I../include -I./include -I$(includedir)/libreoffice -Wno-strict-aliasing -DCPPU_ENV=$(CPPUENV) -DLANGUAGE_BINDING_NAME=\"$(CPPUENV)\" | ||
88 | + | ||
89 | +OO_LDFLAGS=-L$(OO_SDK_HOME)/lib -L$(OO_SDK_URE_HOME)/lib \ | ||
90 | + -Wl,-rpath-link=$(OO_SDK_URE_HOME)/lib,-rpath=$(OO_SDK_URE_HOME)/lib \ | ||
91 | + -luno_cppu -luno_cppuhelpergcc3 -luno_salhelpergcc3 | ||
92 | + | ||
93 | +#---[ Rules ]------------------------------------------------------------------ | ||
94 | + | ||
95 | +$(URDDIR)/%.urd: %.idl | ||
96 | + @echo " IDLC `basename $@`" | ||
97 | + @$(MKDIR) `dirname $@` | ||
98 | + @$(IDLC) -C -I$(OO_SDK_HOME)/idl -O`dirname $@` $< | ||
99 | + | ||
100 | +$(URDDIR)/%.urd: /usr/share/idl/libreoffice/%.idl | ||
101 | + @echo " IDLC `basename $@`" | ||
102 | + @$(MKDIR) `dirname $@` | ||
103 | + @$(IDLC) -C -I$(OO_SDK_HOME)/idl -O`dirname $@` $< | ||
104 | + | ||
105 | +$(RDBDIR)/%.rdb: $(URDDIR)/%.urd | ||
106 | + @echo " REGM `basename $@`" | ||
107 | + @$(MKDIR) `dirname $@` | ||
108 | + @$(REGMERGE) $@ /UCR $< | ||
109 | + | ||
110 | +include/%.hpp: $(RDBDIR)/%.rdb | ||
111 | + @echo " CPPU `basename $@`" | ||
112 | + @$(MKDIR) `dirname $@` | ||
113 | + @$(CPPUMAKER) -O./include $(TYPES_RDB) $< | ||
114 | + | ||
115 | +$(OBJDBG)/%.o: %.cc include/$(PACKAGE_NAME)/lib3270.hpp \ | ||
116 | + $(foreach CLS, $(UNO_CLASSES), include/$(CLS).hpp) \ | ||
117 | + *.hpp Makefile | ||
118 | + @echo " CC `basename $@`" | ||
119 | + @mkdir -p `dirname $@` | ||
120 | + @$(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $< | ||
121 | +# $(DBG_CFLAGS) $(CXXFLAGS) $(LIB3270_CFLAGS) -DLIBNAME=\"$(BINDBG)/$(PROGRAM_NAME).uno@DLLEXT@\" -o $@ -c $< | ||
122 | + | ||
123 | +#---[ UNO targets ]------------------------------------------------------------ | ||
124 | + | ||
125 | +include/$(PACKAGE_NAME)/lib3270.hpp: $(RDBDIR)/$(PACKAGE_NAME).rdb | ||
126 | + @echo " CPPU `basename $@`" | ||
127 | + @$(MKDIR) `dirname $@` | ||
128 | + @$(CPPUMAKER) -O./include -T$(PACKAGE_NAME).lib3270 $(TYPES_RDB) $< | ||
129 | + | ||
130 | + | ||
131 | +#---[ Debug targets ]---------------------------------------------------------- | ||
132 | + | ||
133 | +Debug: $(BINDBG)/$(PACKAGE_NAME).oxt | ||
134 | + | ||
135 | +run: $(BINDBG)/$(PACKAGE_NAME).oxt | ||
136 | + @SHARED=false $(UNOPKG) add --verbose --force $(BINDBG)/$(PACKAGE_NAME).oxt | ||
137 | + @libreoffice testmacros.odt | ||
138 | + @SHARED=false $(UNOPKG) remove $(PACKAGE_NAME) | ||
139 | + | ||
140 | +add: $(BINDBG)/$(PACKAGE_NAME).oxt | ||
141 | + @SHARED=false $(UNOPKG) add --verbose --force $(BINDBG)/$(PACKAGE_NAME).oxt | ||
142 | + | ||
143 | +$(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@: \ | ||
144 | + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC)@OBJEXT@) \ | ||
145 | + $(CLASS_DEBUG_OBJECTS) | ||
146 | + @echo " LD `basename $@`" | ||
147 | + @$(MKDIR) `dirname $@` | ||
148 | + $(CXX) -shared $(LDFLAGS) $(OO_LDFLAGS) $(CLASS_LIBS) -o $@ $^ | ||
149 | + | ||
150 | + | ||
151 | +$(BINDBG)/$(PACKAGE_NAME).oxt: \ | ||
152 | + $(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@ \ | ||
153 | + $(RDBDIR)/$(PACKAGE_NAME).rdb \ | ||
154 | + description.xml \ | ||
155 | + manifest.xml \ | ||
156 | + description.txt | ||
157 | + @rm -f $@ | ||
158 | + @$(MKDIR) `dirname $@` | ||
159 | + | ||
160 | + @$(MKDIR) $(BINDBG)/$(PACKAGE).oxt.tmp | ||
161 | + | ||
162 | + @cp $(RDBDIR)/$(PACKAGE_NAME).rdb $(BINDBG)/$(PACKAGE).oxt.tmp | ||
163 | + @cp $(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@ $(BINDBG)/$(PACKAGE).oxt.tmp | ||
164 | + | ||
165 | + @$(MKDIR) $(BINDBG)/$(PACKAGE).oxt.tmp/META-INF | ||
166 | + @cp manifest.xml $(BINDBG)/$(PACKAGE).oxt.tmp/META-INF | ||
167 | + | ||
168 | + @cp description.xml $(BINDBG)/$(PACKAGE).oxt.tmp | ||
169 | + @cp description.txt $(BINDBG)/$(PACKAGE).oxt.tmp | ||
170 | + | ||
171 | + @$(CONVERT) ../$(PACKAGE_NAME)/pixmaps/$(PACKAGE_NAME).svg --format=png > $(BINDBG)/$(PACKAGE).oxt.tmp/$(PACKAGE_NAME).png | ||
172 | + | ||
173 | + @cp $(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@ $(BINDBG)/$(PACKAGE_NAME).oxt.tmp | ||
174 | + @cd $(BINDBG)/$(PACKAGE).oxt.tmp ; $(ZIP) -r -m ../$(PACKAGE_NAME).oxt . | ||
175 | + @rm -fr $(BINDBG)/$(PACKAGE).oxt.tmp | ||
176 | + @echo $@ Ok. | ||
177 | + | ||
178 | + | ||
179 | +#---[ Misc targets ]----------------------------------------------------------- | ||
180 | + | ||
181 | +cleanDebug: clean | ||
182 | + | ||
183 | +clean: | ||
184 | + @rm -f *.urd | ||
185 | + @rm -fr $(RDBDIR) | ||
186 | + @rm -fr $(URDDIR) | ||
187 | + @rm -fr include | ||
188 | + @rm -f *.rdb | ||
189 | + @rm -fr $(OBJDIR) | ||
190 | + @rm -fr $(BINDIR) | ||
191 | + | ||
192 | + |
@@ -0,0 +1,145 @@ | @@ -0,0 +1,145 @@ | ||
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 connect.cc e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + * | ||
29 | + */ | ||
30 | + | ||
31 | + #include "globals.hpp" | ||
32 | + #include "pw3270/lib3270.hpp" | ||
33 | + #include <exception> | ||
34 | + #include <com/sun/star/uno/RuntimeException.hdl> | ||
35 | + | ||
36 | +/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
37 | + | ||
38 | + using namespace pw3270_impl; | ||
39 | + | ||
40 | + ::sal_Int16 SAL_CALL session_impl::Connect() throw (::com::sun::star::uno::RuntimeException) | ||
41 | + { | ||
42 | + trace("%s: hSession=%p",__FUNCTION__,hSession); | ||
43 | + | ||
44 | + try | ||
45 | + { | ||
46 | + if(!hSession) | ||
47 | + hSession = h3270::session::get_default(); | ||
48 | + | ||
49 | + return hSession->connect(false); | ||
50 | + | ||
51 | + } catch(std::exception &e) | ||
52 | + { | ||
53 | + trace("%s failed: %s",__FUNCTION__,e.what()); | ||
54 | + | ||
55 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
56 | + | ||
57 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
58 | + | ||
59 | + } | ||
60 | + | ||
61 | + return -1; | ||
62 | + | ||
63 | + | ||
64 | + } | ||
65 | + | ||
66 | + ::sal_Int16 SAL_CALL session_impl::Disconnect() throw (::com::sun::star::uno::RuntimeException) | ||
67 | + { | ||
68 | + try | ||
69 | + { | ||
70 | + CHECK_SESSION_HANDLE | ||
71 | + | ||
72 | + return hSession->disconnect(); | ||
73 | + | ||
74 | + } catch(std::exception &e) | ||
75 | + { | ||
76 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
77 | + | ||
78 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
79 | + | ||
80 | + } | ||
81 | + | ||
82 | + return -1; | ||
83 | + | ||
84 | + } | ||
85 | + | ||
86 | + ::sal_Bool SAL_CALL session_impl::isConnected() throw (::com::sun::star::uno::RuntimeException) | ||
87 | + { | ||
88 | + try | ||
89 | + { | ||
90 | + CHECK_SESSION_HANDLE | ||
91 | + | ||
92 | + return hSession->is_connected(); | ||
93 | + | ||
94 | + } catch(std::exception &e) | ||
95 | + { | ||
96 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
97 | + | ||
98 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
99 | + | ||
100 | + } | ||
101 | + | ||
102 | + return -1; | ||
103 | + } | ||
104 | + | ||
105 | + ::sal_Bool SAL_CALL session_impl::isReady() throw (::com::sun::star::uno::RuntimeException) | ||
106 | + { | ||
107 | + try | ||
108 | + { | ||
109 | + CHECK_SESSION_HANDLE | ||
110 | + | ||
111 | + return hSession->is_ready(); | ||
112 | + | ||
113 | + } catch(std::exception &e) | ||
114 | + { | ||
115 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
116 | + | ||
117 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
118 | + | ||
119 | + } | ||
120 | + | ||
121 | + return -1; | ||
122 | + | ||
123 | + } | ||
124 | + | ||
125 | + ::sal_Int16 SAL_CALL session_impl::waitForReady( ::sal_Int16 seconds ) throw (::com::sun::star::uno::RuntimeException) | ||
126 | + { | ||
127 | + try | ||
128 | + { | ||
129 | + CHECK_SESSION_HANDLE | ||
130 | + | ||
131 | + return hSession->wait_for_ready(seconds); | ||
132 | + | ||
133 | + } catch(std::exception &e) | ||
134 | + { | ||
135 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
136 | + | ||
137 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
138 | + | ||
139 | + } | ||
140 | + | ||
141 | + return -1; | ||
142 | + | ||
143 | + } | ||
144 | + | ||
145 | + |
@@ -0,0 +1,30 @@ | @@ -0,0 +1,30 @@ | ||
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> |
@@ -0,0 +1,88 @@ | @@ -0,0 +1,88 @@ | ||
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.cc e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + * Referência: | ||
29 | + * | ||
30 | + * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Class_Definition_with_Helper_Template_Classes | ||
31 | + * | ||
32 | + */ | ||
33 | + | ||
34 | + #include "globals.hpp" | ||
35 | + #include <lib3270/config.h> | ||
36 | + #include "pw3270/lib3270.hpp" | ||
37 | + | ||
38 | +/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
39 | + | ||
40 | + using namespace pw3270_impl; | ||
41 | + | ||
42 | + ::rtl::OUString session_impl::getVersion() throw (RuntimeException) | ||
43 | + { | ||
44 | + trace("%s: hSession=%p",__FUNCTION__,hSession); | ||
45 | + return OUString( RTL_CONSTASCII_USTRINGPARAM(PACKAGE_VERSION) ); | ||
46 | + } | ||
47 | + | ||
48 | + ::rtl::OUString session_impl::getRevision() throw (RuntimeException) | ||
49 | + { | ||
50 | + trace("%s: hSession=%p",__FUNCTION__,hSession); | ||
51 | + return OUString( RTL_CONSTASCII_USTRINGPARAM(PACKAGE_REVISION) ); | ||
52 | + } | ||
53 | + | ||
54 | + ::rtl::OUString SAL_CALL session_impl::getTextAt( ::sal_Int16 row, ::sal_Int16 col, ::sal_Int16 size ) throw (::com::sun::star::uno::RuntimeException) | ||
55 | + { | ||
56 | + string s; | ||
57 | + | ||
58 | + try | ||
59 | + { | ||
60 | + CHECK_SESSION_HANDLE | ||
61 | + s = hSession->get_text_at(row,col,size); | ||
62 | + | ||
63 | + } catch(std::exception &e) | ||
64 | + { | ||
65 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
66 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
67 | + } | ||
68 | + | ||
69 | + return OUString(s.c_str(), s.length(), encoding, RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
70 | + } | ||
71 | + | ||
72 | + ::sal_Int16 SAL_CALL session_impl::waitForTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& str, ::sal_Int16 seconds ) throw (::com::sun::star::uno::RuntimeException) | ||
73 | + { | ||
74 | + try | ||
75 | + { | ||
76 | + CHECK_SESSION_HANDLE | ||
77 | + OString vlr = rtl::OUStringToOString(str,encoding); | ||
78 | + return hSession->wait_for_text_at(row,col,vlr.getStr(),seconds); | ||
79 | + | ||
80 | + } catch(std::exception &e) | ||
81 | + { | ||
82 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
83 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
84 | + } | ||
85 | + | ||
86 | + return -1; | ||
87 | + | ||
88 | + } |
@@ -0,0 +1,143 @@ | @@ -0,0 +1,143 @@ | ||
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 globals.hpp 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 de Mendonça) | ||
27 | + * | ||
28 | + * Referências: | ||
29 | + * | ||
30 | + * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/C%2B%2B_Component | ||
31 | + * | ||
32 | + * | ||
33 | + */ | ||
34 | + | ||
35 | +#ifndef PW3270_OXT_GLOBALS_HPP_INCLUDED | ||
36 | + | ||
37 | + #define PW3270_OXT_GLOBALS_HPP_INCLUDED 1 | ||
38 | + | ||
39 | + #define CPPUENV "gcc3" | ||
40 | + | ||
41 | + #ifdef _WIN32 | ||
42 | + #define SAL_W32 | ||
43 | + #else | ||
44 | + #define UNX 1 | ||
45 | + #define GCC 1 | ||
46 | + #define LINUX 1 | ||
47 | + #define HAVE_GCC_VISIBILITY_FEATURE 1 | ||
48 | + #endif | ||
49 | + | ||
50 | + | ||
51 | + #include <cppuhelper/implbase4.hxx> // "3" implementing three interfaces | ||
52 | + #include <cppuhelper/factory.hxx> | ||
53 | + #include <com/sun/star/lang/XInitialization.hpp> | ||
54 | +// #include <cppuhelper/implementationentry.hxx> | ||
55 | + #include <com/sun/star/lang/XServiceInfo.hpp> | ||
56 | + | ||
57 | +#ifdef DEBUG | ||
58 | + #include <com/sun/star/lang/XMain.hpp> | ||
59 | +#endif // DEBUG | ||
60 | + | ||
61 | + #include <com/sun/star/uno/RuntimeException.hpp> | ||
62 | + | ||
63 | + #ifdef DEBUG | ||
64 | + #include <stdio.h> | ||
65 | + #define trace( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); | ||
66 | + #else | ||
67 | + #define trace(x, ...) // __VA_ARGS__ | ||
68 | + #endif | ||
69 | + | ||
70 | + #include <pw3270/lib3270.hpp> | ||
71 | + #include <pw3270/class.h> | ||
72 | + | ||
73 | + #define DLL_PUBLIC __attribute__((visibility("default"))) | ||
74 | + | ||
75 | + #define CHECK_SESSION_HANDLE if(!hSession) hSession = h3270::session::get_default(); | ||
76 | + | ||
77 | + | ||
78 | + using namespace ::rtl; // for OUString | ||
79 | + using namespace ::com::sun::star; // for sdk interfaces | ||
80 | + using namespace ::com::sun::star::lang; // for sdk interfaces | ||
81 | + using namespace ::com::sun::star::uno; // for basic types | ||
82 | + using namespace PW3270_NAMESPACE; | ||
83 | + | ||
84 | + namespace pw3270_impl | ||
85 | + { | ||
86 | + // https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Class_Definition_with_Helper_Template_Classes | ||
87 | + class DLL_PUBLIC session_impl : public ::cppu::WeakImplHelper4< ::pw3270::lib3270, XServiceInfo, XMain, XInitialization > | ||
88 | + { | ||
89 | + public: | ||
90 | + | ||
91 | + session_impl(); | ||
92 | + virtual ~session_impl(); | ||
93 | + | ||
94 | + // XMain | ||
95 | + virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (Exception); | ||
96 | + | ||
97 | + // XInitialization will be called upon createInstanceWithArguments[AndContext]() | ||
98 | + virtual void SAL_CALL initialize( Sequence< Any > const & args ) throw (Exception); | ||
99 | + | ||
100 | + // XServiceInfo | ||
101 | + virtual OUString SAL_CALL getImplementationName() throw (RuntimeException); | ||
102 | + virtual sal_Bool SAL_CALL supportsService( OUString const & serviceName ) throw (RuntimeException); | ||
103 | + virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (RuntimeException); | ||
104 | + | ||
105 | + // lib3270 | ||
106 | + virtual ::rtl::OUString SAL_CALL getVersion() throw (RuntimeException); | ||
107 | + virtual ::rtl::OUString SAL_CALL getRevision() throw (RuntimeException); | ||
108 | + virtual ::sal_Int16 SAL_CALL iterate( ::sal_Bool wait ) throw (::com::sun::star::uno::RuntimeException); | ||
109 | + | ||
110 | + virtual ::sal_Int16 SAL_CALL setSessionName( const ::rtl::OUString& name ) throw (::com::sun::star::uno::RuntimeException); | ||
111 | + | ||
112 | + virtual ::sal_Int16 SAL_CALL setHost( const ::rtl::OUString& url ) throw (::com::sun::star::uno::RuntimeException); | ||
113 | + virtual ::sal_Int16 SAL_CALL Connect() throw (::com::sun::star::uno::RuntimeException); | ||
114 | + virtual ::sal_Int16 SAL_CALL Disconnect() throw (::com::sun::star::uno::RuntimeException); | ||
115 | + | ||
116 | + // State | ||
117 | + virtual ::sal_Bool SAL_CALL isConnected() throw (::com::sun::star::uno::RuntimeException); | ||
118 | + virtual ::sal_Bool SAL_CALL isReady() throw (::com::sun::star::uno::RuntimeException); | ||
119 | + | ||
120 | + // Screen contents | ||
121 | + virtual ::rtl::OUString SAL_CALL getTextAt( ::sal_Int16 row, ::sal_Int16 col, ::sal_Int16 size ) throw (::com::sun::star::uno::RuntimeException); | ||
122 | + virtual ::sal_Int16 SAL_CALL setTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& str ) throw (::com::sun::star::uno::RuntimeException); | ||
123 | + | ||
124 | + // Wait | ||
125 | + virtual ::sal_Int16 SAL_CALL waitForReady( ::sal_Int16 seconds ) throw (::com::sun::star::uno::RuntimeException); | ||
126 | + virtual ::sal_Int16 SAL_CALL waitForTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& str, ::sal_Int16 seconds ) throw (::com::sun::star::uno::RuntimeException); | ||
127 | + | ||
128 | + | ||
129 | + | ||
130 | + private: | ||
131 | + h3270::session * hSession; | ||
132 | + rtl_TextEncoding encoding; | ||
133 | + | ||
134 | + }; | ||
135 | + | ||
136 | + extern Sequence< OUString > SAL_CALL getSupportedServiceNames_session_impl(); | ||
137 | + extern OUString SAL_CALL getImplementationName_session_impl(); | ||
138 | + extern Reference< XInterface > SAL_CALL create_session_impl(Reference< XComponentContext > const & xContext ) SAL_THROW( () ); | ||
139 | + | ||
140 | + }; | ||
141 | + | ||
142 | + | ||
143 | +#endif // PW3270_OXT_GLOBALS_HPP_INCLUDED |
@@ -0,0 +1,58 @@ | @@ -0,0 +1,58 @@ | ||
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 info.cc e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + * Referência: | ||
29 | + * | ||
30 | + * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Class_Definition_with_Helper_Template_Classes | ||
31 | + * | ||
32 | + */ | ||
33 | + | ||
34 | + #include "globals.hpp" | ||
35 | + #include "pw3270/lib3270.hpp" | ||
36 | + | ||
37 | +/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
38 | + | ||
39 | +using namespace pw3270_impl; | ||
40 | + | ||
41 | +// XServiceInfo implementation | ||
42 | +OUString session_impl::getImplementationName() throw (RuntimeException) | ||
43 | +{ | ||
44 | + // unique implementation name | ||
45 | + return OUString( RTL_CONSTASCII_USTRINGPARAM("pw3270.pw3270_impl.session") ); | ||
46 | +} | ||
47 | + | ||
48 | +sal_Bool session_impl::supportsService( OUString const & serviceName ) throw (RuntimeException) | ||
49 | +{ | ||
50 | + // this object only supports one service, so the test is simple | ||
51 | + return serviceName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("pw3270.session") ); | ||
52 | +} | ||
53 | + | ||
54 | +Sequence< OUString > session_impl::getSupportedServiceNames() throw (RuntimeException) | ||
55 | +{ | ||
56 | + return getSupportedServiceNames_session_impl(); | ||
57 | +} | ||
58 | + |
@@ -0,0 +1,95 @@ | @@ -0,0 +1,95 @@ | ||
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 init.cc e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + * Referência: | ||
29 | + * | ||
30 | + * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Create_Instance_with_Arguments | ||
31 | + * | ||
32 | + */ | ||
33 | + | ||
34 | + #include "globals.hpp" | ||
35 | + #include <com/sun/star/lang/IllegalArgumentException.hpp> | ||
36 | + #include "pw3270/lib3270.hpp" | ||
37 | + | ||
38 | +/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
39 | + | ||
40 | +using namespace pw3270_impl; | ||
41 | + | ||
42 | + | ||
43 | +session_impl::session_impl() | ||
44 | +{ | ||
45 | + this->hSession = NULL; | ||
46 | + this->encoding = RTL_TEXTENCODING_ISO_8859_1; | ||
47 | +} | ||
48 | + | ||
49 | +session_impl::~session_impl() | ||
50 | +{ | ||
51 | + if(this->hSession) | ||
52 | + delete this->hSession; | ||
53 | +} | ||
54 | + | ||
55 | + | ||
56 | +// XInitialization implementation | ||
57 | +void session_impl::initialize( Sequence< Any > const & args ) throw (Exception) | ||
58 | +{ | ||
59 | + if (1 != args.getLength()) | ||
60 | + { | ||
61 | + throw lang::IllegalArgumentException( | ||
62 | + OUString( RTL_CONSTASCII_USTRINGPARAM("give a string instanciating this component!") ), | ||
63 | + (::cppu::OWeakObject *)this, | ||
64 | + 0 ); | ||
65 | + } | ||
66 | + | ||
67 | + // Initialize | ||
68 | + | ||
69 | + // TODO: Get arguments. | ||
70 | + | ||
71 | + | ||
72 | +} | ||
73 | + | ||
74 | +// XMain | ||
75 | +::sal_Int32 SAL_CALL session_impl::run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (Exception) | ||
76 | +{ | ||
77 | + | ||
78 | + | ||
79 | + return 0; | ||
80 | +} | ||
81 | + | ||
82 | +::sal_Int16 SAL_CALL session_impl::iterate( ::sal_Bool wait ) throw (::com::sun::star::uno::RuntimeException) | ||
83 | +{ | ||
84 | + try | ||
85 | + { | ||
86 | + CHECK_SESSION_HANDLE | ||
87 | + return hSession->iterate(wait); | ||
88 | + | ||
89 | + } catch(std::exception &e) | ||
90 | + { | ||
91 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
92 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
93 | + } | ||
94 | + return -1; | ||
95 | +} |
@@ -0,0 +1,64 @@ | @@ -0,0 +1,64 @@ | ||
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 openOffice" /> | ||
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/pw3270 LibreOffice" 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 LibreOffice" prefix_auto="1" extension_auto="1" /> | ||
21 | + <Option object_output=".obj/Release/" /> | ||
22 | + <Option type="1" /> | ||
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="../../configure.ac" /> | ||
36 | + <Unit filename="../classlib/Makefile.in" /> | ||
37 | + <Unit filename="../classlib/class.mak" /> | ||
38 | + <Unit filename="../classlib/class.mak.in" /> | ||
39 | + <Unit filename="../classlib/exception.cc" /> | ||
40 | + <Unit filename="../classlib/local.cc" /> | ||
41 | + <Unit filename="../classlib/remote.cc" /> | ||
42 | + <Unit filename="../classlib/session.cc" /> | ||
43 | + <Unit filename="../include/pw3270/class.h" /> | ||
44 | + <Unit filename="Makefile.in" /> | ||
45 | + <Unit filename="connect.cc" /> | ||
46 | + <Unit filename="get.cc" /> | ||
47 | + <Unit filename="globals.hpp" /> | ||
48 | + <Unit filename="include/pw3270/lib3270.hdl" /> | ||
49 | + <Unit filename="include/pw3270/lib3270.hpp" /> | ||
50 | + <Unit filename="info.cc" /> | ||
51 | + <Unit filename="init.cc" /> | ||
52 | + <Unit filename="manifest.xml.in" /> | ||
53 | + <Unit filename="pw3270.idl" /> | ||
54 | + <Unit filename="service.cc" /> | ||
55 | + <Unit filename="set.cc" /> | ||
56 | + <Unit filename="testprogram.cc" /> | ||
57 | + <Extensions> | ||
58 | + <code_completion /> | ||
59 | + <envvars /> | ||
60 | + <debugger /> | ||
61 | + <lib_finder disable_auto="1" /> | ||
62 | + </Extensions> | ||
63 | + </Project> | ||
64 | +</CodeBlocks_project_file> |
@@ -0,0 +1,6 @@ | @@ -0,0 +1,6 @@ | ||
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@.rdb"/> | ||
5 | +</manifest:manifest> | ||
6 | + |
@@ -0,0 +1,79 @@ | @@ -0,0 +1,79 @@ | ||
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 | + * | ||
28 | + * Referências: | ||
29 | + * | ||
30 | + * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C++/C++_Component | ||
31 | + * | ||
32 | + */ | ||
33 | + | ||
34 | +#include <com/sun/star/uno/XInterface.idl> | ||
35 | +#include <com/sun/star/lang/XInitialization.idl> | ||
36 | +#include <com/sun/star/lang/XMain.idl> | ||
37 | + | ||
38 | +module pw3270 | ||
39 | +{ | ||
40 | + /* | ||
41 | + * Interface to lib3270 | ||
42 | + */ | ||
43 | + interface lib3270 : com::sun::star::uno::XInterface | ||
44 | + { | ||
45 | + // Constants | ||
46 | + string getVersion(); | ||
47 | + string getRevision(); | ||
48 | + | ||
49 | + // Host definition | ||
50 | + short setHost([in] string url); | ||
51 | + short Connect(); | ||
52 | + short Disconnect(); | ||
53 | + short iterate([in] boolean wait); | ||
54 | + | ||
55 | + // Screen contents | ||
56 | + string getTextAt([in] short row, [in] short col, [in] short size); | ||
57 | + short setTextAt([in] short row, [in] short col, [in] string str); | ||
58 | + short waitForTextAt([in] short row, [in] short col, [in] string str, [in] short seconds); | ||
59 | + | ||
60 | + // Misc Settings | ||
61 | + short setSessionName([in] string name); | ||
62 | + | ||
63 | + // State | ||
64 | + boolean isConnected(); | ||
65 | + boolean isReady(); | ||
66 | + | ||
67 | + // Waiting | ||
68 | + short waitForReady([in] short seconds); | ||
69 | + | ||
70 | + }; | ||
71 | + | ||
72 | + service session | ||
73 | + { | ||
74 | + interface lib3270; | ||
75 | + interface com::sun::star::lang::XInitialization; | ||
76 | + interface com::sun::star::lang::XMain; | ||
77 | + }; | ||
78 | +}; | ||
79 | + |
@@ -0,0 +1,44 @@ | @@ -0,0 +1,44 @@ | ||
1 | +#!/bin/bash | ||
2 | + | ||
3 | +OO_SDK_HOME=/usr/lib64/libreoffice/sdk | ||
4 | +IDLC=/usr/lib64/libreoffice/sdk/bin/idlc | ||
5 | +CPPUMAKER=/usr/lib64/libreoffice/sdk/bin/cppumaker | ||
6 | +TYPES_RDB=/usr/lib64/libreoffice/ure/share/misc/types.rdb | ||
7 | +REGMERGE=/usr/lib64/libreoffice/ure/bin/regmerge | ||
8 | + | ||
9 | +$IDLC -C -I$OO_SDK_HOME/idl -O. pw3270.idl | ||
10 | +if [ "$?" != "0" ]; then | ||
11 | + exit -1 | ||
12 | +fi | ||
13 | + | ||
14 | + | ||
15 | +$REGMERGE pw3270.rdb /UCR pw3270.urd | ||
16 | +if [ "$?" != "0" ]; then | ||
17 | + exit -1 | ||
18 | +fi | ||
19 | + | ||
20 | + | ||
21 | +$CPPUMAKER -O./include -Tpw3270.lib3270 $TYPES_RDB pw3270.rdb | ||
22 | +if [ "$?" != "0" ]; then | ||
23 | + exit -1 | ||
24 | +fi | ||
25 | + | ||
26 | +# XWeak | ||
27 | +$IDLC -C -I$OO_SDK_HOME/idl -O. /usr/share/idl/libreoffice/com/sun/star/uno/XWeak.idl | ||
28 | +if [ "$?" != "0" ]; then | ||
29 | + exit -1 | ||
30 | +fi | ||
31 | + | ||
32 | +$REGMERGE XWeak.rdb /UCR XWeak.urd | ||
33 | +if [ "$?" != "0" ]; then | ||
34 | + exit -1 | ||
35 | +fi | ||
36 | + | ||
37 | +$CPPUMAKER -O./include $TYPES_RDB XWeak.rdb | ||
38 | +if [ "$?" != "0" ]; then | ||
39 | + exit -1 | ||
40 | +fi | ||
41 | + | ||
42 | + | ||
43 | +echo ok | ||
44 | + |
@@ -0,0 +1,98 @@ | @@ -0,0 +1,98 @@ | ||
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 info.cc e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + * Referência: | ||
29 | + * | ||
30 | + * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Providing_a_Single_Factory_Using_a_Helper_Method | ||
31 | + * | ||
32 | + */ | ||
33 | + | ||
34 | + #include "globals.hpp" | ||
35 | + #include <cppuhelper/implementationentry.hxx> | ||
36 | + #include "pw3270/lib3270.hpp" | ||
37 | + | ||
38 | +/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
39 | + | ||
40 | +namespace pw3270_impl | ||
41 | +{ | ||
42 | + Sequence< OUString > SAL_CALL getSupportedServiceNames_session_impl() | ||
43 | + { | ||
44 | + Sequence<OUString> names(1); | ||
45 | + names[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("pw3270.session")); | ||
46 | + return names; | ||
47 | + } | ||
48 | + | ||
49 | + OUString SAL_CALL getImplementationName_session_impl() | ||
50 | + { | ||
51 | + return OUString( RTL_CONSTASCII_USTRINGPARAM("pw3270.lib3270.session") ); | ||
52 | + } | ||
53 | + | ||
54 | + Reference< XInterface > SAL_CALL create_session_impl(Reference< XComponentContext > const & xContext ) SAL_THROW( () ) | ||
55 | + { | ||
56 | + return static_cast< lang::XTypeProvider * >( new session_impl() ); | ||
57 | + } | ||
58 | + | ||
59 | + static struct ::cppu::ImplementationEntry s_component_entries [] = | ||
60 | + { | ||
61 | + { | ||
62 | + create_session_impl, | ||
63 | + getImplementationName_session_impl, | ||
64 | + getSupportedServiceNames_session_impl, | ||
65 | + ::cppu::createSingleComponentFactory, | ||
66 | + 0, | ||
67 | + 0 | ||
68 | + }, | ||
69 | + { | ||
70 | + 0, | ||
71 | + 0, | ||
72 | + 0, | ||
73 | + 0, | ||
74 | + 0, | ||
75 | + 0 | ||
76 | + } | ||
77 | + }; | ||
78 | + | ||
79 | +} | ||
80 | + | ||
81 | +extern "C" | ||
82 | +{ | ||
83 | + DLL_PUBLIC void * SAL_CALL component_getFactory(sal_Char const * implName, lang::XMultiServiceFactory * xMgr,registry::XRegistryKey * xRegistry ) | ||
84 | + { | ||
85 | + return ::cppu::component_getFactoryHelper(implName, xMgr, xRegistry, ::pw3270_impl::s_component_entries ); | ||
86 | + } | ||
87 | + | ||
88 | + DLL_PUBLIC sal_Bool SAL_CALL component_writeInfo(lang::XMultiServiceFactory * xMgr, registry::XRegistryKey * xRegistry ) | ||
89 | + { | ||
90 | + return ::cppu::component_writeInfoHelper(xMgr, xRegistry, ::pw3270_impl::s_component_entries ); | ||
91 | + } | ||
92 | + | ||
93 | + DLL_PUBLIC void SAL_CALL component_getImplementationEnvironment(sal_Char const ** ppEnvTypeName, uno_Environment ** ppEnv ) | ||
94 | + { | ||
95 | + * ppEnvTypeName = LANGUAGE_BINDING_NAME; | ||
96 | + } | ||
97 | + | ||
98 | +} |
@@ -0,0 +1,143 @@ | @@ -0,0 +1,143 @@ | ||
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.cc e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + * Referência: | ||
29 | + * | ||
30 | + * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Class_Definition_with_Helper_Template_Classes | ||
31 | + * | ||
32 | + */ | ||
33 | + | ||
34 | + #include "globals.hpp" | ||
35 | + #include <exception> | ||
36 | + #include <com/sun/star/uno/RuntimeException.hdl> | ||
37 | + #include <com/sun/star/lang/IllegalArgumentException.hpp> | ||
38 | + #include "pw3270/lib3270.hpp" | ||
39 | + | ||
40 | +/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
41 | + | ||
42 | + using namespace pw3270_impl; | ||
43 | + using namespace com::sun::star::uno; | ||
44 | + | ||
45 | + ::sal_Int16 SAL_CALL session_impl::setSessionName( const ::rtl::OUString& name ) throw (::com::sun::star::uno::RuntimeException) | ||
46 | + { | ||
47 | + if(hSession) | ||
48 | + { | ||
49 | + // Remove old session | ||
50 | + delete hSession; | ||
51 | + hSession = NULL; | ||
52 | + } | ||
53 | + | ||
54 | + OString vlr = rtl::OUStringToOString( name , RTL_TEXTENCODING_UNICODE ); | ||
55 | + | ||
56 | + trace("%s(\"%s\")",__FUNCTION__,vlr.getStr()); | ||
57 | + | ||
58 | + try | ||
59 | + { | ||
60 | + string charset; | ||
61 | + | ||
62 | + hSession = h3270::session::create(((const char *) vlr.getStr())); | ||
63 | + | ||
64 | + trace("%s: hSession(\"%s\"=%p",__FUNCTION__,vlr.getStr(),hSession); | ||
65 | + | ||
66 | + } catch(std::exception &e) | ||
67 | + { | ||
68 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
69 | + | ||
70 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
71 | + | ||
72 | + return -1; | ||
73 | + | ||
74 | + } | ||
75 | + | ||
76 | + string charset = hSession->get_display_charset(); | ||
77 | + | ||
78 | + trace("Charset=\"%s\"",charset.c_str()); | ||
79 | + | ||
80 | + if(!charset.compare("ISO-8859-1")) | ||
81 | + { | ||
82 | + encoding = RTL_TEXTENCODING_ISO_8859_1; | ||
83 | + } | ||
84 | + else if(!charset.compare("UTF-8")) | ||
85 | + { | ||
86 | + encoding = RTL_TEXTENCODING_UTF8; | ||
87 | + } | ||
88 | + else | ||
89 | + { | ||
90 | + string s = "Unable to convert the host's display charset " + charset + "."; | ||
91 | + | ||
92 | + throw lang::IllegalArgumentException( | ||
93 | + OUString( RTL_CONSTASCII_USTRINGPARAM(s.c_str()) ), | ||
94 | + (::cppu::OWeakObject *)this, | ||
95 | + 0 ); | ||
96 | + | ||
97 | + } | ||
98 | + | ||
99 | + return 0; | ||
100 | + | ||
101 | + } | ||
102 | + | ||
103 | + ::sal_Int16 SAL_CALL session_impl::setHost( const ::rtl::OUString& url ) throw (::com::sun::star::uno::RuntimeException) | ||
104 | + { | ||
105 | + if(!hSession) | ||
106 | + hSession = h3270::session::get_default(); | ||
107 | + | ||
108 | + OString vlr = rtl::OUStringToOString( url , RTL_TEXTENCODING_UNICODE ); | ||
109 | + | ||
110 | + try | ||
111 | + { | ||
112 | + | ||
113 | + return hSession->set_url(vlr.getStr()); | ||
114 | + | ||
115 | + } catch(std::exception &e) | ||
116 | + { | ||
117 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
118 | + | ||
119 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
120 | + | ||
121 | + } | ||
122 | + | ||
123 | + return -1; | ||
124 | + } | ||
125 | + | ||
126 | + ::sal_Int16 SAL_CALL session_impl::setTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& str ) throw (::com::sun::star::uno::RuntimeException) | ||
127 | + { | ||
128 | + try | ||
129 | + { | ||
130 | + CHECK_SESSION_HANDLE | ||
131 | + OString vlr = rtl::OUStringToOString(str,encoding); | ||
132 | + return hSession->set_text_at(row,col,vlr.getStr()); | ||
133 | + | ||
134 | + } catch(std::exception &e) | ||
135 | + { | ||
136 | + OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
137 | + throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
138 | + } | ||
139 | + | ||
140 | + return -1; | ||
141 | + | ||
142 | + } | ||
143 | + |
No preview for this file type
@@ -0,0 +1,148 @@ | @@ -0,0 +1,148 @@ | ||
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.cc e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + */ | ||
29 | + | ||
30 | + #include "globals.hpp" | ||
31 | + | ||
32 | + #include <cppuhelper/bootstrap.hxx> | ||
33 | + #include <com/sun/star/bridge/XUnoUrlResolver.hpp> | ||
34 | + #include <com/sun/star/lang/XMultiServiceFactory.hpp> | ||
35 | + | ||
36 | + #include "pw3270/lib3270.hpp" | ||
37 | + | ||
38 | +/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
39 | + | ||
40 | +using namespace com::sun::star::uno; | ||
41 | +using namespace com::sun::star::lang; | ||
42 | +using namespace com::sun::star::bridge; | ||
43 | +using namespace rtl; | ||
44 | +using namespace cppu; | ||
45 | + | ||
46 | +int SAL_CALL main(int argc, char **argv) | ||
47 | +{ | ||
48 | + Reference< XComponentContext > rComponentContext = defaultBootstrap_InitialComponentContext(); | ||
49 | + OSL_ENSURE( xContext.is(), "### cannot creage intial component context!" ); | ||
50 | + | ||
51 | +/* | ||
52 | + Reference< XSimpleRegistry > xReg = DefaultRegistry(); | ||
53 | + | ||
54 | + Reference< XSimpleRegistry > xReg = createSimpleRegistry(); | ||
55 | + | ||
56 | + OSL_ENSURE( xReg.is(), "### cannot get service instance of \"SimpleRegistry\"!" ); | ||
57 | + | ||
58 | + xReg->open(OUString::createFromAscii("pw3270.rdb"), sal_False, sal_False); | ||
59 | + | ||
60 | + OSL_ENSURE( xReg->isValid(), "### cannot open test registry \"pw3270.rdb\"!" ); | ||
61 | + | ||
62 | + | ||
63 | + TRACE("%s","Calling bootstrap_InitialComponentContext"); | ||
64 | + Reference< XComponentContext > xContext = bootstrap_InitialComponentContext(xReg); | ||
65 | + OSL_ENSURE( xContext.is(), "### cannot creage intial component context!" ); | ||
66 | + | ||
67 | + TRACE("%s","Calling getServiceManager\n"); | ||
68 | + Reference< XMultiComponentFactory > xMgr = xContext->getServiceManager(); | ||
69 | + OSL_ENSURE( xMgr.is(), "### cannot get initial service manager!" ); | ||
70 | + | ||
71 | + // register my component | ||
72 | + TRACE("%s","Calling createInstanceWithContext"); | ||
73 | + | ||
74 | + Reference< XImplementationRegistration > xImplReg( | ||
75 | + xMgr->createInstanceWithContext(OUString::createFromAscii("com.sun.star.registry.ImplementationRegistration"), xContext), UNO_QUERY); | ||
76 | + OSL_ENSURE( xImplReg.is(), "### cannot get service instance of \"com.sun.star.registry.ImplementationRegistration\"!" ); | ||
77 | + | ||
78 | + if (xImplReg.is()) | ||
79 | + { | ||
80 | + const char *libname = LIBNAME; | ||
81 | + | ||
82 | + TRACE("Loading %s",libname); | ||
83 | + | ||
84 | + xImplReg->registerImplementation( | ||
85 | + OUString::createFromAscii("com.sun.star.loader.SharedLibrary"), // loader for component | ||
86 | + OUString::createFromAscii(libname), // component location | ||
87 | + Reference< XSimpleRegistry >() // registry omitted, | ||
88 | + // defaulting to service manager registry used | ||
89 | + ); | ||
90 | + | ||
91 | + // get an object instance | ||
92 | + printf("Calling createInstanceWithContext(%s)\n",IMPLNAME); | ||
93 | + | ||
94 | + Reference< XInterface > xx ; | ||
95 | + xx = xMgr->createInstanceWithContext(OUString::createFromAscii(IMPLNAME), xContext); | ||
96 | + | ||
97 | + printf("Instance: %p\n",&xx); | ||
98 | + | ||
99 | + Reference< pw3270intf > srv( xx, UNO_QUERY ); | ||
100 | + | ||
101 | + OSL_ENSURE( srv.is(), "### cannot get service instance!"); | ||
102 | + | ||
103 | + printf("object.is(): %d\n",srv.is()); | ||
104 | + | ||
105 | + if(srv.is()) | ||
106 | + { | ||
107 | + // Wait for commands | ||
108 | + OString str; | ||
109 | + char buffer[80]; | ||
110 | + printf("getConnectionState: %d\n", srv->getConnectionState()); | ||
111 | + | ||
112 | + str = OUStringToOString( srv->getVersion(),RTL_TEXTENCODING_UTF8); | ||
113 | + printf("Version:\t%s\n",str.pData->buffer); | ||
114 | + | ||
115 | + str = OUStringToOString( srv->getRevision(),RTL_TEXTENCODING_UTF8); | ||
116 | + printf("Revision:\t%s\n",str.pData->buffer); | ||
117 | + | ||
118 | + printf("Connect(): %d\n" , srv->Connect(OUString::createFromAscii("L:3270.df.bb:9023"),10)); | ||
119 | + | ||
120 | + sleep(5); | ||
121 | + | ||
122 | + //str = OUStringToOString( srv->getScreenContentAt(20,39,5),RTL_TEXTENCODING_UTF8); | ||
123 | + //Trace("ContentsAt(20,39): \"%s\"",str.pData->buffer); | ||
124 | + printf("waitForStringAt(SISBB) returned %d\n",srv->waitForStringAt(20,39,OUString::createFromAscii("SISBB"),20)); | ||
125 | + printf("sendEnterKey() returned %d\n",srv->sendEnterKey()); | ||
126 | + printf("waitForStringAt(Senha) returned %d\n",srv->waitForStringAt(14,2,OUString::createFromAscii("Senha"),20)); | ||
127 | + printf("setStringAt returned %d\n",srv->setStringAt(13,21,OUString::createFromAscii("c1103788"))); | ||
128 | + | ||
129 | + str = OUStringToOString( srv->getScreenContent(),RTL_TEXTENCODING_UTF8); | ||
130 | + printf("Entire screen:\n%s\n",str.pData->buffer); | ||
131 | + | ||
132 | + printf("Enter to exit...\n"); | ||
133 | + fgets(buffer,80,stdin); | ||
134 | + | ||
135 | + printf("Disconnect(): %d\n" , srv->Disconnect()); | ||
136 | + | ||
137 | + sleep(5); | ||
138 | + | ||
139 | + } | ||
140 | + } | ||
141 | + | ||
142 | + | ||
143 | + Reference< XComponent >::query( xContext )->dispose(); | ||
144 | + | ||
145 | +*/ | ||
146 | + | ||
147 | + return 0; | ||
148 | +} |
src/openoffice/Makefile.in
@@ -1,192 +0,0 @@ | @@ -1,192 +0,0 @@ | ||
1 | -# | ||
2 | -# "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | -# (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | -# aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | -# | ||
6 | -# Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | -# | ||
8 | -# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | -# os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | -# Free Software Foundation. | ||
11 | -# | ||
12 | -# Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | -# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | -# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | -# obter mais detalhes. | ||
16 | -# | ||
17 | -# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | -# programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | ||
19 | -# Place, Suite 330, Boston, MA, 02111-1307, USA | ||
20 | -# | ||
21 | -# Contatos: | ||
22 | -# | ||
23 | -# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
24 | -# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
25 | -# | ||
26 | - | ||
27 | -PACKAGE_NAME=@PACKAGE_NAME@ | ||
28 | -SOURCES=info.cc get.cc set.cc service.cc init.cc connect.cc | ||
29 | - | ||
30 | -UNO_CLASSES= /com/sun/star/uno/XWeak \ | ||
31 | - /com/sun/star/uno/RuntimeException \ | ||
32 | - /com/sun/star/lang/WrappedTargetException | ||
33 | - | ||
34 | - | ||
35 | -#---[ LibreOffice SDK ]-------------------------------------------------------- | ||
36 | - | ||
37 | -OO_SDK_HOME=@OO_SDK_HOME@ | ||
38 | -OO_SDK_URE_HOME=@OO_SDK_URE_HOME@ | ||
39 | - | ||
40 | -UNO=@UNO@ | ||
41 | -UNOPKG=@UNOPKG@ | ||
42 | -IDLC=@IDLC@ | ||
43 | -REGMERGE=@REGMERGE@ | ||
44 | -CPPUMAKER=@CPPUMAKER@ | ||
45 | -CONVERT=@CONVERT@ | ||
46 | -ZIP=@ZIP@ | ||
47 | - | ||
48 | -TYPES_RDB=@OO_SDK_URE_HOME@/share/misc/types.rdb | ||
49 | - | ||
50 | -#---[ Paths ]------------------------------------------------------------------ | ||
51 | - | ||
52 | -prefix=@prefix@ | ||
53 | -exec_prefix=@exec_prefix@ | ||
54 | -bindir=@bindir@ | ||
55 | -sbindir=@sbindir@ | ||
56 | -libdir=@libdir@ | ||
57 | -includedir=@includedir@ | ||
58 | - | ||
59 | -#---[ Tools ]------------------------------------------------------------------ | ||
60 | - | ||
61 | -CXX=@CXX@ | ||
62 | -MKDIR=@MKDIR_P@ | ||
63 | - | ||
64 | -#---[ Paths ]------------------------------------------------------------------ | ||
65 | - | ||
66 | -OBJDIR=.obj | ||
67 | -BINDIR=.bin | ||
68 | -RDBDIR=.rdb | ||
69 | -URDDIR=.urd | ||
70 | - | ||
71 | -OBJDBG=$(OBJDIR)/Debug | ||
72 | -BINDBG=$(BINDIR)/Debug | ||
73 | - | ||
74 | -OBJRLS=$(OBJDIR)/Release | ||
75 | -BINRLS=$(BINDIR)/Release | ||
76 | - | ||
77 | -#---[ lib3270 common class ]--------------------------------------------------- | ||
78 | - | ||
79 | -DEBUG_CFLAGS=-DDEBUG=1 -g -Wall | ||
80 | -PW3270_CFLAGS=-I../include | ||
81 | -CLASSLIBDIR=../classlib | ||
82 | -include $(CLASSLIBDIR)/class.mak | ||
83 | - | ||
84 | -#---[ Build options ]---------------------------------------------------------- | ||
85 | - | ||
86 | -CPPUENV="gcc3" | ||
87 | -CXXFLAGS=@CXXFLAGS@ -fvisibility=hidden @DLL_CFLAGS@ -Wno-strict-aliasing -I../include -I./include -I$(includedir)/libreoffice -Wno-strict-aliasing -DCPPU_ENV=$(CPPUENV) -DLANGUAGE_BINDING_NAME=\"$(CPPUENV)\" | ||
88 | - | ||
89 | -OO_LDFLAGS=-L$(OO_SDK_HOME)/lib -L$(OO_SDK_URE_HOME)/lib \ | ||
90 | - -Wl,-rpath-link=$(OO_SDK_URE_HOME)/lib,-rpath=$(OO_SDK_URE_HOME)/lib \ | ||
91 | - -luno_cppu -luno_cppuhelpergcc3 -luno_salhelpergcc3 | ||
92 | - | ||
93 | -#---[ Rules ]------------------------------------------------------------------ | ||
94 | - | ||
95 | -$(URDDIR)/%.urd: %.idl | ||
96 | - @echo " IDLC `basename $@`" | ||
97 | - @$(MKDIR) `dirname $@` | ||
98 | - @$(IDLC) -C -I$(OO_SDK_HOME)/idl -O`dirname $@` $< | ||
99 | - | ||
100 | -$(URDDIR)/%.urd: /usr/share/idl/libreoffice/%.idl | ||
101 | - @echo " IDLC `basename $@`" | ||
102 | - @$(MKDIR) `dirname $@` | ||
103 | - @$(IDLC) -C -I$(OO_SDK_HOME)/idl -O`dirname $@` $< | ||
104 | - | ||
105 | -$(RDBDIR)/%.rdb: $(URDDIR)/%.urd | ||
106 | - @echo " REGM `basename $@`" | ||
107 | - @$(MKDIR) `dirname $@` | ||
108 | - @$(REGMERGE) $@ /UCR $< | ||
109 | - | ||
110 | -include/%.hpp: $(RDBDIR)/%.rdb | ||
111 | - @echo " CPPU `basename $@`" | ||
112 | - @$(MKDIR) `dirname $@` | ||
113 | - @$(CPPUMAKER) -O./include $(TYPES_RDB) $< | ||
114 | - | ||
115 | -$(OBJDBG)/%.o: %.cc include/$(PACKAGE_NAME)/lib3270.hpp \ | ||
116 | - $(foreach CLS, $(UNO_CLASSES), include/$(CLS).hpp) \ | ||
117 | - *.hpp Makefile | ||
118 | - @echo " CC `basename $@`" | ||
119 | - @mkdir -p `dirname $@` | ||
120 | - @$(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $< | ||
121 | -# $(DBG_CFLAGS) $(CXXFLAGS) $(LIB3270_CFLAGS) -DLIBNAME=\"$(BINDBG)/$(PROGRAM_NAME).uno@DLLEXT@\" -o $@ -c $< | ||
122 | - | ||
123 | -#---[ UNO targets ]------------------------------------------------------------ | ||
124 | - | ||
125 | -include/$(PACKAGE_NAME)/lib3270.hpp: $(RDBDIR)/$(PACKAGE_NAME).rdb | ||
126 | - @echo " CPPU `basename $@`" | ||
127 | - @$(MKDIR) `dirname $@` | ||
128 | - @$(CPPUMAKER) -O./include -T$(PACKAGE_NAME).lib3270 $(TYPES_RDB) $< | ||
129 | - | ||
130 | - | ||
131 | -#---[ Debug targets ]---------------------------------------------------------- | ||
132 | - | ||
133 | -Debug: $(BINDBG)/$(PACKAGE_NAME).oxt | ||
134 | - | ||
135 | -run: $(BINDBG)/$(PACKAGE_NAME).oxt | ||
136 | - @SHARED=false $(UNOPKG) add --verbose --force $(BINDBG)/$(PACKAGE_NAME).oxt | ||
137 | - @libreoffice testmacros.odt | ||
138 | - @SHARED=false $(UNOPKG) remove $(PACKAGE_NAME) | ||
139 | - | ||
140 | -add: $(BINDBG)/$(PACKAGE_NAME).oxt | ||
141 | - @SHARED=false $(UNOPKG) add --verbose --force $(BINDBG)/$(PACKAGE_NAME).oxt | ||
142 | - | ||
143 | -$(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@: \ | ||
144 | - $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC)@OBJEXT@) \ | ||
145 | - $(CLASS_DEBUG_OBJECTS) | ||
146 | - @echo " LD `basename $@`" | ||
147 | - @$(MKDIR) `dirname $@` | ||
148 | - $(CXX) -shared $(LDFLAGS) $(OO_LDFLAGS) $(CLASS_LIBS) -o $@ $^ | ||
149 | - | ||
150 | - | ||
151 | -$(BINDBG)/$(PACKAGE_NAME).oxt: \ | ||
152 | - $(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@ \ | ||
153 | - $(RDBDIR)/$(PACKAGE_NAME).rdb \ | ||
154 | - description.xml \ | ||
155 | - manifest.xml \ | ||
156 | - description.txt | ||
157 | - @rm -f $@ | ||
158 | - @$(MKDIR) `dirname $@` | ||
159 | - | ||
160 | - @$(MKDIR) $(BINDBG)/$(PACKAGE).oxt.tmp | ||
161 | - | ||
162 | - @cp $(RDBDIR)/$(PACKAGE_NAME).rdb $(BINDBG)/$(PACKAGE).oxt.tmp | ||
163 | - @cp $(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@ $(BINDBG)/$(PACKAGE).oxt.tmp | ||
164 | - | ||
165 | - @$(MKDIR) $(BINDBG)/$(PACKAGE).oxt.tmp/META-INF | ||
166 | - @cp manifest.xml $(BINDBG)/$(PACKAGE).oxt.tmp/META-INF | ||
167 | - | ||
168 | - @cp description.xml $(BINDBG)/$(PACKAGE).oxt.tmp | ||
169 | - @cp description.txt $(BINDBG)/$(PACKAGE).oxt.tmp | ||
170 | - | ||
171 | - @$(CONVERT) ../$(PACKAGE_NAME)/pixmaps/$(PACKAGE_NAME).svg --format=png > $(BINDBG)/$(PACKAGE).oxt.tmp/$(PACKAGE_NAME).png | ||
172 | - | ||
173 | - @cp $(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@ $(BINDBG)/$(PACKAGE_NAME).oxt.tmp | ||
174 | - @cd $(BINDBG)/$(PACKAGE).oxt.tmp ; $(ZIP) -r -m ../$(PACKAGE_NAME).oxt . | ||
175 | - @rm -fr $(BINDBG)/$(PACKAGE).oxt.tmp | ||
176 | - @echo $@ Ok. | ||
177 | - | ||
178 | - | ||
179 | -#---[ Misc targets ]----------------------------------------------------------- | ||
180 | - | ||
181 | -cleanDebug: clean | ||
182 | - | ||
183 | -clean: | ||
184 | - @rm -f *.urd | ||
185 | - @rm -fr $(RDBDIR) | ||
186 | - @rm -fr $(URDDIR) | ||
187 | - @rm -fr include | ||
188 | - @rm -f *.rdb | ||
189 | - @rm -fr $(OBJDIR) | ||
190 | - @rm -fr $(BINDIR) | ||
191 | - | ||
192 | - |
src/openoffice/connect.cc
@@ -1,87 +0,0 @@ | @@ -1,87 +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 connect.cc e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * | ||
28 | - * | ||
29 | - */ | ||
30 | - | ||
31 | - #include "globals.hpp" | ||
32 | - #include "pw3270/lib3270.hpp" | ||
33 | - #include <exception> | ||
34 | - #include <com/sun/star/uno/RuntimeException.hdl> | ||
35 | - | ||
36 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
37 | - | ||
38 | - using namespace pw3270_impl; | ||
39 | - | ||
40 | - ::sal_Int16 SAL_CALL session_impl::Connect() throw (::com::sun::star::uno::RuntimeException) | ||
41 | - { | ||
42 | - trace("%s: hSession=%p",__FUNCTION__,hSession); | ||
43 | - | ||
44 | - try | ||
45 | - { | ||
46 | - if(!hSession) | ||
47 | - hSession = h3270::session::get_default(); | ||
48 | - | ||
49 | - return hSession->connect(false); | ||
50 | - | ||
51 | - } catch(std::exception &e) | ||
52 | - { | ||
53 | - trace("%s failed: %s",__FUNCTION__,e.what()); | ||
54 | - | ||
55 | - OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
56 | - | ||
57 | - throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
58 | - | ||
59 | - } | ||
60 | - | ||
61 | - return -1; | ||
62 | - | ||
63 | - | ||
64 | - } | ||
65 | - | ||
66 | - ::sal_Int16 SAL_CALL session_impl::Disconnect() throw (::com::sun::star::uno::RuntimeException) | ||
67 | - { | ||
68 | - try | ||
69 | - { | ||
70 | - if(!hSession) | ||
71 | - hSession = h3270::session::get_default(); | ||
72 | - | ||
73 | - return hSession->disconnect(); | ||
74 | - | ||
75 | - } catch(std::exception &e) | ||
76 | - { | ||
77 | - OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
78 | - | ||
79 | - throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
80 | - | ||
81 | - } | ||
82 | - | ||
83 | - return -1; | ||
84 | - | ||
85 | - } | ||
86 | - | ||
87 | - |
src/openoffice/description.txt
src/openoffice/description.xml.in
@@ -1,30 +0,0 @@ | @@ -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/openoffice/get.cc
@@ -1,52 +0,0 @@ | @@ -1,52 +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.cc e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * | ||
28 | - * Referência: | ||
29 | - * | ||
30 | - * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Class_Definition_with_Helper_Template_Classes | ||
31 | - * | ||
32 | - */ | ||
33 | - | ||
34 | - #include "globals.hpp" | ||
35 | - #include <lib3270/config.h> | ||
36 | - #include "pw3270/lib3270.hpp" | ||
37 | - | ||
38 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
39 | - | ||
40 | - using namespace pw3270_impl; | ||
41 | - | ||
42 | - ::rtl::OUString session_impl::getVersion() throw (RuntimeException) | ||
43 | - { | ||
44 | - trace("%s: hSession=%p",__FUNCTION__,hSession); | ||
45 | - return OUString( RTL_CONSTASCII_USTRINGPARAM(PACKAGE_VERSION) ); | ||
46 | - } | ||
47 | - | ||
48 | - ::rtl::OUString session_impl::getRevision() throw (RuntimeException) | ||
49 | - { | ||
50 | - trace("%s: hSession=%p",__FUNCTION__,hSession); | ||
51 | - return OUString( RTL_CONSTASCII_USTRINGPARAM(PACKAGE_REVISION) ); | ||
52 | - } |
src/openoffice/globals.hpp
@@ -1,124 +0,0 @@ | @@ -1,124 +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 globals.hpp 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 de Mendonça) | ||
27 | - * | ||
28 | - * Referências: | ||
29 | - * | ||
30 | - * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/C%2B%2B_Component | ||
31 | - * | ||
32 | - * | ||
33 | - */ | ||
34 | - | ||
35 | -#ifndef PW3270_OXT_GLOBALS_HPP_INCLUDED | ||
36 | - | ||
37 | - #define PW3270_OXT_GLOBALS_HPP_INCLUDED 1 | ||
38 | - | ||
39 | - #define CPPUENV "gcc3" | ||
40 | - | ||
41 | - #ifdef _WIN32 | ||
42 | - #define SAL_W32 | ||
43 | - #else | ||
44 | - #define UNX 1 | ||
45 | - #define GCC 1 | ||
46 | - #define LINUX 1 | ||
47 | - #define HAVE_GCC_VISIBILITY_FEATURE 1 | ||
48 | - #endif | ||
49 | - | ||
50 | - | ||
51 | - #include <cppuhelper/implbase4.hxx> // "3" implementing three interfaces | ||
52 | - #include <cppuhelper/factory.hxx> | ||
53 | - #include <com/sun/star/lang/XInitialization.hpp> | ||
54 | -// #include <cppuhelper/implementationentry.hxx> | ||
55 | - #include <com/sun/star/lang/XServiceInfo.hpp> | ||
56 | - | ||
57 | -#ifdef DEBUG | ||
58 | - #include <com/sun/star/lang/XMain.hpp> | ||
59 | -#endif // DEBUG | ||
60 | - | ||
61 | - #include <com/sun/star/uno/RuntimeException.hpp> | ||
62 | - | ||
63 | - #ifdef DEBUG | ||
64 | - #include <stdio.h> | ||
65 | - #define trace( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); | ||
66 | - #else | ||
67 | - #define trace(x, ...) // __VA_ARGS__ | ||
68 | - #endif | ||
69 | - | ||
70 | - #include <pw3270/lib3270.hpp> | ||
71 | - #include <pw3270/class.h> | ||
72 | - | ||
73 | - #define DLL_PUBLIC __attribute__((visibility("default"))) | ||
74 | - | ||
75 | - using namespace ::rtl; // for OUString | ||
76 | - using namespace ::com::sun::star; // for sdk interfaces | ||
77 | - using namespace ::com::sun::star::lang; // for sdk interfaces | ||
78 | - using namespace ::com::sun::star::uno; // for basic types | ||
79 | - using namespace PW3270_NAMESPACE; | ||
80 | - | ||
81 | - namespace pw3270_impl | ||
82 | - { | ||
83 | - // https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Class_Definition_with_Helper_Template_Classes | ||
84 | - class DLL_PUBLIC session_impl : public ::cppu::WeakImplHelper4< ::pw3270::lib3270, XServiceInfo, XMain, XInitialization > | ||
85 | - { | ||
86 | - public: | ||
87 | - | ||
88 | - session_impl(); | ||
89 | - virtual ~session_impl(); | ||
90 | - | ||
91 | - // XMain | ||
92 | - virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (Exception); | ||
93 | - | ||
94 | - // XInitialization will be called upon createInstanceWithArguments[AndContext]() | ||
95 | - virtual void SAL_CALL initialize( Sequence< Any > const & args ) throw (Exception); | ||
96 | - | ||
97 | - // XServiceInfo | ||
98 | - virtual OUString SAL_CALL getImplementationName() throw (RuntimeException); | ||
99 | - virtual sal_Bool SAL_CALL supportsService( OUString const & serviceName ) throw (RuntimeException); | ||
100 | - virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (RuntimeException); | ||
101 | - | ||
102 | - // lib3270 | ||
103 | - virtual ::rtl::OUString SAL_CALL getVersion() throw (RuntimeException); | ||
104 | - virtual ::rtl::OUString SAL_CALL getRevision() throw (RuntimeException); | ||
105 | - | ||
106 | - virtual ::sal_Int16 SAL_CALL setSessionName( const ::rtl::OUString& name ) throw (::com::sun::star::uno::RuntimeException); | ||
107 | - | ||
108 | - virtual ::sal_Int16 SAL_CALL setHost( const ::rtl::OUString& url ) throw (::com::sun::star::uno::RuntimeException); | ||
109 | - virtual ::sal_Int16 SAL_CALL Connect() throw (::com::sun::star::uno::RuntimeException); | ||
110 | - virtual ::sal_Int16 SAL_CALL Disconnect() throw (::com::sun::star::uno::RuntimeException); | ||
111 | - | ||
112 | - private: | ||
113 | - h3270::session *hSession; | ||
114 | - | ||
115 | - }; | ||
116 | - | ||
117 | - extern Sequence< OUString > SAL_CALL getSupportedServiceNames_session_impl(); | ||
118 | - extern OUString SAL_CALL getImplementationName_session_impl(); | ||
119 | - extern Reference< XInterface > SAL_CALL create_session_impl(Reference< XComponentContext > const & xContext ) SAL_THROW( () ); | ||
120 | - | ||
121 | - }; | ||
122 | - | ||
123 | - | ||
124 | -#endif // PW3270_OXT_GLOBALS_HPP_INCLUDED |
src/openoffice/info.cc
@@ -1,58 +0,0 @@ | @@ -1,58 +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 info.cc e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * | ||
28 | - * Referência: | ||
29 | - * | ||
30 | - * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Class_Definition_with_Helper_Template_Classes | ||
31 | - * | ||
32 | - */ | ||
33 | - | ||
34 | - #include "globals.hpp" | ||
35 | - #include "pw3270/lib3270.hpp" | ||
36 | - | ||
37 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
38 | - | ||
39 | -using namespace pw3270_impl; | ||
40 | - | ||
41 | -// XServiceInfo implementation | ||
42 | -OUString session_impl::getImplementationName() throw (RuntimeException) | ||
43 | -{ | ||
44 | - // unique implementation name | ||
45 | - return OUString( RTL_CONSTASCII_USTRINGPARAM("pw3270.pw3270_impl.session") ); | ||
46 | -} | ||
47 | - | ||
48 | -sal_Bool session_impl::supportsService( OUString const & serviceName ) throw (RuntimeException) | ||
49 | -{ | ||
50 | - // this object only supports one service, so the test is simple | ||
51 | - return serviceName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("pw3270.session") ); | ||
52 | -} | ||
53 | - | ||
54 | -Sequence< OUString > session_impl::getSupportedServiceNames() throw (RuntimeException) | ||
55 | -{ | ||
56 | - return getSupportedServiceNames_session_impl(); | ||
57 | -} | ||
58 | - |
src/openoffice/init.cc
@@ -1,79 +0,0 @@ | @@ -1,79 +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 init.cc e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * | ||
28 | - * Referência: | ||
29 | - * | ||
30 | - * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Create_Instance_with_Arguments | ||
31 | - * | ||
32 | - */ | ||
33 | - | ||
34 | - #include "globals.hpp" | ||
35 | - #include <com/sun/star/lang/IllegalArgumentException.hpp> | ||
36 | - #include "pw3270/lib3270.hpp" | ||
37 | - | ||
38 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
39 | - | ||
40 | -using namespace pw3270_impl; | ||
41 | - | ||
42 | - | ||
43 | -session_impl::session_impl() | ||
44 | -{ | ||
45 | - this->hSession = NULL; | ||
46 | -} | ||
47 | - | ||
48 | -session_impl::~session_impl() | ||
49 | -{ | ||
50 | - if(this->hSession) | ||
51 | - delete this->hSession; | ||
52 | -} | ||
53 | - | ||
54 | - | ||
55 | -// XInitialization implementation | ||
56 | -void session_impl::initialize( Sequence< Any > const & args ) throw (Exception) | ||
57 | -{ | ||
58 | - if (1 != args.getLength()) | ||
59 | - { | ||
60 | - throw lang::IllegalArgumentException( | ||
61 | - OUString( RTL_CONSTASCII_USTRINGPARAM("give a string instanciating this component!") ), | ||
62 | - (::cppu::OWeakObject *)this, | ||
63 | - 0 ); | ||
64 | - } | ||
65 | - | ||
66 | - // Initialize | ||
67 | - | ||
68 | - // TODO: Get arguments. | ||
69 | - | ||
70 | - | ||
71 | -} | ||
72 | - | ||
73 | -// XMain | ||
74 | -::sal_Int32 SAL_CALL session_impl::run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (Exception) | ||
75 | -{ | ||
76 | - | ||
77 | - | ||
78 | - return 0; | ||
79 | -} |
src/openoffice/loffice3270.cbp
@@ -1,64 +0,0 @@ | @@ -1,64 +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 openOffice" /> | ||
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/pw3270 LibreOffice" 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 LibreOffice" prefix_auto="1" extension_auto="1" /> | ||
21 | - <Option object_output=".obj/Release/" /> | ||
22 | - <Option type="1" /> | ||
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="../../configure.ac" /> | ||
36 | - <Unit filename="../classlib/Makefile.in" /> | ||
37 | - <Unit filename="../classlib/class.mak" /> | ||
38 | - <Unit filename="../classlib/class.mak.in" /> | ||
39 | - <Unit filename="../classlib/exception.cc" /> | ||
40 | - <Unit filename="../classlib/local.cc" /> | ||
41 | - <Unit filename="../classlib/remote.cc" /> | ||
42 | - <Unit filename="../classlib/session.cc" /> | ||
43 | - <Unit filename="../include/pw3270/class.h" /> | ||
44 | - <Unit filename="Makefile.in" /> | ||
45 | - <Unit filename="connect.cc" /> | ||
46 | - <Unit filename="get.cc" /> | ||
47 | - <Unit filename="globals.hpp" /> | ||
48 | - <Unit filename="include/pw3270/lib3270.hdl" /> | ||
49 | - <Unit filename="include/pw3270/lib3270.hpp" /> | ||
50 | - <Unit filename="info.cc" /> | ||
51 | - <Unit filename="init.cc" /> | ||
52 | - <Unit filename="manifest.xml.in" /> | ||
53 | - <Unit filename="pw3270.idl" /> | ||
54 | - <Unit filename="service.cc" /> | ||
55 | - <Unit filename="set.cc" /> | ||
56 | - <Unit filename="testprogram.cc" /> | ||
57 | - <Extensions> | ||
58 | - <code_completion /> | ||
59 | - <envvars /> | ||
60 | - <debugger /> | ||
61 | - <lib_finder disable_auto="1" /> | ||
62 | - </Extensions> | ||
63 | - </Project> | ||
64 | -</CodeBlocks_project_file> |
src/openoffice/manifest.xml.in
@@ -1,6 +0,0 @@ | @@ -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@.rdb"/> | ||
5 | -</manifest:manifest> | ||
6 | - |
src/openoffice/pw3270.idl
@@ -1,66 +0,0 @@ | @@ -1,66 +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 | - * | ||
28 | - * | ||
29 | - * Referências: | ||
30 | - * | ||
31 | - * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C++/C++_Component | ||
32 | - * | ||
33 | - */ | ||
34 | - | ||
35 | -#include <com/sun/star/uno/XInterface.idl> | ||
36 | -#include <com/sun/star/lang/XInitialization.idl> | ||
37 | -#include <com/sun/star/lang/XMain.idl> | ||
38 | - | ||
39 | -module pw3270 | ||
40 | -{ | ||
41 | - /* | ||
42 | - * Interface to lib3270 | ||
43 | - */ | ||
44 | - interface lib3270 : com::sun::star::uno::XInterface | ||
45 | - { | ||
46 | - // Constants | ||
47 | - string getVersion(); | ||
48 | - string getRevision(); | ||
49 | - | ||
50 | - // Host definition | ||
51 | - short setHost([in] string url); | ||
52 | - short Connect(); | ||
53 | - short Disconnect(); | ||
54 | - | ||
55 | - // Misc Settings | ||
56 | - short setSessionName([in] string name); | ||
57 | - }; | ||
58 | - | ||
59 | - service session | ||
60 | - { | ||
61 | - interface lib3270; | ||
62 | - interface com::sun::star::lang::XInitialization; | ||
63 | - interface com::sun::star::lang::XMain; | ||
64 | - }; | ||
65 | -}; | ||
66 | - |
src/openoffice/research.sh
@@ -1,44 +0,0 @@ | @@ -1,44 +0,0 @@ | ||
1 | -#!/bin/bash | ||
2 | - | ||
3 | -OO_SDK_HOME=/usr/lib64/libreoffice/sdk | ||
4 | -IDLC=/usr/lib64/libreoffice/sdk/bin/idlc | ||
5 | -CPPUMAKER=/usr/lib64/libreoffice/sdk/bin/cppumaker | ||
6 | -TYPES_RDB=/usr/lib64/libreoffice/ure/share/misc/types.rdb | ||
7 | -REGMERGE=/usr/lib64/libreoffice/ure/bin/regmerge | ||
8 | - | ||
9 | -$IDLC -C -I$OO_SDK_HOME/idl -O. pw3270.idl | ||
10 | -if [ "$?" != "0" ]; then | ||
11 | - exit -1 | ||
12 | -fi | ||
13 | - | ||
14 | - | ||
15 | -$REGMERGE pw3270.rdb /UCR pw3270.urd | ||
16 | -if [ "$?" != "0" ]; then | ||
17 | - exit -1 | ||
18 | -fi | ||
19 | - | ||
20 | - | ||
21 | -$CPPUMAKER -O./include -Tpw3270.lib3270 $TYPES_RDB pw3270.rdb | ||
22 | -if [ "$?" != "0" ]; then | ||
23 | - exit -1 | ||
24 | -fi | ||
25 | - | ||
26 | -# XWeak | ||
27 | -$IDLC -C -I$OO_SDK_HOME/idl -O. /usr/share/idl/libreoffice/com/sun/star/uno/XWeak.idl | ||
28 | -if [ "$?" != "0" ]; then | ||
29 | - exit -1 | ||
30 | -fi | ||
31 | - | ||
32 | -$REGMERGE XWeak.rdb /UCR XWeak.urd | ||
33 | -if [ "$?" != "0" ]; then | ||
34 | - exit -1 | ||
35 | -fi | ||
36 | - | ||
37 | -$CPPUMAKER -O./include $TYPES_RDB XWeak.rdb | ||
38 | -if [ "$?" != "0" ]; then | ||
39 | - exit -1 | ||
40 | -fi | ||
41 | - | ||
42 | - | ||
43 | -echo ok | ||
44 | - |
src/openoffice/service.cc
@@ -1,98 +0,0 @@ | @@ -1,98 +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 info.cc e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * | ||
28 | - * Referência: | ||
29 | - * | ||
30 | - * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Providing_a_Single_Factory_Using_a_Helper_Method | ||
31 | - * | ||
32 | - */ | ||
33 | - | ||
34 | - #include "globals.hpp" | ||
35 | - #include <cppuhelper/implementationentry.hxx> | ||
36 | - #include "pw3270/lib3270.hpp" | ||
37 | - | ||
38 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
39 | - | ||
40 | -namespace pw3270_impl | ||
41 | -{ | ||
42 | - Sequence< OUString > SAL_CALL getSupportedServiceNames_session_impl() | ||
43 | - { | ||
44 | - Sequence<OUString> names(1); | ||
45 | - names[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("pw3270.session")); | ||
46 | - return names; | ||
47 | - } | ||
48 | - | ||
49 | - OUString SAL_CALL getImplementationName_session_impl() | ||
50 | - { | ||
51 | - return OUString( RTL_CONSTASCII_USTRINGPARAM("pw3270.lib3270.session") ); | ||
52 | - } | ||
53 | - | ||
54 | - Reference< XInterface > SAL_CALL create_session_impl(Reference< XComponentContext > const & xContext ) SAL_THROW( () ) | ||
55 | - { | ||
56 | - return static_cast< lang::XTypeProvider * >( new session_impl() ); | ||
57 | - } | ||
58 | - | ||
59 | - static struct ::cppu::ImplementationEntry s_component_entries [] = | ||
60 | - { | ||
61 | - { | ||
62 | - create_session_impl, | ||
63 | - getImplementationName_session_impl, | ||
64 | - getSupportedServiceNames_session_impl, | ||
65 | - ::cppu::createSingleComponentFactory, | ||
66 | - 0, | ||
67 | - 0 | ||
68 | - }, | ||
69 | - { | ||
70 | - 0, | ||
71 | - 0, | ||
72 | - 0, | ||
73 | - 0, | ||
74 | - 0, | ||
75 | - 0 | ||
76 | - } | ||
77 | - }; | ||
78 | - | ||
79 | -} | ||
80 | - | ||
81 | -extern "C" | ||
82 | -{ | ||
83 | - DLL_PUBLIC void * SAL_CALL component_getFactory(sal_Char const * implName, lang::XMultiServiceFactory * xMgr,registry::XRegistryKey * xRegistry ) | ||
84 | - { | ||
85 | - return ::cppu::component_getFactoryHelper(implName, xMgr, xRegistry, ::pw3270_impl::s_component_entries ); | ||
86 | - } | ||
87 | - | ||
88 | - DLL_PUBLIC sal_Bool SAL_CALL component_writeInfo(lang::XMultiServiceFactory * xMgr, registry::XRegistryKey * xRegistry ) | ||
89 | - { | ||
90 | - return ::cppu::component_writeInfoHelper(xMgr, xRegistry, ::pw3270_impl::s_component_entries ); | ||
91 | - } | ||
92 | - | ||
93 | - DLL_PUBLIC void SAL_CALL component_getImplementationEnvironment(sal_Char const ** ppEnvTypeName, uno_Environment ** ppEnv ) | ||
94 | - { | ||
95 | - * ppEnvTypeName = LANGUAGE_BINDING_NAME; | ||
96 | - } | ||
97 | - | ||
98 | -} |
src/openoffice/set.cc
@@ -1,99 +0,0 @@ | @@ -1,99 +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.cc e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * | ||
28 | - * Referência: | ||
29 | - * | ||
30 | - * https://wiki.openoffice.org/wiki/Documentation/DevGuide/WritingUNO/C%2B%2B/Class_Definition_with_Helper_Template_Classes | ||
31 | - * | ||
32 | - */ | ||
33 | - | ||
34 | - #include "globals.hpp" | ||
35 | - #include <exception> | ||
36 | - #include <com/sun/star/uno/RuntimeException.hdl> | ||
37 | - #include "pw3270/lib3270.hpp" | ||
38 | - | ||
39 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
40 | - | ||
41 | - using namespace pw3270_impl; | ||
42 | - using namespace com::sun::star::uno; | ||
43 | - | ||
44 | - ::sal_Int16 SAL_CALL session_impl::setSessionName( const ::rtl::OUString& name ) throw (::com::sun::star::uno::RuntimeException) | ||
45 | - { | ||
46 | - if(hSession) | ||
47 | - { | ||
48 | - // Remove old session | ||
49 | - delete hSession; | ||
50 | - hSession = NULL; | ||
51 | - } | ||
52 | - | ||
53 | - OString vlr = rtl::OUStringToOString( name , RTL_TEXTENCODING_UNICODE ); | ||
54 | - | ||
55 | - trace("%s(\"%s\")",__FUNCTION__,vlr.getStr()); | ||
56 | - | ||
57 | - try | ||
58 | - { | ||
59 | - | ||
60 | - hSession = h3270::session::create(((const char *) vlr.getStr())); | ||
61 | - trace("%s: hSession(\"%s\"=%p",__FUNCTION__,vlr.getStr(),hSession); | ||
62 | - | ||
63 | - } catch(std::exception &e) | ||
64 | - { | ||
65 | - OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
66 | - | ||
67 | - throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
68 | - | ||
69 | - return -1; | ||
70 | - | ||
71 | - } | ||
72 | - | ||
73 | - return 0; | ||
74 | - | ||
75 | - } | ||
76 | - | ||
77 | - ::sal_Int16 SAL_CALL session_impl::setHost( const ::rtl::OUString& url ) throw (::com::sun::star::uno::RuntimeException) | ||
78 | - { | ||
79 | - if(!hSession) | ||
80 | - hSession = h3270::session::get_default(); | ||
81 | - | ||
82 | - OString vlr = rtl::OUStringToOString( url , RTL_TEXTENCODING_UNICODE ); | ||
83 | - | ||
84 | - try | ||
85 | - { | ||
86 | - | ||
87 | - return hSession->set_url(vlr.getStr()); | ||
88 | - | ||
89 | - } catch(std::exception &e) | ||
90 | - { | ||
91 | - OUString msg = OUString(e.what(),strlen(e.what()),RTL_TEXTENCODING_UTF8,RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE); | ||
92 | - | ||
93 | - throw css::uno::RuntimeException(msg,static_cast< cppu::OWeakObject * >(this)); | ||
94 | - | ||
95 | - } | ||
96 | - | ||
97 | - return -1; | ||
98 | - } | ||
99 | - |
src/openoffice/testmacros.odt
No preview for this file type
src/openoffice/testprogram.cc
@@ -1,148 +0,0 @@ | @@ -1,148 +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.cc e possui - linhas de código. | ||
22 | - * | ||
23 | - * Contatos: | ||
24 | - * | ||
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | - * | ||
28 | - */ | ||
29 | - | ||
30 | - #include "globals.hpp" | ||
31 | - | ||
32 | - #include <cppuhelper/bootstrap.hxx> | ||
33 | - #include <com/sun/star/bridge/XUnoUrlResolver.hpp> | ||
34 | - #include <com/sun/star/lang/XMultiServiceFactory.hpp> | ||
35 | - | ||
36 | - #include "pw3270/lib3270.hpp" | ||
37 | - | ||
38 | -/*---[ Implement ]-----------------------------------------------------------------------------------------*/ | ||
39 | - | ||
40 | -using namespace com::sun::star::uno; | ||
41 | -using namespace com::sun::star::lang; | ||
42 | -using namespace com::sun::star::bridge; | ||
43 | -using namespace rtl; | ||
44 | -using namespace cppu; | ||
45 | - | ||
46 | -int SAL_CALL main(int argc, char **argv) | ||
47 | -{ | ||
48 | - Reference< XComponentContext > rComponentContext = defaultBootstrap_InitialComponentContext(); | ||
49 | - OSL_ENSURE( xContext.is(), "### cannot creage intial component context!" ); | ||
50 | - | ||
51 | -/* | ||
52 | - Reference< XSimpleRegistry > xReg = DefaultRegistry(); | ||
53 | - | ||
54 | - Reference< XSimpleRegistry > xReg = createSimpleRegistry(); | ||
55 | - | ||
56 | - OSL_ENSURE( xReg.is(), "### cannot get service instance of \"SimpleRegistry\"!" ); | ||
57 | - | ||
58 | - xReg->open(OUString::createFromAscii("pw3270.rdb"), sal_False, sal_False); | ||
59 | - | ||
60 | - OSL_ENSURE( xReg->isValid(), "### cannot open test registry \"pw3270.rdb\"!" ); | ||
61 | - | ||
62 | - | ||
63 | - TRACE("%s","Calling bootstrap_InitialComponentContext"); | ||
64 | - Reference< XComponentContext > xContext = bootstrap_InitialComponentContext(xReg); | ||
65 | - OSL_ENSURE( xContext.is(), "### cannot creage intial component context!" ); | ||
66 | - | ||
67 | - TRACE("%s","Calling getServiceManager\n"); | ||
68 | - Reference< XMultiComponentFactory > xMgr = xContext->getServiceManager(); | ||
69 | - OSL_ENSURE( xMgr.is(), "### cannot get initial service manager!" ); | ||
70 | - | ||
71 | - // register my component | ||
72 | - TRACE("%s","Calling createInstanceWithContext"); | ||
73 | - | ||
74 | - Reference< XImplementationRegistration > xImplReg( | ||
75 | - xMgr->createInstanceWithContext(OUString::createFromAscii("com.sun.star.registry.ImplementationRegistration"), xContext), UNO_QUERY); | ||
76 | - OSL_ENSURE( xImplReg.is(), "### cannot get service instance of \"com.sun.star.registry.ImplementationRegistration\"!" ); | ||
77 | - | ||
78 | - if (xImplReg.is()) | ||
79 | - { | ||
80 | - const char *libname = LIBNAME; | ||
81 | - | ||
82 | - TRACE("Loading %s",libname); | ||
83 | - | ||
84 | - xImplReg->registerImplementation( | ||
85 | - OUString::createFromAscii("com.sun.star.loader.SharedLibrary"), // loader for component | ||
86 | - OUString::createFromAscii(libname), // component location | ||
87 | - Reference< XSimpleRegistry >() // registry omitted, | ||
88 | - // defaulting to service manager registry used | ||
89 | - ); | ||
90 | - | ||
91 | - // get an object instance | ||
92 | - printf("Calling createInstanceWithContext(%s)\n",IMPLNAME); | ||
93 | - | ||
94 | - Reference< XInterface > xx ; | ||
95 | - xx = xMgr->createInstanceWithContext(OUString::createFromAscii(IMPLNAME), xContext); | ||
96 | - | ||
97 | - printf("Instance: %p\n",&xx); | ||
98 | - | ||
99 | - Reference< pw3270intf > srv( xx, UNO_QUERY ); | ||
100 | - | ||
101 | - OSL_ENSURE( srv.is(), "### cannot get service instance!"); | ||
102 | - | ||
103 | - printf("object.is(): %d\n",srv.is()); | ||
104 | - | ||
105 | - if(srv.is()) | ||
106 | - { | ||
107 | - // Wait for commands | ||
108 | - OString str; | ||
109 | - char buffer[80]; | ||
110 | - printf("getConnectionState: %d\n", srv->getConnectionState()); | ||
111 | - | ||
112 | - str = OUStringToOString( srv->getVersion(),RTL_TEXTENCODING_UTF8); | ||
113 | - printf("Version:\t%s\n",str.pData->buffer); | ||
114 | - | ||
115 | - str = OUStringToOString( srv->getRevision(),RTL_TEXTENCODING_UTF8); | ||
116 | - printf("Revision:\t%s\n",str.pData->buffer); | ||
117 | - | ||
118 | - printf("Connect(): %d\n" , srv->Connect(OUString::createFromAscii("L:3270.df.bb:9023"),10)); | ||
119 | - | ||
120 | - sleep(5); | ||
121 | - | ||
122 | - //str = OUStringToOString( srv->getScreenContentAt(20,39,5),RTL_TEXTENCODING_UTF8); | ||
123 | - //Trace("ContentsAt(20,39): \"%s\"",str.pData->buffer); | ||
124 | - printf("waitForStringAt(SISBB) returned %d\n",srv->waitForStringAt(20,39,OUString::createFromAscii("SISBB"),20)); | ||
125 | - printf("sendEnterKey() returned %d\n",srv->sendEnterKey()); | ||
126 | - printf("waitForStringAt(Senha) returned %d\n",srv->waitForStringAt(14,2,OUString::createFromAscii("Senha"),20)); | ||
127 | - printf("setStringAt returned %d\n",srv->setStringAt(13,21,OUString::createFromAscii("c1103788"))); | ||
128 | - | ||
129 | - str = OUStringToOString( srv->getScreenContent(),RTL_TEXTENCODING_UTF8); | ||
130 | - printf("Entire screen:\n%s\n",str.pData->buffer); | ||
131 | - | ||
132 | - printf("Enter to exit...\n"); | ||
133 | - fgets(buffer,80,stdin); | ||
134 | - | ||
135 | - printf("Disconnect(): %d\n" , srv->Disconnect()); | ||
136 | - | ||
137 | - sleep(5); | ||
138 | - | ||
139 | - } | ||
140 | - } | ||
141 | - | ||
142 | - | ||
143 | - Reference< XComponent >::query( xContext )->dispose(); | ||
144 | - | ||
145 | -*/ | ||
146 | - | ||
147 | - return 0; | ||
148 | -} |
src/plugins/dbus3270/gobject.c
@@ -481,7 +481,8 @@ void pw3270_dbus_get_host_charset(PW3270Dbus *object, DBusGMethodInvocation *con | @@ -481,7 +481,8 @@ void pw3270_dbus_get_host_charset(PW3270Dbus *object, DBusGMethodInvocation *con | ||
481 | 481 | ||
482 | void pw3270_dbus_get_display_charset(PW3270Dbus *object, DBusGMethodInvocation *context) | 482 | void pw3270_dbus_get_display_charset(PW3270Dbus *object, DBusGMethodInvocation *context) |
483 | { | 483 | { |
484 | - dbus_g_method_return(context,lib3270_get_display_charset(pw3270_dbus_get_session_handle(object))); | 484 | + // Allways return UTF-8 to avoid double conversion |
485 | + dbus_g_method_return(context,"UTF-8"); | ||
485 | } | 486 | } |
486 | 487 | ||
487 | void pw3270_dbus_set_host_charset(PW3270Dbus *object, const gchar *charset, DBusGMethodInvocation *context) | 488 | void pw3270_dbus_set_host_charset(PW3270Dbus *object, const gchar *charset, DBusGMethodInvocation *context) |
src/plugins/rx3270/pluginmain.cc
@@ -100,8 +100,8 @@ | @@ -100,8 +100,8 @@ | ||
100 | int wait(int seconds); | 100 | int wait(int seconds); |
101 | int wait_for_ready(int seconds); | 101 | int wait_for_ready(int seconds); |
102 | 102 | ||
103 | - string * get_text(int baddr, size_t len); | ||
104 | - string * get_text_at(int row, int col, size_t sz); | 103 | + string get_text(int baddr, size_t len); |
104 | + string get_text_at(int row, int col, size_t sz); | ||
105 | int cmp_text_at(int row, int col, const char *text); | 105 | int cmp_text_at(int row, int col, const char *text); |
106 | int set_text_at(int row, int col, const char *str); | 106 | int set_text_at(int row, int col, const char *str); |
107 | 107 | ||
@@ -124,17 +124,17 @@ | @@ -124,17 +124,17 @@ | ||
124 | int get_next_unprotected(int baddr = -1); | 124 | int get_next_unprotected(int baddr = -1); |
125 | 125 | ||
126 | int set_copy(const char *text); | 126 | int set_copy(const char *text); |
127 | - string * get_copy(void); | 127 | + string get_copy(void); |
128 | 128 | ||
129 | - string * get_clipboard(void); | 129 | + string get_clipboard(void); |
130 | int set_clipboard(const char *text); | 130 | int set_clipboard(const char *text); |
131 | 131 | ||
132 | int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); | 132 | int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); |
133 | - string * file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename); | 133 | + string file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename); |
134 | 134 | ||
135 | int set_host_charset(const char *charset); | 135 | int set_host_charset(const char *charset); |
136 | - string * get_host_charset(void); | ||
137 | - string * get_display_charset(void); | 136 | + string get_host_charset(void); |
137 | + string get_display_charset(void); | ||
138 | 138 | ||
139 | const char * asc2ebc(unsigned char *str, int sz = -1); | 139 | const char * asc2ebc(unsigned char *str, int sz = -1); |
140 | const char * ebc2asc(unsigned char *str, int sz = -1); | 140 | const char * ebc2asc(unsigned char *str, int sz = -1); |
@@ -588,18 +588,18 @@ extern "C" | @@ -588,18 +588,18 @@ extern "C" | ||
588 | return lib3270_wait_for_ready(hSession,seconds); | 588 | return lib3270_wait_for_ready(hSession,seconds); |
589 | } | 589 | } |
590 | 590 | ||
591 | - string * plugin::get_text_at(int row, int col, size_t sz) | 591 | + string plugin::get_text_at(int row, int col, size_t sz) |
592 | { | 592 | { |
593 | - char * ptr = lib3270_get_text_at(hSession,row,col,(int) sz); | 593 | + string rc; |
594 | + char * ptr = lib3270_get_text_at(hSession,row,col,(int) sz); | ||
594 | 595 | ||
595 | if(ptr) | 596 | if(ptr) |
596 | { | 597 | { |
597 | - string *s = new string(ptr); | 598 | + rc.assign(ptr); |
598 | lib3270_free(ptr); | 599 | lib3270_free(ptr); |
599 | - return s; | ||
600 | } | 600 | } |
601 | 601 | ||
602 | - return new string(""); | 602 | + return rc; |
603 | } | 603 | } |
604 | 604 | ||
605 | int plugin::cmp_text_at(int row, int col, const char *text) | 605 | int plugin::cmp_text_at(int row, int col, const char *text) |
@@ -632,17 +632,18 @@ extern "C" | @@ -632,17 +632,18 @@ extern "C" | ||
632 | lib3270_write_va_log(hSession,"REXX",fmt,args); | 632 | lib3270_write_va_log(hSession,"REXX",fmt,args); |
633 | } | 633 | } |
634 | 634 | ||
635 | - string * plugin::get_text(int baddr, size_t len) | 635 | + string plugin::get_text(int baddr, size_t len) |
636 | { | 636 | { |
637 | - char *ptr = lib3270_get_text(hSession,baddr,len); | 637 | + string rc; |
638 | + char * ptr = lib3270_get_text(hSession,baddr,len); | ||
639 | + | ||
638 | if(ptr) | 640 | if(ptr) |
639 | { | 641 | { |
640 | - string *s = new string(ptr); | 642 | + rc.assign(ptr); |
641 | lib3270_free(ptr); | 643 | lib3270_free(ptr); |
642 | - return s; | ||
643 | } | 644 | } |
644 | 645 | ||
645 | - return new string(""); | 646 | + return rc; |
646 | } | 647 | } |
647 | 648 | ||
648 | int plugin::get_field_start(int baddr) | 649 | int plugin::get_field_start(int baddr) |
@@ -661,32 +662,32 @@ extern "C" | @@ -661,32 +662,32 @@ extern "C" | ||
661 | return 0; | 662 | return 0; |
662 | } | 663 | } |
663 | 664 | ||
664 | - string * plugin::get_copy(void) | 665 | + string plugin::get_copy(void) |
665 | { | 666 | { |
666 | - gchar *ptr = v3270_get_copy(GTK_WIDGET(lib3270_get_widget(hSession))); | 667 | + string rc; |
668 | + gchar * ptr = v3270_get_copy(GTK_WIDGET(lib3270_get_widget(hSession))); | ||
667 | 669 | ||
668 | if(ptr) | 670 | if(ptr) |
669 | { | 671 | { |
670 | - string *ret = new string((char *) ptr); | 672 | + rc.assign(ptr); |
671 | g_free(ptr); | 673 | g_free(ptr); |
672 | - return ret; | ||
673 | } | 674 | } |
674 | 675 | ||
675 | - return NULL; | 676 | + return rc; |
676 | } | 677 | } |
677 | 678 | ||
678 | - string * plugin::get_clipboard(void) | 679 | + string plugin::get_clipboard(void) |
679 | { | 680 | { |
680 | - gchar *ptr = gtk_clipboard_wait_for_text(gtk_widget_get_clipboard(pw3270_get_toplevel(),GDK_SELECTION_CLIPBOARD)); | 681 | + string rc; |
682 | + gchar * ptr = gtk_clipboard_wait_for_text(gtk_widget_get_clipboard(pw3270_get_toplevel(),GDK_SELECTION_CLIPBOARD)); | ||
681 | 683 | ||
682 | if(ptr) | 684 | if(ptr) |
683 | { | 685 | { |
684 | - string *ret = new string((char *) ptr); | 686 | + rc.assign(ptr); |
685 | g_free(ptr); | 687 | g_free(ptr); |
686 | - return ret; | ||
687 | } | 688 | } |
688 | 689 | ||
689 | - return NULL; | 690 | + return rc; |
690 | } | 691 | } |
691 | 692 | ||
692 | int plugin::set_clipboard(const char *text) | 693 | int plugin::set_clipboard(const char *text) |
@@ -729,18 +730,18 @@ int plugin::popup_dialog(LIB3270_NOTIFY id , const char *title, const char *mess | @@ -729,18 +730,18 @@ int plugin::popup_dialog(LIB3270_NOTIFY id , const char *title, const char *mess | ||
729 | return 0; | 730 | return 0; |
730 | } | 731 | } |
731 | 732 | ||
732 | -string * plugin::file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename) | 733 | +string plugin::file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename) |
733 | { | 734 | { |
734 | - gchar *ptr = pw3270_file_chooser(action, script_name ? script_name : "rexx", title, filename, extension); | 735 | + string rc; |
736 | + gchar * ptr = pw3270_file_chooser(action, script_name ? script_name : "rexx", title, filename, extension); | ||
735 | 737 | ||
736 | if(ptr) | 738 | if(ptr) |
737 | { | 739 | { |
738 | - string *s = new string((char *) ptr); | 740 | + rc.assign((char *) ptr); |
739 | g_free(ptr); | 741 | g_free(ptr); |
740 | - return s; | ||
741 | } | 742 | } |
742 | 743 | ||
743 | - return NULL; | 744 | + return rc; |
744 | } | 745 | } |
745 | 746 | ||
746 | int plugin::quit(void) | 747 | int plugin::quit(void) |
@@ -754,14 +755,14 @@ int plugin::set_host_charset(const char *charset) | @@ -754,14 +755,14 @@ int plugin::set_host_charset(const char *charset) | ||
754 | return lib3270_set_host_charset(hSession,charset); | 755 | return lib3270_set_host_charset(hSession,charset); |
755 | } | 756 | } |
756 | 757 | ||
757 | -string * plugin::get_host_charset(void) | 758 | +string plugin::get_host_charset(void) |
758 | { | 759 | { |
759 | - return new string(lib3270_get_host_charset(hSession)); | 760 | + return string(lib3270_get_host_charset(hSession)); |
760 | } | 761 | } |
761 | 762 | ||
762 | -string * plugin::get_display_charset(void) | 763 | +string plugin::get_display_charset(void) |
763 | { | 764 | { |
764 | - return new string(lib3270_get_display_charset(hSession)); | 765 | + return string(lib3270_get_display_charset(hSession)); |
765 | } | 766 | } |
766 | 767 | ||
767 | int plugin::erase_eof(void) | 768 | int plugin::erase_eof(void) |
src/plugins/rx3270/rexx_methods.cc
@@ -207,14 +207,8 @@ RexxMethod4(RexxStringObject, rx3270_method_get_text_at, CSELF, sessionPtr, int, | @@ -207,14 +207,8 @@ RexxMethod4(RexxStringObject, rx3270_method_get_text_at, CSELF, sessionPtr, int, | ||
207 | try | 207 | try |
208 | { | 208 | { |
209 | session * hSession = (session *) sessionPtr; | 209 | session * hSession = (session *) sessionPtr; |
210 | - string * str = hSession->get_string_at(row,col,sz); | ||
211 | - | ||
212 | - if(str) | ||
213 | - { | ||
214 | - RexxStringObject ret = context->String((CSTRING) str->c_str()); | ||
215 | - delete str; | ||
216 | - return ret; | ||
217 | - } | 210 | + string str = hSession->get_string_at(row,col,sz); |
211 | + return context->String((CSTRING) str.c_str()); | ||
218 | 212 | ||
219 | } | 213 | } |
220 | catch(std::exception &e) | 214 | catch(std::exception &e) |
@@ -363,12 +357,8 @@ RexxMethod4(logical_t, rx3270_method_test, CSELF, sessionPtr, CSTRING, key, int, | @@ -363,12 +357,8 @@ RexxMethod4(logical_t, rx3270_method_test, CSELF, sessionPtr, CSTRING, key, int, | ||
363 | 357 | ||
364 | if(hSession->is_ready()) | 358 | if(hSession->is_ready()) |
365 | { | 359 | { |
366 | - bool rc = false; | ||
367 | - string * str = hSession->get_string_at(row,col,strlen(key)); | ||
368 | - if(str) | ||
369 | - rc = (strcasecmp(str->c_str(),key) == 0); | ||
370 | - delete str; | ||
371 | - return rc; | 360 | + string str = hSession->get_string_at(row,col,strlen(key)); |
361 | + return (strcasecmp(str.c_str(),key) == 0); | ||
372 | } | 362 | } |
373 | 363 | ||
374 | } | 364 | } |
@@ -401,14 +391,8 @@ RexxMethod3(RexxStringObject, rx3270_method_get_text, CSELF, sessionPtr, OPTIONA | @@ -401,14 +391,8 @@ RexxMethod3(RexxStringObject, rx3270_method_get_text, CSELF, sessionPtr, OPTIONA | ||
401 | try | 391 | try |
402 | { | 392 | { |
403 | session * hSession = (session *) sessionPtr; | 393 | session * hSession = (session *) sessionPtr; |
404 | - string * str = hSession->get_string(baddr,sz > 0 ? sz : -1); | ||
405 | - | ||
406 | - if(str) | ||
407 | - { | ||
408 | - RexxStringObject ret = context->String((CSTRING) str->c_str()); | ||
409 | - delete str; | ||
410 | - return ret; | ||
411 | - } | 394 | + string str = hSession->get_string(baddr,sz > 0 ? sz : -1); |
395 | + return context->String((CSTRING) str.c_str()); | ||
412 | } | 396 | } |
413 | catch(std::exception &e) | 397 | catch(std::exception &e) |
414 | { | 398 | { |
@@ -452,14 +436,8 @@ RexxMethod1(RexxStringObject, rx3270_method_get_selection, CSELF, sessionPtr) | @@ -452,14 +436,8 @@ RexxMethod1(RexxStringObject, rx3270_method_get_selection, CSELF, sessionPtr) | ||
452 | { | 436 | { |
453 | try | 437 | try |
454 | { | 438 | { |
455 | - string *str = ((session *) sessionPtr)->get_copy(); | ||
456 | - | ||
457 | - if(str) | ||
458 | - { | ||
459 | - RexxStringObject ret = context->String((CSTRING) str->c_str()); | ||
460 | - delete str; | ||
461 | - return ret; | ||
462 | - } | 439 | + string str = ((session *) sessionPtr)->get_copy(); |
440 | + return context->String((CSTRING) str.c_str()); | ||
463 | 441 | ||
464 | } | 442 | } |
465 | catch(std::exception &e) | 443 | catch(std::exception &e) |
@@ -490,14 +468,8 @@ RexxMethod1(RexxStringObject, rx3270_method_get_clipboard, CSELF, sessionPtr) | @@ -490,14 +468,8 @@ RexxMethod1(RexxStringObject, rx3270_method_get_clipboard, CSELF, sessionPtr) | ||
490 | 468 | ||
491 | if(hSession) | 469 | if(hSession) |
492 | { | 470 | { |
493 | - string *str = hSession->get_clipboard(); | ||
494 | - | ||
495 | - if(str) | ||
496 | - { | ||
497 | - RexxStringObject ret = context->String((CSTRING) str->c_str()); | ||
498 | - delete str; | ||
499 | - return ret; | ||
500 | - } | 471 | + string str = hSession->get_clipboard(); |
472 | + return context->String((CSTRING) str.c_str()); | ||
501 | } | 473 | } |
502 | 474 | ||
503 | trace("%s","rx3270_method_get_clipboard: Clipboard is empty"); | 475 | trace("%s","rx3270_method_get_clipboard: Clipboard is empty"); |
@@ -560,7 +532,7 @@ RexxMethod5(RexxStringObject, rx3270_method_get_filename, CSELF, sessionPtr, CST | @@ -560,7 +532,7 @@ RexxMethod5(RexxStringObject, rx3270_method_get_filename, CSELF, sessionPtr, CST | ||
560 | }; | 532 | }; |
561 | 533 | ||
562 | GtkFileChooserAction id = GTK_FILE_CHOOSER_ACTION_OPEN; | 534 | GtkFileChooserAction id = GTK_FILE_CHOOSER_ACTION_OPEN; |
563 | - string * ret; | 535 | + string ret; |
564 | 536 | ||
565 | for(int f=0;f<5;f++) | 537 | for(int f=0;f<5;f++) |
566 | { | 538 | { |
@@ -572,14 +544,8 @@ RexxMethod5(RexxStringObject, rx3270_method_get_filename, CSELF, sessionPtr, CST | @@ -572,14 +544,8 @@ RexxMethod5(RexxStringObject, rx3270_method_get_filename, CSELF, sessionPtr, CST | ||
572 | } | 544 | } |
573 | 545 | ||
574 | ret = ((session *) sessionPtr)->file_chooser_dialog(id, title, extension,filename); | 546 | ret = ((session *) sessionPtr)->file_chooser_dialog(id, title, extension,filename); |
575 | - if(ret) | ||
576 | - { | ||
577 | - RexxStringObject obj = context->String(ret->c_str()); | ||
578 | - delete ret; | ||
579 | - return obj; | ||
580 | - } | ||
581 | 547 | ||
582 | - return context->String(""); | 548 | + return context->String(ret.c_str()); |
583 | } | 549 | } |
584 | 550 | ||
585 | RexxMethod2(int, rx3270_method_set_host_charset, CSELF, sessionPtr, CSTRING, text) | 551 | RexxMethod2(int, rx3270_method_set_host_charset, CSELF, sessionPtr, CSTRING, text) |
@@ -589,17 +555,13 @@ RexxMethod2(int, rx3270_method_set_host_charset, CSELF, sessionPtr, CSTRING, tex | @@ -589,17 +555,13 @@ RexxMethod2(int, rx3270_method_set_host_charset, CSELF, sessionPtr, CSTRING, tex | ||
589 | 555 | ||
590 | RexxMethod1(RexxStringObject, rx3270_method_get_host_charset, CSELF, sessionPtr) | 556 | RexxMethod1(RexxStringObject, rx3270_method_get_host_charset, CSELF, sessionPtr) |
591 | { | 557 | { |
592 | - string * ret = ((session *) sessionPtr)->get_host_charset(); | ||
593 | - RexxStringObject obj = context->String(ret->c_str()); | ||
594 | - delete ret; | ||
595 | - return obj; | 558 | + string ret = ((session *) sessionPtr)->get_host_charset(); |
559 | + return context->String(ret.c_str()); | ||
596 | } | 560 | } |
597 | 561 | ||
598 | RexxMethod1(RexxStringObject, rx3270_method_get_display_charset, CSELF, sessionPtr) | 562 | RexxMethod1(RexxStringObject, rx3270_method_get_display_charset, CSELF, sessionPtr) |
599 | { | 563 | { |
600 | - string * ret = ((session *) sessionPtr)->get_display_charset(); | ||
601 | - RexxStringObject obj = context->String(ret->c_str()); | ||
602 | - delete ret; | ||
603 | - return obj; | 564 | + string ret = ((session *) sessionPtr)->get_display_charset(); |
565 | + return context->String(ret.c_str()); | ||
604 | } | 566 | } |
605 | 567 |
src/plugins/rx3270/typed_routines.cc
@@ -150,14 +150,8 @@ RexxRoutine3(RexxStringObject, rx3270GetStringAt, int, row, int, col, int, sz) | @@ -150,14 +150,8 @@ RexxRoutine3(RexxStringObject, rx3270GetStringAt, int, row, int, col, int, sz) | ||
150 | { | 150 | { |
151 | try | 151 | try |
152 | { | 152 | { |
153 | - string *str = session::get_default()->get_string_at(row,col,(int) sz); | ||
154 | - | ||
155 | - if(str) | ||
156 | - { | ||
157 | - RexxStringObject ret = context->String((CSTRING) str->c_str()); | ||
158 | - delete str; | ||
159 | - return ret; | ||
160 | - } | 153 | + string str = session::get_default()->get_string_at(row,col,(int) sz); |
154 | + return context->String((CSTRING) str.c_str()); | ||
161 | } | 155 | } |
162 | catch(std::exception &e) | 156 | catch(std::exception &e) |
163 | { | 157 | { |