Results 1 to 6 of 6

Thread: Helper Classes not Generated

  1. #1
    zhi
    zhi is offline Registered User
    Name: Zhi Quan Lee
    Organization: University of Auckland
    Project: Dynamic Reconfiguration with Correctness Assurance
    Join Date
    Nov 2006
    Location
    Auckland
    Posts
    32

    Helper Classes not Generated

    Hi, I'm trying to follow the streaming example to use streaming in my application. However, the helper class needed to perform this operation - KodkodModelHelper.write(out, c)) is not generated.

    Code:
    #ifndef INVOKE_ICE
    #define INVOKE_ICE
    
    module OpenRec2 {
    	exception PrintFailure	{
    	    string reason;
    	};
    	class KodkodModel {
    		void solve();
    	};
    
    #endif
    The generated classes are:
    KodkodModel, KodkodModelHolder, KodkodModelPrx, KodkodModelPrxHelper and KodkodModelPrxHolder but there is no KodkodModelHelper.

    Is there something I missed in the SLICE descriptor?

    Here is the code for KodkodModel.java:
    Code:
    // **********************************************************************
    //
    // Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved.
    //
    // This copy of Ice is licensed to you under the terms described in the
    // ICE_LICENSE file included in this distribution.
    //
    // **********************************************************************
    
    // Ice version 3.1.1
    
    package OpenRec2;
    
    public abstract class KodkodModel extends Ice.ObjectImpl
    				  implements _KodkodModelOperations,
    					     _KodkodModelOperationsNC
    {
        public static final String[] __ids =
        {
    	"::Ice::Object",
    	"::OpenRec2::KodkodModel"
        };
    
        public boolean
        ice_isA(String s)
        {
    	return java.util.Arrays.binarySearch(__ids, s) >= 0;
        }
    
        public boolean
        ice_isA(String s, Ice.Current __current)
        {
    	return java.util.Arrays.binarySearch(__ids, s) >= 0;
        }
    
        public String[]
        ice_ids()
        {
    	return __ids;
        }
    
        public String[]
        ice_ids(Ice.Current __current)
        {
    	return __ids;
        }
    
        public String
        ice_id()
        {
    	return __ids[1];
        }
    
        public String
        ice_id(Ice.Current __current)
        {
    	return __ids[1];
        }
    
        public static String
        ice_staticId()
        {
    	return __ids[1];
        }
    
        public final void
        solve()
        {
    	solve(null);
        }
    
        public static IceInternal.DispatchStatus
        ___solve(KodkodModel __obj, IceInternal.Incoming __inS, Ice.Current __current)
        {
    	__checkMode(Ice.OperationMode.Normal, __current.mode);
    	__obj.solve(__current);
    	return IceInternal.DispatchStatus.DispatchOK;
        }
    
        private final static String[] __all =
        {
    	"ice_id",
    	"ice_ids",
    	"ice_isA",
    	"ice_ping",
    	"solve"
        };
    
        public IceInternal.DispatchStatus
        __dispatch(IceInternal.Incoming in, Ice.Current __current)
        {
    	int pos = java.util.Arrays.binarySearch(__all, __current.operation);
    	if(pos < 0)
    	{
    	    return IceInternal.DispatchStatus.DispatchOperationNotExist;
    	}
    
    	switch(pos)
    	{
    	    case 0:
    	    {
    		return ___ice_id(this, in, __current);
    	    }
    	    case 1:
    	    {
    		return ___ice_ids(this, in, __current);
    	    }
    	    case 2:
    	    {
    		return ___ice_isA(this, in, __current);
    	    }
    	    case 3:
    	    {
    		return ___ice_ping(this, in, __current);
    	    }
    	    case 4:
    	    {
    		return ___solve(this, in, __current);
    	    }
    	}
    
    	assert(false);
    	return IceInternal.DispatchStatus.DispatchOperationNotExist;
        }
    
        public void
        __write(IceInternal.BasicStream __os)
        {
    	__os.writeTypeId(ice_staticId());
    	__os.startWriteSlice();
    	__os.endWriteSlice();
    	super.__write(__os);
        }
    
        public void
        __read(IceInternal.BasicStream __is, boolean __rid)
        {
    	if(__rid)
    	{
    	    __is.readTypeId();
    	}
    	__is.startReadSlice();
    	__is.endReadSlice();
    	super.__read(__is, true);
        }
    
        public void
        __write(Ice.OutputStream __outS)
        {
    	Ice.MarshalException ex = new Ice.MarshalException();
    	ex.reason = "type OpenRec2::KodkodModel was not generated with stream support";
    	throw ex;
        }
    
        public void
        __read(Ice.InputStream __inS, boolean __rid)
        {
    	Ice.MarshalException ex = new Ice.MarshalException();
    	ex.reason = "type OpenRec2::KodkodModel was not generated with stream support";
    	throw ex;
        }
    }
    Zhi Quan Lee
    University of Auckland
    Department of Electrical and Computer Engineering
    http://se.auckland.ac.nz

    Project: An Integrated Automated Framework for Managing Dynamic Reconfiguration

    Supervised by Dr. Ian Warren and Dr. Jing Sun.

    With respect to their paper: http://csdl2.computer.org/persagen/D...09/ASE.2006.12

    Homepage:
    http://zhi-lee.com

  2. #2
    mes's Avatar
    mes
    mes is online now ZeroC Staff
    Name: Mark Spruiell
    Organization: ZeroC, Inc.
    Project: Ice Developer
    Join Date
    Feb 2003
    Location
    California
    Posts
    1,441
    Hi,

    An instance of a Slice class is marshaled using OutputStream.writeObject.

    Take care,
    - Mark

  3. #3
    zhi
    zhi is offline Registered User
    Name: Zhi Quan Lee
    Organization: University of Auckland
    Project: Dynamic Reconfiguration with Correctness Assurance
    Join Date
    Nov 2006
    Location
    Auckland
    Posts
    32
    How do I demarshall it from the stream if I don't want to use in.readObject() as I prefer not to use callback objects. It's just a simple object that needs to be passed across the stream.
    Zhi Quan Lee
    University of Auckland
    Department of Electrical and Computer Engineering
    http://se.auckland.ac.nz

    Project: An Integrated Automated Framework for Managing Dynamic Reconfiguration

    Supervised by Dr. Ian Warren and Dr. Jing Sun.

    With respect to their paper: http://csdl2.computer.org/persagen/D...09/ASE.2006.12

    Homepage:
    http://zhi-lee.com

  4. #4
    michi's Avatar
    michi is offline Registered User
    Name: Michi Henning
    Organization: Triodia Technologies
    Project: I have a passing interest in Ice :-)
    Join Date
    Feb 2003
    Location
    Brisbane, Australia
    Posts
    1,055
    There is no other way to unmarshal class instances. The reason is the way classes are marshaled. (See the Ice Protocol chapter in the doc for details.)

    Cheers,

    Michi.

  5. #5
    zhi
    zhi is offline Registered User
    Name: Zhi Quan Lee
    Organization: University of Auckland
    Project: Dynamic Reconfiguration with Correctness Assurance
    Join Date
    Nov 2006
    Location
    Auckland
    Posts
    32
    Thanks. Perhaps you can tell me how the following CHelper class was generated as with the bundled Printer example?

    From PrinterI.java:
    Code:
     Demo.CHolder c = new Demo.CHolder();
                Demo.CHelper.read(in, c);
                in.readPendingObjects();
                in.destroy();
                System.out.println("Printing class: s.name=" + c.value.s.name + ", s.value=" + c.value.s.value);
    This is exactly what I want to do.
    Zhi Quan Lee
    University of Auckland
    Department of Electrical and Computer Engineering
    http://se.auckland.ac.nz

    Project: An Integrated Automated Framework for Managing Dynamic Reconfiguration

    Supervised by Dr. Ian Warren and Dr. Jing Sun.

    With respect to their paper: http://csdl2.computer.org/persagen/D...09/ASE.2006.12

    Homepage:
    http://zhi-lee.com

  6. #6
    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
    Pass --stream to the slice2java compiler. See 35.2.2 in the Ice manual.

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. eclipse gives warning about slice generated classes
    By ctennis in forum Bug Reports
    Replies: 2
    Last Post: 05-02-2007, 05:36 PM
  2. Replies: 1
    Last Post: 08-07-2005, 07:00 PM
  3. C#: Attributes with Ice generated classes and structs
    By DeepDiver in forum Help Center
    Replies: 2
    Last Post: 07-23-2005, 02:16 AM
  4. Generated Java Helper class has errors
    By ygarbourg in forum Help Center
    Replies: 2
    Last Post: 05-06-2005, 02:13 PM
  5. Replies: 1
    Last Post: 01-25-2005, 07:30 AM

Posting Permissions

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