Commit 972dc709cc642ff543bc8cc6bb6cf9e72e1a2120

Authored by Perry Werneck
1 parent 07b92b46

Ajustando plugin rexx para o novo formato

src/include/pw3270/class.h
... ... @@ -130,6 +130,7 @@
130 130 static session * start(const char *name = 0);
131 131 static session * create(const char *name = 0) throw (std::exception);
132 132 static session * create_local(H3270 *hSession) throw (std::exception);
  133 + static session * create_local() throw (std::exception);
133 134  
134 135 static session * get_default(void);
135 136 static bool has_default(void);
... ... @@ -273,7 +274,6 @@
273 274 static session * (*factory)(const char *name);
274 275  
275 276 static session * create_remote(const char *name) throw (std::exception);
276   - static session * create_local(void) throw (std::exception);
277 277  
278 278 #ifdef HAVE_ICONV
279 279 iconv_t conv2Local;
... ...
src/plugins/rx3270/pluginmain.cc
... ... @@ -395,10 +395,6 @@ extern "C"
395 395  
396 396 /*--[ Implement ]------------------------------------------------------------------------------------*/
397 397  
398   - static session * factory(const char *name)
399   - {
400   - return session::create_local(lib3270_get_default_session_handle());
401   - }
402 398  
403 399 LIB3270_EXPORT int pw3270_plugin_start(GtkWidget *window, GtkWidget *terminal)
404 400 {
... ... @@ -407,7 +403,7 @@ extern "C"
407 403 g_mutex_init(&mutex);
408 404 #endif // GTK_CHECK_VERSION
409 405  
410   - rx3270_set_factory_method(factory);
  406 + rx3270_set_session(lib3270_get_default_session_handle());
411 407  
412 408 return 0;
413 409 }
... ...
src/plugins/rx3270/rx3270.h
... ... @@ -151,7 +151,7 @@
151 151 #endif
152 152  
153 153 LIB3270_EXPORT void rx3270_set_package_option(RexxOption *option);
154   - LIB3270_EXPORT void rx3270_set_factory_method(PW3270_NAMESPACE::session * (*)(const char *));
  154 + LIB3270_EXPORT void rx3270_set_session(H3270 *hSession);
155 155  
156 156 #ifdef __cplusplus
157 157 }
... ...
src/plugins/rx3270/rxapimain.cc
... ... @@ -47,10 +47,21 @@
47 47  
48 48 /*--[ Globals ]--------------------------------------------------------------------------------------*/
49 49  
  50 + static H3270 * default_session = NULL;
  51 +
50 52 /*--[ Implement ]------------------------------------------------------------------------------------*/
51 53  
52   -void rx3270_set_factory_method(PW3270_NAMESPACE::session * (* factory)(const char *))
  54 +static PW3270_NAMESPACE::session * factory(const char *name)
  55 +{
  56 + if(!default_session)
  57 + return PW3270_NAMESPACE::session::create_local();
  58 +
  59 + return PW3270_NAMESPACE::session::create_local(default_session);
  60 +}
  61 +
  62 +void rx3270_set_session(H3270 *session)
53 63 {
  64 + default_session = session;
54 65 PW3270_NAMESPACE::session::set_plugin(factory);
55 66 }
56 67  
... ...