The ACE Library
Adaptive Communication Environment (ACE; http://www.cs.wustl.edu/~schmidt/ACE.html) is a C++ open-source software middleware toolkit created to support network programming and performance-driven systems across a wide range of platforms. ACE provides many basic patterns in areas such as: multithreading, networking, memory management, and the like. The ACE library employs a wrapper façade design that allows applications to use ACE interfaces that encapsulate and enhance the native OS concurrency, communication, memory management, event demultiplexing, dynamic linking, and file system APIs. Applications can access this functionality by selectively inheriting, aggregating, and instantiating components.
By encapsulating lower level operating system APIs, ACE supports a broad range of platforms. A word of caution: One criticism of the ACE library has been that, given the wide range of platforms, only the lowest common denominator of system capabilities are sometimes supporteddo your homework when considering incorporating the ACE library into your future project. For purposes here, ACE provides a framework that enables portability with a minimum of code rework on the implementers part.
M.L.