Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://rtm-cs.sinp.msu.ru/manual/mico/doc/node27.html
Дата изменения: Mon Jun 7 21:54:58 1999 Дата индексирования: Mon Oct 1 21:21:39 2012 Кодировка: |
The implementation repository is the place where information about an object implementation (also known as server) is stored. The CORBA 2 specification gives you only an idea what the implementation repository is for, but does not specify the interface to it. So the design of the implementation repository is MICO specific. Here is the IDL for MICO's implementation repository:
1: module CORBA {
2: /*
3: * Implementation Repository Entry
4: */
5: interface ImplementationDef {
6:
7: enum ActivationMode {
8: ActivateShared, ActivateUnshared,
9: ActivatePerMethod,
10: ActivatePersistent,
11: ActivateLibrary
12: };
13:
14: typedef sequence<string> RepoIdList;
15:
16: attribute ActivationMode mode;
17: attribute RepoIdList repoids;
18: readonly attribute string name;
19: attribute string command;
20: };
21:
22: /*
23: * Implementation Repository
24: */
25: interface ImplRepository {
26: typedef sequence<ImplementationDef> ImplDefSeq;
27:
28: ImplementationDef create (...);
29: void destroy (in ImplementationDef impl_def);
30: ImplDefSeq find_by_name (in string name);
31: ImplDefSeq find_by_repoid (in string repoid);
32: ImplDefSeq find_all ();
33: };
34: };
Interface ImplRepository
defined in lines 25-33 is the
implementation repository itself. It contains methods for creating,
destroying and finding entries. An implementation repository entry is defined
by interface ImplementationDef
in lines 5-20. There is exactly one
entry for each server which contains
for the sever. The name uniquely identifies the server. The activation mode tells the BOA whether the server should be activated once (shared server), once for each object instance (unshared server), once for each method invocation (per method server), or not at all (persistent server). See section 4.3.4 for details on activation modes. The shell command is executed by the BOA whenever the server has to be (re)started. Activation mode library is used for loading servers into the same process as the client during runtime. Instead of a shell command you have to specify the path of the loadable server module for library activation mode. Finally there is a repository id for each IDL interface implemented by the server. See section 3.3.3 for details on repository ids.
If you have written a server that should be activated by the BOA daemon
when its service is requested you have to create an entry for that server.
This can be accomplished by using the program imr
. imr
can be
used to list all entries in the implementation repository, to show detailed
information for one entry, to create a new entry, and to delete an entry.
The implementation repository is selected by the -ORBImplRepoAddr
or -ORBImplRepoIOR
options, which you usually put into your
.micorc
file.