/** ** ** MinCor-C# -Demo ** CORBA Solution for .Net with C# Language mapping ** Version: 1.0 ** ** Copyright: ** Middsol GmbH, Hamburg ** Germany 2004 ** www.Middsol.com ** info@Middsol.de ** */ using System; using System.Drawing; using System.Collections; using System.Windows.Forms; using System.Data; namespace DotNetClient { public class ClientImpl { private static string[] m_strORBInit = {"-ORBEndpoint iiop://localhost:8545/portspan=100", "-ORBInitRef NameService=corbaloc:iiop:1.2@localhost:10050/NameService", "-ORBDebug", "-AddAssembly DotNetClient.exe, JavaBuiltinTypesCF.dll, MinCorCF.dll" }; public static void runDemo( FrmClt a_oFrmClt, string a_strIpAddr) { Collections.Greetings oGreetings; Middsol.CORBA.ORB oOrb = null; m_strORBInit[1] = m_strORBInit[1].Replace("localhost", a_strIpAddr); try { oOrb = Middsol.CORBA._ORB.init( m_strORBInit, null); Middsol.CosNaming.NamingContextExt oNsCtx = Middsol.CosNaming.NamingContextExtHelper.narrow( oOrb.resolve_initial_references("NameService")); try { oGreetings = Collections.GreetingsHelper.narrow( oNsCtx.resolve_str("CollectionsJavaServer")); } catch(Middsol.CosNaming.NamingContextPackage.NotFound ex) { a_oFrmClt.writeLog( "NS Manager Error:" + ex.why); throw new System.Exception(); } newAddressList( a_oFrmClt, oGreetings); queryAddresses( a_oFrmClt, oGreetings); queryCustomers( a_oFrmClt, oGreetings); } catch( Middsol.CORBA.SystemException exSys) { a_oFrmClt.writeLog( "Catch Exception from Server (Middsol.CORBA.SystemException)."); a_oFrmClt.writeLog( "ID:" + exSys.ID); } finally { if( oOrb != null) oOrb.destroy(); } } private static void queryAddresses( FrmClt a_oFrmClt, Collections.Greetings m_oGreetings) { System.Collections.Hashtable oArray = m_oGreetings.queryAddresses(); a_oFrmClt.writeLog( "----Query Addresses (java.util.Hashtable)"); a_oFrmClt.writeLog( "ListLen:"+ oArray.Count); System.Collections.IDictionaryEnumerator oEnu = oArray.GetEnumerator(); while( oEnu.MoveNext()) { a_oFrmClt.writeLog( "Key:"+ oEnu.Key.ToString()); a_oFrmClt.writeLog( "ValueType:"+ oEnu.Value.GetType().ToString()); a_oFrmClt.writeLog( "Value:"+ oEnu.Value.ToString()); if( oEnu.Value is Collections.HomeAddrImpl) { Collections.HomeAddrImpl oHomeAddr = (Collections.HomeAddrImpl)oEnu.Value; a_oFrmClt.writeLog( "First Name:" + oHomeAddr.theFirstName()); a_oFrmClt.writeLog( "Last Name:" + oHomeAddr.theLastName()); a_oFrmClt.writeLog( "City:" + oHomeAddr.theCity()); a_oFrmClt.writeLog( "Zip:" + oHomeAddr.theZipCode()); } else if( oEnu.Value is Collections.CompanyAddrImpl) { Collections.CompanyAddrImpl oCompanyAddr = (Collections.CompanyAddrImpl)oEnu.Value; a_oFrmClt.writeLog( "Name:" + oCompanyAddr.theName()); a_oFrmClt.writeLog( "City:" + oCompanyAddr.theCity()); a_oFrmClt.writeLog( "Zip:" + oCompanyAddr.theZipCode()); } if( oEnu.Value is int) { int i = (int)oEnu.Value; a_oFrmClt.writeLog( "Integer:" + i); } if( oEnu.Value is short) { short i = (short)oEnu.Value; a_oFrmClt.writeLog( "Short:" + i); } if( oEnu.Value is char) { char i = (char)oEnu.Value; a_oFrmClt.writeLog( "char:"+ i); } if( oEnu.Value is double) { double i = (double)oEnu.Value; a_oFrmClt.writeLog( "Double:" + i); } if( oEnu.Value is float) { float i = (float)oEnu.Value; a_oFrmClt.writeLog( "Float:"+ i); } if( oEnu.Value is bool) { bool i = (bool)oEnu.Value; a_oFrmClt.writeLog( "Bool :"+ i); } if( oEnu.Value is byte) { byte i = (byte)oEnu.Value; a_oFrmClt.writeLog( "Byte:"+ i); } } } private static void queryCustomers( FrmClt a_oFrmClt, Collections.Greetings m_oGreetings) { System.Collections.ArrayList oArray = m_oGreetings.queryCustomers(); a_oFrmClt.writeLog( "----Query Customers ( ArrayList)"); a_oFrmClt.writeLog( "ListLen:"+ oArray.Count); System.Collections.IEnumerator oEnu = oArray.GetEnumerator(); while( oEnu.MoveNext()) { a_oFrmClt.writeLog( "ValueType:"+ oEnu.GetType().ToString()); a_oFrmClt.writeLog( "Value:"+ oEnu.ToString()); if( oEnu.Current is Collections.HomeAddrImpl) { Collections.HomeAddrImpl oHomeAddr = (Collections.HomeAddrImpl)oEnu.Current; a_oFrmClt.writeLog( "First Name:" + oHomeAddr.theFirstName()); a_oFrmClt.writeLog( "Last Name:" + oHomeAddr.theLastName()); a_oFrmClt.writeLog( "City:" + oHomeAddr.theCity()); a_oFrmClt.writeLog( "Zip:" + oHomeAddr.theZipCode()); } else if( oEnu.Current is Collections.CompanyAddrImpl) { Collections.CompanyAddrImpl oCompanyAddr = (Collections.CompanyAddrImpl)oEnu.Current; a_oFrmClt.writeLog( "Name:" + oCompanyAddr.theName()); a_oFrmClt.writeLog( "City:" + oCompanyAddr.theCity()); a_oFrmClt.writeLog( "Zip:" + oCompanyAddr.theZipCode()); } } } private static void newAddressList( FrmClt a_oFrmClt, Collections.Greetings m_oGreetings) { System.Collections.Hashtable oHash = new System.Collections.Hashtable(); a_oFrmClt.writeLog( "----Set new Addresslist (java.util.Hashtable)"); oHash = m_oGreetings.queryAddresses(); m_oGreetings.newAddressList( oHash); } } }