[Ace-users] Re: Getting started with ACE (noobish)

Evan Carew carew at pobox.com
Wed Jul 11 08:34:14 CDT 2007

Hash: SHA1


jims wrote:
> I am embarking upon the development of some new server apps and have
> been looking at ACE to use for certain components -- thread pools,
> shared memory, and a couple of others.
> I know that the "Software Development Guidelines" suggest using the
> ACE equivalents for things like main ie ACE_TMAIN, etc. for
> portability purposes.  However, if I am not concerned about
> portability of things like strings / etc.  Is there any downside to
> using ACE in a piecemeal fashion?  I don't mean this in a design /
> patterns way, but more in a straightforward code usage way.
The cool thing about the ACE library is that Doug managed to abstract
out OS issues, increase library usability (in some key areas), and
integrate ACE into the TAO framework. The problem with ACE is that is
you just want to use it because you are programming on a common platform
and don't care about portability, you're on your own. That being said, I
did recently see some woman's server code implemented on Linux that was
quite elegant. She had managed to use just those pieces of ACE which
made the usual code both readable and short. The bummer is that for the
life of me, I can't find my way back to that wiki site.

My experience with the usual sources of decent documentation for the use
of ACE, "C++ Network Programming V1 & 2", is that it is written with the
understanding that the usual programmer is writing with portability in
mind. In my experience, since you are using ACE to develop client server
applications, portability usually isn't an issue as the server is
designed to go on one platform, and the client on another. And of
course, if you are using ACE+TAO to do CORBA, then portability simply
isn't a consideration because all of that code is under the management
of the IDL compiler anyway.

I guess this is a long way of saying that you are going to have to do
what the rest of us do and slog through the examples to see how it is
done in a portable way, then read the relevant source files to see what
shortcuts you can take. Neither the DOxygen code source references, nor
the printed documentation mentioned above will be of much use in the
latter case, just the source. One hopes that if you come up with some
decent and elegant ways to use the base ACE library for network
programming, you will be good enough to share it on one of the many wiki
sites under some title designed to show up in a Google search.

Evan Carew
Version: GnuPG v1.4.1 (GNU/Linux)


More information about the Ace-users mailing list