neo Namespace Reference

This is neoclassic -- the classic::gov::cca headers updated to be similar to the official CCA specification in sidl while retaining the low impact on component coding that the classic specification had. More...


Namespaces

namespace  cca
namespace  support


Detailed Description

This is neoclassic -- the classic::gov::cca headers updated to be similar to the official CCA specification in sidl while retaining the low impact on component coding that the classic specification had.

The namespace for it is neo::cca to reduce the repetitive stress injuries on cca code writers.

The goal here is two-part: 1. Minimize the intrusion of our chosen memory technique (using boost shared_ptr.hpp) on science component writers. That is, the most common user objects (Component, Port, Services) are simply virtual interfaces and have strict life-cycle rules so that reference counting is not needed and not inflicted on the component-writer's code.

2. Make a standards-based ( STL+boost ) memory-safe interface for folks who want a simple "interfaces only" C++ binding for CCA components instead of using a heavyweight, multilanguage middleware. There are many exotic little objects in framework-related service Ports that must be reference counted.

We have chosen the boost::shared_ptr as the least annoying solution in the open-standards c++ world. Component writers accessing these (mostly little used) framework services may encounter shared_ptr. They should consult doc/README-memory.txt for tips on sensible usage.

Largely the names used are the same as in the classic version to reduce editing needed when converting to neo from classic. In a most cases, return codes nobody was checking anyway have been converted to exception throwing per the SIDL spec. A concrete exception class implementing the std::exception is thrown. A component may not support both classic and neo specifications in the same compilation, due to c++ overloading rules. It's possible, with appropriate ifdef, to build either kind of component from the same source files, but why bother?


Generated on Mon Sep 14 18:33:37 2009 for NEOCCA bindings Specification by  doxygen 1.5.9