Commit e2d9880342519877d9232d91228f0cabc8871e63

Authored by Perry Werneck
1 parent 341b5f1c
Exists in master

Implementando classe VB.NET

Showing 2 changed files with 37 additions and 5 deletions   Show diff stats
src/native/network.cc
@@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
32 /*---[ Implement ]----------------------------------------------------------------------------------*/ 32 /*---[ Implement ]----------------------------------------------------------------------------------*/
33 33
34 int tn3270_connect(h3270::session *ses, const char *host, time_t wait) { 34 int tn3270_connect(h3270::session *ses, const char *host, time_t wait) {
  35 + debug("%s(%s,%d)",__FUNCTION__,host,(int) wait);
35 return ses->connect(host,wait); 36 return ses->connect(host,wait);
36 } 37 }
37 38
testprograms/vbclass.vb
@@ -49,7 +49,7 @@ Public Class pw3270 @@ -49,7 +49,7 @@ Public Class pw3270
49 End Function 49 End Function
50 50
51 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _ 51 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _
52 - Private Shared Function tn3270_connect(ByVal hSession As IntPtr, ByVal buffer As StringBuilder, ByVal seconds as Integer) as Integer 52 + Private Shared Function tn3270_connect(ByVal hSession As IntPtr, ByVal buffer As String, ByVal seconds as Integer) as Integer
53 End Function 53 End Function
54 54
55 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _ 55 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _
@@ -89,15 +89,15 @@ Public Class pw3270 @@ -89,15 +89,15 @@ Public Class pw3270
89 End Function 89 End Function
90 90
91 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _ 91 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _
92 - Private Shared Function tn3270_set_string_at(ByVal hSession As IntPtr, ByVal row as Integer, ByVal col as Integer, ByVal buffer As StringBuilder) as Integer 92 + Private Shared Function tn3270_set_string_at(ByVal hSession As IntPtr, ByVal row as Integer, ByVal col as Integer, ByVal buffer As String) as Integer
93 End Function 93 End Function
94 94
95 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _ 95 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _
96 - Private Shared Function tn3270_wait_for_string_at(ByVal hSession As IntPtr, ByVal row as Integer, ByVal col as Integer, ByVal key As StringBuilder, ByVal timeout as Integer) as Integer 96 + Private Shared Function tn3270_wait_for_string_at(ByVal hSession As IntPtr, ByVal row as Integer, ByVal col as Integer, ByVal key As String, ByVal timeout as Integer) as Integer
97 End Function 97 End Function
98 98
99 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _ 99 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _
100 - Private Shared Function tn3270_cmp_string_at(ByVal hSession As IntPtr, ByVal row as Integer, ByVal col as Integer, ByVal buffer As StringBuilder) as Integer 100 + Private Shared Function tn3270_cmp_string_at(ByVal hSession As IntPtr, ByVal row as Integer, ByVal col as Integer, ByVal buffer As String) as Integer
101 End Function 101 End Function
102 102
103 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _ 103 <DllImport("lib3270-mono", CallingConvention := CallingConvention.Cdecl)> _
@@ -130,6 +130,14 @@ Public Class pw3270 @@ -130,6 +130,14 @@ Public Class pw3270
130 hSession = tn3270_create_session(name) 130 hSession = tn3270_create_session(name)
131 End Sub 131 End Sub
132 132
  133 + Public Sub Connect(ByRef url as String, ByVal seconds as Integer)
  134 + tn3270_connect(hSession, url, seconds)
  135 + End Sub
  136 +
  137 + Public Sub Disconnect()
  138 + tn3270_disconnect(hSession)
  139 + End Sub
  140 +
133 Public Sub Finalize() 141 Public Sub Finalize()
134 tn3270_destroy_session(hSession) 142 tn3270_destroy_session(hSession)
135 End Sub 143 End Sub
@@ -150,6 +158,21 @@ Public Class pw3270 @@ -150,6 +158,21 @@ Public Class pw3270
150 End Get 158 End Get
151 End Property 159 End Property
152 160
  161 + Public ReadOnly Property Connected As Boolean
  162 + Get
  163 + return tn3270_is_connected(hSession)
  164 + End Get
  165 + End Property
  166 +
  167 + Public Function GetStringAt(ByVal row as Integer, ByVal col as Integer, ByVal strlen as Integer)
  168 + dim buffer As New StringBuilder(strlen)
  169 + tn3270_get_string_at(hSession, row, col, buffer, strlen)
  170 + return buffer.toString
  171 + End Function
  172 +
  173 + Public Sub WaitForReady(ByVal seconds as Integer)
  174 + tn3270_wait_for_ready(hSession, seconds)
  175 + End Sub
153 176
154 177
155 End Class 178 End Class
@@ -161,8 +184,16 @@ Public Module modmain @@ -161,8 +184,16 @@ Public Module modmain
161 184
162 dim host as new pw3270("") 185 dim host as new pw3270("")
163 186
164 - Console.WriteLine ("Using pw3270 version " + host.Version + " revision " + host.Revision) 187 + Console.WriteLine("Using pw3270 version " + host.Version + " revision " + host.Revision)
  188 +
  189 + host.Connect("tn3270://zos.efglobe.com:telnet",10)
  190 +
  191 + if host.Connected Then
  192 +
  193 + Console.WriteLine(host.GetStringAt(14,19,38))
165 194
  195 + host.Disconnect()
  196 + End If
166 197
167 End Sub 198 End Sub
168 199