Results 1 to 3 of 3

Thread: Is this a cross-platform/language problem ?

  1. #1
    rc_hz is offline Registered User
    Name: Eric RC
    Organization: www.genband.com
    Project: No project yet
    Join Date
    Jul 2004
    Location
    Hangzhou, China
    Posts
    189

    Is this a cross-platform/language problem ?

    If a server-side programmer uses java5 platform and he write a slice file which uses some java5 features such as generic, special collection:
    Code:
    #ifndef SIMPLETEST_ICE
    #define SIMPLETEST_ICE
    
    module Simpletest
    {
        ["java:type:java.util.LinkedList<String>:java.util.List<String>"]
        sequence<string> StringList;
    };                
    #endif
    Of course, the server-side programmer has no problem to use this slice file in java5 platform. Then he distributes this slice file to client-side programmer.


    However, the client-side programmer uses java2 platform instead of java5 platform, so he uses the following command to generate code:
    Code:
    slice2java --output-dir generated Simpletest.ice
    This generates two files: StringListHolder.java, StringListHelper.java. More details of StringListHolder.java is as follows:
    Code:
    //...
    public final class StringListHolder
    {
        public
        StringListHolder()
        {
        }
    
        public
        StringListHolder(java.util.List<String> value)
        {
    	this.value = value;
        }
    
        public java.util.List<String> value;
    }
    //...
    These two files can not be compiled in java2 platform. So is it a problem of cross-platform/language ? Maybe slice2java should be smarter so that it can generate different code in java2 platform. To do so, there is a need for the client-side programmer to pass some cue to slice2java.
    Eric RC
    www.genband.com (telecommunication)
    I like ICE (Ice for C++/Java/Python)

  2. #2
    matthew's Avatar
    matthew is offline ZeroC Staff
    Name: Matthew Newhook
    Organization: ZeroC, Inc.
    Project: Internet Communications Engine
    Join Date
    Feb 2003
    Location
    NL, Canada
    Posts
    1,458
    What goes on the wire in both cases is identical -- so there is no cross-platform/cross-language problem. What you are running into is using specific language meta-data changes the compiled definitions of the slice definitions. To solve this problem you can either use two sets of slice definitions with different pieces of meta-data, or you can use #ifdef to do this. Something like:

    Code:
    module Simpletest
    {
    #ifdef JAVA5
        ["java:type:java.util.LinkedList<String>:java.util.List<String>"]
    #endif
        sequence<string> StringList;
    };

  3. #3
    rc_hz is offline Registered User
    Name: Eric RC
    Organization: www.genband.com
    Project: No project yet
    Join Date
    Jul 2004
    Location
    Hangzhou, China
    Posts
    189
    To solve this problem you can either use two sets of slice definitions with different pieces of meta-data, or you can use #ifdef to do this.
    Yes, these are two solutions, but I think they are not the best! It's better if slice2java can solve this.
    Eric RC
    www.genband.com (telecommunication)
    I like ICE (Ice for C++/Java/Python)

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Cross platform and Language communication
    By abhimohpra in forum Help Center
    Replies: 2
    Last Post: 10-14-2010, 07:48 AM
  2. Which language mapping(s) do you use?
    By marc in forum Comments
    Replies: 12
    Last Post: 05-31-2006, 06:19 AM
  3. Problems with 3.0.1 cross-platform IceGrid
    By brian in forum Help Center
    Replies: 0
    Last Post: 02-17-2006, 02:04 PM
  4. Cross development
    By ahartveld in forum Help Center
    Replies: 0
    Last Post: 01-08-2004, 11:44 AM
  5. Replies: 1
    Last Post: 12-09-2003, 02:14 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •