NEOCCA bindings Specification  0.2.8
neocca.hh
Go to the documentation of this file.
1 #ifndef __NEOCCA_H__
2 #define __NEOCCA_H__
3 
5 #define NEOCCA_VERSION "0.2.8"
6 
7 #define NEOCCA_VERSION_MAJOR 0
8 
9 #define NEOCCA_VERSION_MINOR 2
10 
11 #define NEOCCA_VERSION_PATCH 8
12 
13 #include <vector>
14 #include <string>
15 #include <complex>
16 #include <exception>
17 #include <boost/cstdint.hpp>
18 #include <boost/shared_ptr.hpp>
19 
62 namespace neo {
63 
67 namespace cca {
68 
69 /* First some forward declarations. no doc comments at this point. */
70 class Version;
71 class Port;
72 class Component;
73 class Services;
74 class TypeMap;
75 class ComponentID;
76 class ConnectionID;
78 
79 /* Then reserve and make plain the usual C/C++ conventions for
80  * typedefing raw pointers. Component writers should not be
81  * using these. Just do WYSIWIG coding with explicit 'Foo *' if
82  * you must. These come in very handy, however, for framework
83  * writers.
84  */
85 typedef Port * Port_p;
86 typedef Port * Port_ptr;
89 typedef Services * Services_p;
91  /* The component writer has no business putting hands
92  * directly on any of the following six, as they are
93  * always inside boost wrappings.
94  */
95 typedef TypeMap * TypeMap_p;
96 typedef TypeMap * TypeMap_ptr;
101 
102 /* We will see elsewhere in the headers, and with doc comments:
103 // typedef boost::shared_ptr<TypeMap> TypeMap_shared;
104 // typedef boost::shared_ptr<ComponentID> ComponentID_shared;
105 // typedef boost::shared_ptr<ConnectionID> ConnectionID_shared;
106 */
107 
108 } // end namespace cca
109 } // end namespace neo
110 
111 
112 //===================================================================
113 
114 #include "neobase/Version.hh"
115 #include "neobase/Port.hh"
116 
117 /* include the exception, typemap, componentid and enum definitions
118  * that are not directly relevant to the cca design pattern
119  * but for the c++ compiler must come first.
120  */
121 #include "neoaux.hh"
122 
123 #include "neobase/Component.hh"
124 #include "neobase/Services.hh"
126 
127 #endif //__NEOCCA_H_
A CCA typed hash map.
Definition: TypeMap.hh:22
Component object model that all Components wishing to use the boost/STL-based memory model must use...
Definition: Component.hh:10
Component * Component_ptr
Definition: neocca.hh:88
ComponentID * ComponentID_p
Definition: neocca.hh:97
TypeMap * TypeMap_ptr
Definition: neocca.hh:96
TypeMap * TypeMap_p
Definition: neocca.hh:95
An opaque handle for a component.
Definition: ComponentID.hh:45
Services * Services_ptr
Definition: neocca.hh:90
ConnectionID * ConnectionID_ptr
Definition: neocca.hh:100
Port * Port_ptr
Definition: neocca.hh:86
ComponentID * ComponentID_ptr
Definition: neocca.hh:98
ConnectionID * ConnectionID_p
Definition: neocca.hh:99
The handle through which the component communicates with its containing framework.
Definition: Services.hh:16
Services * Services_p
Definition: neocca.hh:89
This interface describes a CCA connection between components.
Definition: ConnectionID.hh:53
Definition: ComponentRelease.hh:6
runtime version info for queries.
Definition: Version.hh:7
Component * Component_p
Definition: neocca.hh:87
A pure-virtual tag interface to identify a function set capable of being exported to or imported from...
Definition: Port.hh:17
Port * Port_p
Definition: neocca.hh:77
This is neoclassic – the ::classic::gov::cca headers updated to be similar to the official CCA speci...
Definition: neocca.hh:62