For background, I am using XDCtools 3.23.04.60.
Is there a good explanation somewhere of when methods and fields are accessible in the meta-domain versus target domain? Obviously, something tagged as "metaonly" will only be in the meta-domain, but I am confused about when (if ever) user-defined elements are visible in both domains.
For example, if I have an Interrupt.xdc that looks like this:
module Interrupt {
instance:
UInt eventId();
internal:
struct Instance_State {
UInt eventId;
}
}
And I then have code in my app.cfg that looks like this:
var obj = Interrupt.create(new Interrupt.Params());
var evtId = obj.eventId();
Building that fails because "obj" does not have a property named eventId -- even if I define a function of that name in Interrupt.xs. The same is true if I try to write Interrupt.eventId(obj). If I try to create a metaonly UInt eventId(), that fails because eventId() is already defined in the module.
SYS/BIOS seems to approach this by having metaonly functions with names like eventIdMeta(). Is that the only way to expose custom meta-domain functions, or is there some way to use the same names in the meta-domain as in the target domain?