CORBA IDL arrays as well as sequences will both be mapped into C# arrays. IDL structs result in C# structs.
Complex and constructed IDL data types may be declared within the scope of an interface.
According to the J-Integra® Espresso IDL-to-C# mapping, this will result in a separate namespace named '<interface>Package', containing these data types.
CORBA IDL array <---> C# array
CORBA IDL sequence <---> C# array
CORBA IDL struct <---> C# struct
module ListArray { interface Greetings { // IDL sequence with fixed size: typedef sequence |
public class GreetingsImpl: ListArray.GreetingsPOA { private ReligiousHoliday[] oTHolidayLst; public override void createGreetingsList( ListArray.GreetingsPackage.ReligiousHoliday[] _arHolidayLst ) { oTHolidayLst = _arHolidayLst; System.Console.WriteLine("get GreetingsList"); } public override ListArray.GreetingsPackage.Family[] hello( string _strHolidayName ) { for ( int iCnt = 0; iCnt < oTHolidayLst.Length; iCnt++ ) { if( oTHolidayLst[iCnt].strHolidayName == _strHolidayName) { return oTHolidayLst[iCnt].lstFamilys; } } return null; } } |
namespace ListArray { namespace GreetingsPackage { // [...] public struct Family: Ics.CORBA.portable.IDLEntity { public string strFamilyname; public string[] strName; public Family( string strFamilyname, string[] strName ) { this.strFamilyname = strFamilyname; this.strName = strName; } } // [...] public struct ReligiousHoliday: Ics.CORBA.portable.IDLEntity { public string strHolidayName; public ListArray.GreetingsPackage.Family[] lstFamilys; public ReligiousHoliday( string strHolidayName, ListArray.GreetingsPackage.Family[] lstFamilys ) { this.strHolidayName = strHolidayName; this.lstFamilys = lstFamilys; } } public struct maxReligiousHolidays: Ics.CORBA.portable.IDLEntity { public const int value = 2; } } } |
ReligiousHoliday[] oTHolidayLst = new ReligiousHoliday[maxReligiousHolidays.value]; // Add christmas oTHolidayLst[0].strHolidayName = "Christmas"; oTHolidayLst[0].lstFamilys = new Family[2]; // Family Mayer String[] strFirstNamesMayer = {"Hans", "Anna", "Fred"}; oTHolidayLst[0].lstFamilys[0] = new Family( "Mayer", strFirstNamesMayer); // Family Schmidt String[] strFirstNamesSchmidt = {"Klaus", "Sofie", "Jesse", "Andre"}; oTHolidayLst[0].lstFamilys[1] = new Family( "Schmidt", strFirstNamesSchmidt); // Add eastern oTHolidayLst[1].strHolidayName = "Eastern"; oTHolidayLst[1].lstFamilys = new Family[3]; // Family Mayer oTHolidayLst[1].lstFamilys[0] = new Family( "Mayer", strFirstNamesMayer); // Family Schmidt oTHolidayLst[1].lstFamilys[1] = new Family( "Schmidt", strFirstNamesSchmidt); // Family Fischer String[] strFirstNamesFischer = {"Lory", "Dave", "Meike"}; oTHolidayLst[1].lstFamilys[2] = new Family( "Fischer", strFirstNamesFischer); // Set HolidayList m_oIGreetings.createGreetingsList( oTHolidayLst); |
Family[] oFamily = m_oIGreetings.hello( a_strHoliday); Console.WriteLine("\n\n\nGreetings to {0} for:", a_strHoliday); if( oFamily == null) { Console.WriteLine("No one to sent greetings to"); return; } for( int iCnt = 0; iCnt < oFamily.Length; iCnt++) { Console.Write("\n\tFamily:{0} To ", oFamily[iCnt].strFamilyname); foreach( string strFNam in oFamily[iCnt].strName) { Console.Write("{0} ", strFNam); } } |
a.) Start the Server.
b.) Start the Client.