Thilo Goetz wrote:
Marshall Schor wrote:
Current design has 1 instance of FsClassRegistry per Cas per View.

With the redesign going on for JCas we no longer need one per View.

We don't even need one per Cas. CASes in a pool, sharing the same type system, can share generators.

Anyone object if I change the impl to move the FSClassReg instance into the typeSystemImpl instance, since these can be shared by CASes (and I hope that they are when it's known the CASes are using the same type system - such as a Cas Pool - if they're not, please let me know).

The FsClassRegistry doesn't really belong in the type system impl.  I
would prefer it if we had a new object, e.g., CASMetaData, that holds
both the type system and class registry.  This might eventually also
hold the index meta data, if I finally do something about that.  A CAS
could then be created from such a meta data object, and the same meta
data can be used for many CASes (like we're now doing with the type
system).
Could this could be phased in later - or do you think it would be important to do now? I don't see a strong need to add this other new class, myself, but that could be because I haven't spent much time
thinking about this.

There are other things in the CAS impl that could be shared among different CASes sharing a type system. Some of them include the arrays: featureOffset, fsSpaceReq, and creatable Type. Moving these into the typeSystemImpl would compute these things once, when the type system was "locked". Do you think this is a good idea?

Methods like initTypeVariables and initTypeCodeVars also seem to belong to the typeSystemImpl - in that they could be run once, automatically, when the type system is "locked". Does this seem right?

Thanks. -Marshall

Reply via email to