NEOCCA bindings Specification  0.2.8
neocca.hh
Go to the documentation of this file.
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_