Hi Kay,
thanks for the answer, that helps me partially. 

My detailed question is:
I am sitting on the client side, the server is an ooo process with the 
urp/urtp bridge started on a socket. I query an Interface and get an object 
and a cache_index for the object back as well as as a type_class, type_cache 
index and interface_name for the type. After some method calls on that 
object, I don't need it any more.

An Example: I query interface com.sun.star.uno.Xinterface and get back:
oid: 24f56f548[gcc3];9f7e645555
object_cache_index: 1
type_class: INTERFACE
type_cache_index:2
interface_name: com.sun.star.uno.XInterface

Is it now correct to force a release call from the client with the object_id 
empty and the object_cache_index = 1, type_class = INTERAFCE and 
type_cache_index:2
to destroy the object 24f56f548[gcc3];9f7e645555 and the type cache entry for 
com.sun.star.uno.XInterface?
Arnulf

Am Montag, 11. Juli 2005 17:37 schrieb Kay Ramme - Sun Germany - Hamburg:
> Arnulf,
>
> life cycle for remote objects is in principal not different compared to
> local objects. All UNO objects are reference counted. If the reference
> drops to zero, the object destructs itself.
>
> During a remote calls, objects become passed to the other processes. We
> only need to differentiate between
> -1- objects as results
> -2- objects as parameters for synchronous calls
> -3- objects as parameters for asynchronous (oneway) calls
>
> -1-: If a method returns an object, the callee must acquire the object
> before passing it back. If such a method becomes called asynchronously,
> the object must be released by the bridge.
>
> -2-: The object passed must already be acquired. The caller needs to
> acquire the object only, if it somehow copies a reference.
>
> -3-: The calling bridge must acquire the object before sending the call.
> The remote bridge must send a release call, after the asynchronous call
> has been executed.
>
> If I remember correctly, the current implementations acquire passed
> objects before every call and pass release calls for these as in -3-,
> mainly for simplicity reasons. This is not as worse as it sounds,
> because release calls A) get accumulated and send as a burst, and B) are
> asynchronous anyway.
>
> Remote bridges are reference counted as well and automatically destruct
> themselves at the moment the last mapped object gets unmapped, allowing
> transparent breakup of remote connections.
>
>
> Hope that helps
>
> Kay
>
> Arnulf Wiedemann wrote:
> > Hi,
> > I am looking for detailed information on what is happening, if I send a
> > release call to the urp bridge. Especially how do I release local and
> > remote objects and types (do I just set the appropriate header flags and
> > put the type and/or object info into the message body, do I have to
> > release the remote types/objects at all?) and how can I be sure that the
> > desired release has worked, as the release call is a one_way call. Any
> > info or link to docu is appreciated.
> > Arnulf
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to