Archived

This forum has been archived. Please start a new discussion on GitHub.

slice2cppe metadata

Hi,

I'm currently working with IceStorm in WSN. I use an IceStorm server on a big box, and I wish to try and port it with IceE to run into a small MIPS.

The main problem is when I try this:
slice2cppe -I. -I /usr/share/slice --ice IceStormInternal.ice

The slice2cppe says:
IceStormInternal.ice:25: warning: ignoring invalid metadata `cpp:class'

Does not support metadata the slice2cpp? The thing is that later, compiling, it now says:

./IceStormInternal.h:152: error: ‘EventDataPtr’ is not a member of ‘IceStorm’

It 's like it would be middle parsed, because It looks for the smart pointer of the class EventData, which not exists!! what happend?

By the way, has anyone compiled IceStorm as a service with IceE?

Thanks in advance.

Comments

  • slice2cppe metadata, a change

    OK,

    The thing is that metadata has changed from slice2cpp to slice2cppe.
    In this case, you usually puts:

    ["cpp:class"]

    in Ice where you want a mapping for a class. However, in Ice-E, you should put only:

    ["class"]

    Or at least, I think so.
  • matthew
    matthew NL, Canada
    Sorry, you cannot compile the IceStorm service itself with IceE since, for reasons of size and efficiency IceE is missing several critical features used by the IceStorm service -- you can see a comparison at the following location: http://www.zeroc.com/icee/iceVsIceE.html.

    The metadata you are encountering problems with relates to how slice classes are mapped. Since IceE doesn't support object-by-value (ie: slice classes) it also does not support the metadata directive in question.
  • What a pity!

    Well, I see the metadata thing. Ok, is no problem.

    And... do you thing i could write a very simple implementation of IceStorm service? As far as it keeps the interfaces, it will be ok, it's not?

    Well, I'll do my best. Thanks a lot for your comment!
    Saludos.
  • matthew
    matthew NL, Canada
    Its certainly possible to write a simple version with the IceStorm interface. However, its not a trivial undertaking. I would first try the existing IceStorm service on your device to find out whether the overhead is too high.
  • Ok, I'll do that

    Ok.

    I'll try first the existing IceStorm. I'll tell you how it progress :-)
    Thanks a lot for your support.

    Best regards.
  • matthew
    matthew NL, Canada
    Actually, I was mistaken about the purpose of the metadata -- this metadata is used to trigger an alternative mapping that maps slice structs to C++ reference counted classes. This was never ported to IceE. However, the main impediment to porting IceStorm to IceE is the lack of support for Blobject. Without this there is no practical way to unmarshal the request and forward it transparently.