mirror of
https://github.com/nasa/trick.git
synced 2024-12-24 07:16:41 +00:00
5065d96a15
* Pre-increment (rather than post-increment) STL iterators in for loops. #1594 * Fix a goof. #1594
56 lines
2.1 KiB
C++
56 lines
2.1 KiB
C++
|
|
#include <string.h>
|
|
#include "trick/swig/PrimitiveAttributesMap.hh"
|
|
|
|
// Global instance. This isn't a singleton, but the only one that works with attributes_map.
|
|
Trick::PrimitiveAttributesMap attr_map ;
|
|
|
|
Trick::PrimitiveAttributesMap * Trick::PrimitiveAttributesMap::attributes_map() {
|
|
return(&attr_map) ;
|
|
} ;
|
|
|
|
Trick::PrimitiveAttributesMap::PrimitiveAttributesMap() {
|
|
add_type("char", TRICK_CHARACTER , sizeof(char)) ;
|
|
add_type("unsigned char", TRICK_UNSIGNED_CHARACTER , sizeof(unsigned char)) ;
|
|
add_type("short", TRICK_SHORT , sizeof(short)) ;
|
|
add_type("unsigned short", TRICK_UNSIGNED_SHORT , sizeof(unsigned short)) ;
|
|
add_type("int", TRICK_INTEGER , sizeof(int)) ;
|
|
add_type("unsigned int", TRICK_UNSIGNED_INTEGER , sizeof(unsigned int)) ;
|
|
add_type("long", TRICK_LONG , sizeof(long)) ;
|
|
add_type("unsigned long", TRICK_UNSIGNED_LONG , sizeof(unsigned long)) ;
|
|
add_type("long long", TRICK_LONG_LONG , sizeof(long long)) ;
|
|
add_type("unsigned long long", TRICK_UNSIGNED_LONG_LONG , sizeof(unsigned long long)) ;
|
|
add_type("bool", TRICK_BOOLEAN , sizeof(bool)) ;
|
|
add_type("double", TRICK_DOUBLE , sizeof(double)) ;
|
|
add_type("float", TRICK_FLOAT , sizeof(float)) ;
|
|
}
|
|
|
|
Trick::PrimitiveAttributesMap::~PrimitiveAttributesMap() {
|
|
std::map<std::string, ATTRIBUTES * >::iterator pit ;
|
|
for ( pit = param_attr.begin() ; pit != param_attr.end() ; ++pit ) {
|
|
delete(pit->second) ;
|
|
}
|
|
param_attr.clear() ;
|
|
}
|
|
|
|
int Trick::PrimitiveAttributesMap::add_type(std::string param , TRICK_TYPE in_type, int in_size) {
|
|
ATTRIBUTES * new_attr ;
|
|
new_attr = new ATTRIBUTES() ;
|
|
new_attr->type = in_type ;
|
|
new_attr->size = in_size ;
|
|
new_attr->io = TRICK_VAR_OUTPUT | TRICK_VAR_INPUT | TRICK_CHKPNT_OUTPUT | TRICK_CHKPNT_INPUT ;
|
|
param_attr[param] = new_attr ;
|
|
return 0 ;
|
|
}
|
|
|
|
ATTRIBUTES * Trick::PrimitiveAttributesMap::get_attr( std::string param ) {
|
|
if ( param_attr.find(param) != param_attr.end() ) {
|
|
ATTRIBUTES * new_attr = new ATTRIBUTES() ;
|
|
*new_attr = *(param_attr[param]) ;
|
|
return new_attr ;
|
|
//return param_attr[param] ;
|
|
} else {
|
|
return NULL ;
|
|
}
|
|
}
|