[erlang-questions] Orber: struct IFR id not found

Niclas Eklund nick@REDACTED
Fri Dec 15 09:37:16 CET 2006


The IFR (Interface Repository) contains information that Orber needs to be
able to decode some data types, i.e. map an IFR id to the correct Erlang
record (struct, union etc). Using light IFR most operations exported from
the module 'orber_ifr' can no longer be used, but on the other hand, it's
not common that one needs to traverse the contents in the IFR in a user
application. Hence, if the IFR is not explicitly used and the Light IFR
flag is set, Orber will use a minimal IFR to reduce memory usage (lodaded
code and data stored in Mnesia) and installation time.

Note, Light IFR and Lightweight Orber is *not* the same thing. The current
implementation of Lightweight Orber is rather blunt (was added before the
IFR was improved). With the new IFR and changes in IC, it's now possible
to create a proper lightweight Orber.


On Wed, 13 Dec 2006, Dominic Williams wrote:

> Hi Nick,
> > You need to register the module in the IFR
> Thanks, that did the trick. Interesting that I got by so far without
> registering!
> > I recommend that you use the IC compile flag 'light_ifr' and activate
> > Light IFR when starting Orber. On the server side you can change the code
> > to ({flags, 16#0080} activates light IFR):
> OK, but I'd like to understand what I'm doing. What is the lightweight IFR,
> and what are the consequences of using it? From the documentation I thought
> it might apply to the client side, but where's the motivation? And what
> does that
> server-side flag mean? The documentation says you can't create local objects
> with a lightweight IFR, so I didn't think it applied to servers...
> Regards,
> Dominic Williams
> http://www.dominicwilliams.net
> ----

More information about the erlang-questions mailing list