NEOCCA bindings Specification
0.2.8
|
Namespaces | |
namespace | ports |
Classes | |
class | AbstractFramework |
Memory lifecycle: More... | |
class | Component |
Component object model that all Components wishing to use the boost/STL-based memory model must use. More... | |
class | ComponentID |
An opaque handle for a component. More... | |
class | ComponentRelease |
class | ConnectionID |
This interface describes a CCA connection between components. More... | |
class | Exception |
This class extends the STL std::exception to allow the thrower to specify the message that the stl says we return via what(). More... | |
class | Port |
A pure-virtual tag interface to identify a function set capable of being exported to or imported from a CCA component. More... | |
class | Services |
The handle through which the component communicates with its containing framework. More... | |
class | TypeMap |
A CCA typed hash map. More... | |
class | TypeMismatchException |
Exception occuring when a get or put operation specifies incorrect data type for a given key already defined in the map. More... | |
class | Version |
runtime version info for queries. More... | |
Typedefs | |
typedef Port * | Port_p |
typedef Port * | Port_ptr |
typedef Component * | Component_p |
typedef Component * | Component_ptr |
typedef Services * | Services_p |
typedef Services * | Services_ptr |
typedef TypeMap * | TypeMap_p |
typedef TypeMap * | TypeMap_ptr |
typedef ComponentID * | ComponentID_p |
typedef ComponentID * | ComponentID_ptr |
typedef ConnectionID * | ConnectionID_p |
typedef ConnectionID * | ConnectionID_ptr |
typedef boost::shared_ptr < ComponentID > | ComponentID_shared |
This typedef is the type everyone should use everywhere in the BuilderService and event related ports. | |
typedef boost::shared_ptr < ConnectionID > | ConnectionID_shared |
This typedef is the type everyone should use everywhere in the BuilderService and event related ports. | |
typedef boost::shared_ptr < TypeMap > | TypeMap_shared |
This (TypeMap_shared) is what everyone declares in component code and noone ever calls new on. | |
Enumerations | |
enum | ExceptionType { Unexpected = -1, Nonstandard = 1, PortNotDefined = 2, PortAlreadyDefined = 3, PortNotConnected = 4, PortNotInUse = 5, UsesPortNotReleased = 6, BadPortName = 7, BadPortType = 8, BadProperties = 9, BadPortInfo = 10, OutOfMemory = 11, NetworkError = 12 } |
Types of cca framework exception so far, other than typemismatch. More... | |
enum | Type { NoType = -1, Int = 1, Long = 2, Float = 3, Double = 4, Fcomplex = 5, Dcomplex = 6, String = 7, Bool = 8, IntArray = 21, LongArray = 22, FloatArray = 23, DoubleArray = 24, FcomplexArray = 25, DcomplexArray = 26, StringArray = 27, BoolArray = 28 } |
Mapping of sidl/java primitive types and arrays to occuring in the TypeMap interface to integers. More... |
This binding lives in C++ namespace neo::cca .
typedef Port* neo::cca::Port_p |
typedef Port* neo::cca::Port_ptr |
typedef Component* neo::cca::Component_p |
typedef Component* neo::cca::Component_ptr |
typedef Services* neo::cca::Services_p |
typedef Services* neo::cca::Services_ptr |
typedef TypeMap* neo::cca::TypeMap_p |
typedef TypeMap* neo::cca::TypeMap_ptr |
typedef ComponentID* neo::cca::ComponentID_p |
typedef ComponentID* neo::cca::ComponentID_ptr |
typedef ConnectionID* neo::cca::ConnectionID_p |
typedef ConnectionID* neo::cca::ConnectionID_ptr |
typedef boost::shared_ptr< ComponentID > neo::cca::ComponentID_shared |
This typedef is the type everyone should use everywhere in the BuilderService and event related ports.
For practical purposes the memory lifecycle is as follows: Memory lifecycle: The framework creates items of type ComponentID_shared and they get shoveled around to all comers by BuilderServices and related ports. The component writer simply fetches and uses ComponentID_shared as if they are an STL type like ::std::string that is self-managing on the stack memory-wise. There is no destroyComponentID function in any interface. The user should not delete a ComponentID_shared. Where possible and sensible, ComponentID_shared items are passed by reference. Boost will take care of deleting a ComponentID on last reference going out of scope.
Anyone caught calling ComponentID.get() {unwrapping the shared_ptr} will be summarily shot. As ComponentID_shared is never cast to anything else, the oddity of the shared_ptr dynamic_cast does not impinge on the component writer.
typedef boost::shared_ptr< ConnectionID > neo::cca::ConnectionID_shared |
This typedef is the type everyone should use everywhere in the BuilderService and event related ports.
For practical purposes the memory lifecycle is as follows: Memory lifecycle: The framework creates items of type ConnectionID and they get shoveled around to all comers by BuilderServices and related ports. The component writer simply fetches and uses ConnectionIDs as if they are an STL type like ::std::string that is self-managing on the stack memory-wise. There is no destroyConnectionID function in any interface. Where possible and sensible, ConnectionID items are passed by reference. Boost will take care of deleting a ConnectionID on last reference going out of scope.
Anyone caught calling ConnectionID.get() {unwrapping the shared_ptr} will be summarily shot. As ConnectionID is never cast to anything else, the oddity of the shared_ptr dynamic_cast does not impinge on the component writer.
typedef boost::shared_ptr<TypeMap> neo::cca::TypeMap_shared |
This (TypeMap_shared) is what everyone declares in component code and noone ever calls new on.
TypeMap_shared is obtained from Services::createTypeMap or as the return from some other function.
Types of cca framework exception so far, other than typemismatch.
Note the names here must never overlap those of Type in the same namespace because of the way enums work in c++. If we choose to change it from an enum to a java style all static int class, it would be a bit less safe and a bit less cryptic in the compiler/debugger messages.
Unexpected | |
Nonstandard | |
PortNotDefined | |
PortAlreadyDefined | |
PortNotConnected | |
PortNotInUse | |
UsesPortNotReleased | |
BadPortName | |
BadPortType | |
BadProperties | |
BadPortInfo | |
OutOfMemory | |
NetworkError |
{ Unexpected = -1, Nonstandard = 1, PortNotDefined = 2, PortAlreadyDefined = 3, PortNotConnected = 4, PortNotInUse = 5, UsesPortNotReleased = 6, BadPortName = 7, BadPortType = 8, BadProperties = 9, BadPortInfo = 10, OutOfMemory = 11, NetworkError = 12 };
enum neo::cca::Type |
Mapping of sidl/java primitive types and arrays to occuring in the TypeMap interface to integers.
The values in this enum must not overlap names with ExceptionType.
{ NoType = -1, Int = 1, Long = 2, Float = 3, Double = 4, Fcomplex = 5, Dcomplex = 6, String = 7, Bool = 8, IntArray = 21, LongArray = 22, FloatArray = 23, DoubleArray = 24, FcomplexArray = 25, DcomplexArray = 26, StringArray = 27, BoolArray = 28, } ; // end enum Type