I'm refamiliarizing myself with the mapping specification, and after looking
at omniORBpy, I've a few questions.
First, for interfaces that are not encompassed in modules, I notice that
you use a _GlobalIDL module. I didn't see this point addressed in the
mapping specification, so I assume this is a solution specific to omniORBpy?
The way I would want to approach the problem is to use the same scoping
rules as regular modules. So,
interface Echo {
// ...
};
I would favor simply:
import Echo
I'm not sure if you chose to use _GlobalIDL because of complexities in
implementing it this way, or if there are good reasons not to do it this
way that I can't think of. I thought it'd be best to ask you first. :)
Also, the specification seems a little vague about inheritance vs.
delegation. In particular, I'm not sure if implementing interfaces
through inheritance is required while delegation is optional, or if you
can get away with one or the other (or both). I chose delegation because
inheritance was just too tricky. Deriving a class object created from C
is impossible, and achieving that functionality would require using something
like Jim Fulton's ExtensionClass. Delegation was the clear winner for the
dynamic IDL approach I took. So, if I want to adhere to the specifications,
is implementation through inheritance required, strongly recommended, or
optional?
Thanks,
Jason.
|