[interfacekit] Re: Fwd: Preliminary registrar info

On Mon, 10 Jun 2002, Erik Jaesler wrote:

> >The registrar has 3 threads - main_mime, timer_thread, and 
> _roster_thread_, 
> >which most likely handle their namesake tasks. Interestingly enough, 
> the 
> >application-related stuff is not quite a BApplication, but not quite 
> _not_ a 
> >BApplication. Most BApplications have an AppLooperPort along with snd 
> and rcv 
> >ports. The registrar doesn't. Instead, it has somehow made its 
> AppLooperPort 
> >into  _roster_port_ whilst keeping the other two. It does have its own 
> shadow 
> >app in the app_server, so it must otherwise be a BApplication. Perhaps 
> it has 
> >a private copy of BApplication and sets its port name that way? Just a 
> few 
> >thoughts...
> 
> It seems to me that the easiest way for this to happen is if 
> BApplication checks to see if it is the roster and names its port 
> accordingly.  In fact, this is probably the *only* way to do it, since 
> the port_id is private (to BLooper, which BApplication is a friend of) 
> and you can't rename a port after it's been created.

The only thing I don't understand about it is why?
Oh, wait a second, probably I have an idea: The registrar implements the
roster functionality and thus one can't address it using the app signature
constructor of BMessenger, but rather has to send the message directly to
a named port. Right?

CU, Ingo

PS: Does anyone know how to get the port id and token from a BMessenger.
    For the BQuery implementation I used a pretty dirty hack. I guess, it
    must have to do something with the friend class _TRoster_.


Other related posts: