The file and directory organization for TAO services can be confusing at first glance (and even on subsequent ones to be honest), so we felt like some rationale and explanation of the directory hierarchy was needed.
For general sanity all TAO services files are located under
$TAO_ROOT/orbsvcs
.
It is expected that clients use more
than one service at the same time
(in fact some of the services already do, for instance the
Event Service uses the Naming Service and the
Scheduling Service);
for this reason all the services stubs are grouped in one
library;
this library is located in
$TAO_ROOT/orbsvcs/orbsvcs
.
Usually the include path is only $TAO_ROOT/orbsvcs
,
so files are included like in:
#include "orbsvcs/CosNamingC.h"
To simplify the IDL generation the skeletons are also on the library, this is not a problem for client programs and most services need to link the library anyway (since they use other services.) Further, the current support for collocation requires that clients link the skeleton files also.
In the future we intend to use ACE Service Configurator to give
the users control over servant collocation.
As a first cut all the service implementations are included in the
orbsvcs library $TAO_ROOT/orbsvcs/orbsvcs
,
since there are serveral services and each one require several
files we have given a different directory to each service;
for instance Naming Service is in
$TAO_ROOT/orbsvcs/orbsvcs/Naming
.
This structure could also simplify a future split into several
libraries (if it proves necessary).
Please note that in this revision we still have a separate
binary for each service,
once the complete support for ACE Service Configurator is included
we will probably have a single server,
much like in $ACE_ROOT/netsvcs
.
Finally some test are located in
$TAO_ROOT/orbsvcs/tests
,
since most tests require several files each one has its own
directory.
You may you to check TAO release notes for up to date information on status, changes, future work, etc.