[omniORB] Proxy factory support?
Sai-Lai Lo
S.Lo@uk.research.att.com
30 Jan 2001 11:04:26 +0000
Indeed in pre-3.0 omniORB, there is a way for an application to control or
change the creation of proxy objects. This is somehow drop, including the
documentation, in the 3.0.0 release.
The function has been reinstated in 3.0.2 but the documentation is still
missing. Let me just fill in the blanks here:
1. As you have noted, to create "smart" proxy, firstly you have to generate
_objref_Foo classes with virtual methods. There is now an option to
the compiler backend: -Wbvirtual_objref to accomplish
this. Unfortunately, we haven't updated the usage output to document
this feature.
2. Write your own proxy object to inherit from _objref_Foo. You also have
to write your own proxy object factory to inherit from _pof_Foo.
3. Instantiate a single instance of your proxy object factory. The ORB will
then call your pof whenever it needs a proxy object of interface Foo.
The 2.8 manual has a more detail explanation. The class methods may be
different slightly.
Sai-Lai
>>>>> Chris Newbold writes:
> I was just starting to investigate creating "smart" proxies
> for some of our heavily-used objects to cache the values of
> read-only attributes on the client-side.
> At one point, there was a documented mechanism for creating
> and installing proxy factories in omniORB. However, in 3.0.2
> there is only passing mention of proxy factories in section
> 7.2 Basic Interface Type Checking; there is no discussion of
> how to implement proxy factories.
> Further, upon examining the generated code for object references
> (_objref_Foo) I note that none of the methods corresponding to
> the interface operations are declared virtual. This would seem
> to preclude deriving my own "smart" proxy implementation from the
> generated one.
> Are user-written proxy factories still supported? If so, is there
> any documentation?
--
Sai-Lai Lo S.Lo@uk.research.att.com
AT&T Laboratories Cambridge WWW: http://www.uk.research.att.com
24a Trumpington Street Tel: +44 1223 343000
Cambridge CB2 1QA Fax: +44 1223 313542
ENGLAND