NEOCCA bindings Specification
0.2.8
|
00001 #ifndef __NEOCCA_H__ 00002 #define __NEOCCA_H__ 00003 00005 #define NEOCCA_VERSION "0.2.8" 00006 00007 #define NEOCCA_VERSION_MAJOR 0 00008 00009 #define NEOCCA_VERSION_MINOR 2 00010 00011 #define NEOCCA_VERSION_PATCH 8 00012 00013 #include <vector> 00014 #include <string> 00015 #include <complex> 00016 #include <exception> 00017 #include <boost/cstdint.hpp> 00018 #include <boost/shared_ptr.hpp> 00019 00062 namespace neo { 00063 00067 namespace cca { 00068 00069 /* First some forward declarations. no doc comments at this point. */ 00070 class Version; 00071 class Port; 00072 class Component; 00073 class Services; 00074 class TypeMap; 00075 class ComponentID; 00076 class ConnectionID; 00077 class ComponentRelease; 00078 00079 /* Then reserve and make plain the usual C/C++ conventions for 00080 * typedefing raw pointers. Component writers should not be 00081 * using these. Just do WYSIWIG coding with explicit 'Foo *' if 00082 * you must. These come in very handy, however, for framework 00083 * writers. 00084 */ 00085 typedef Port * Port_p; 00086 typedef Port * Port_ptr; 00087 typedef Component * Component_p; 00088 typedef Component * Component_ptr; 00089 typedef Services * Services_p; 00090 typedef Services * Services_ptr; 00091 /* The component writer has no business putting hands 00092 * directly on any of the following six, as they are 00093 * always inside boost wrappings. 00094 */ 00095 typedef TypeMap * TypeMap_p; 00096 typedef TypeMap * TypeMap_ptr; 00097 typedef ComponentID * ComponentID_p; 00098 typedef ComponentID * ComponentID_ptr; 00099 typedef ConnectionID * ConnectionID_p; 00100 typedef ConnectionID * ConnectionID_ptr; 00101 00102 /* We will see elsewhere in the headers, and with doc comments: 00103 // typedef boost::shared_ptr<TypeMap> TypeMap_shared; 00104 // typedef boost::shared_ptr<ComponentID> ComponentID_shared; 00105 // typedef boost::shared_ptr<ConnectionID> ConnectionID_shared; 00106 */ 00107 00108 } // end namespace cca 00109 } // end namespace neo 00110 00111 00112 //=================================================================== 00113 00114 #include "neobase/Version.hh" 00115 #include "neobase/Port.hh" 00116 00117 /* include the exception, typemap, componentid and enum definitions 00118 * that are not directly relevant to the cca design pattern 00119 * but for the c++ compiler must come first. 00120 */ 00121 #include "neoaux.hh" 00122 00123 #include "neobase/Component.hh" 00124 #include "neobase/Services.hh" 00125 #include "neobase/AbstractFramework.hh" 00126 00127 #endif //__NEOCCA_H_