source: trunk/third/oaf/docs/oaf-regloc.txt @ 15503

Revision 15503, 2.5 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r15502, which included commits to RCS files with non-trunk default branches.
Line 
1*** This is a detail of OAF internals. You do not need to know this information
2in order to write programs that use the OAF API. ***
3
4This whole setup is to allow finding objects that give us initial
5entry to a universe of CORBA objects. The references to these initial
6objects must be bootstrapped out of thin air, so we use well-known
7locations to check if they are running and to make their existence
8known when started.
9
10OAFRegistrationCategory:
11        Attributes that an initial object needs to have.
12
13        'name' is the repo ID of the object that would need
14        bootstrapping - IOW the object type. Currently this would be
15        either IDL:OAF/ActivationContext:1.0 or IDL
16
17        'session_name' is to allow things like two different OD's on the same
18        user/host/domain for different $DISPLAY.
19
20        'username', 'hostname' - in the traditional UNIX sense.
21
22        'domain' - I think this was supposed to work like 'session_name'.
23        So broken and confusing - need to run through the usage in some
24        sample cases to get it right.
25
26OAFRegistrationLocation:
27        Provides the implementation of a "well-known location". liboaf comes
28        with one that looks in local files in /tmp/orbit-sopwith. gnome-libs
29        HEAD has one that looks at a root window property.
30
31OAFServiceActivator: A function that can get called to start an
32initial object if it can't be found by any of the
33OAFRegistrationLocations. gnome-libs defines one of these that tries
34to start oafd on a remote machine via rsh/ssh, but I think I forgot to
35write the accompanying OAFRegistrationLocation that checks for an
36existing one. Or something like that.
37
38OAF handles multiple OAFRegistrationLocations and OAFServiceActivators
39internally.
40
41BUGS:
42
43. You really want to be able to do things like use the
44ActivationContext listed on $DISPLAY even if you aren't in a GUI
45program, or be able to have remote ObjectDirectorys activated even in
46a local non-gnome-libs-HEAD program. The only solution that has
47presented itself so far is to install a shared library for each
48regloc/serviceactivator, then have liboaf run a small program that
49checks all the reglocs and returns the object requested. This is
50slow. This would also have problems if the non-GUI program was run as
51a daemon or something else (e.g. what if you have a BIFF-like program
52that gets run from procmailrc and tries to talk to Your Favorite Mail
53Check Program? $DISPLAY won't be set for /usr/bin/corbabiff)
54
55. Yes, the naming really sucks, but people writing OAF-using programs
56don't have to use this API so it's not too bad.
57
58- ECL
Note: See TracBrowser for help on using the repository browser.