From 3846165645dc6266cdac3e5b65706cbdc2739074 Mon Sep 17 00:00:00 2001 From: Jim Kowalkowski Date: Fri, 20 Dec 1996 13:09:49 +0000 Subject: [PATCH] Working version, intermediate, still has problems --- src/gdd/dbMapper.cc | 338 ++++++++++++++--------------------------- src/gdd/gdd.cc | 45 ++++-- src/gdd/gdd.h | 210 ++++++++++++++----------- src/gdd/gddAppTable.cc | 6 + src/gdd/gddTest.cc | 5 +- 5 files changed, 276 insertions(+), 328 deletions(-) diff --git a/src/gdd/dbMapper.cc b/src/gdd/dbMapper.cc index 262af7647..7222fdd74 100644 --- a/src/gdd/dbMapper.cc +++ b/src/gdd/dbMapper.cc @@ -4,6 +4,9 @@ // $Id$ // // $Log$ +// Revision 1.15 1996/11/02 01:24:44 jhill +// strcpy => styrcpy (shuts up purify) +// // Revision 1.14 1996/09/10 15:06:28 jbk // Adjusted dbMapper.cc so gdd to string function work correctly // Added checks in gdd.h so that get(pointer) functions work with scalars @@ -77,6 +80,7 @@ // no way to detect a string type!!!!!!! static gddApplicationTypeTable* type_table = NULL; +static aitDataFormat local_data_format=aitLocalDataFormat; const chtype gddAitToDbr[] = { 0, @@ -168,16 +172,8 @@ static gdd* mapStringToGdd(void* v,aitIndex count) { static int mapGddToString(void* v, gdd* dd) { aitFixedString* db = (aitFixedString*)v; - aitFixedString* dbx; - - if(dd->isScalar()) - dbx=(aitFixedString*)dd->dataAddress(); - else - dbx=(aitFixedString*)dd->dataPointer(); - - int len = dd->getDataSizeElements(); - if(dbx!=db) dd->get(*db); - return len; + if((aitFixedString*)dd->dataPointer()!=db) dd->get(db); + return dd->getDataSizeElements(); } static gdd* mapShortToGdd(void* v,aitIndex count) { @@ -195,16 +191,17 @@ static gdd* mapShortToGdd(void* v,aitIndex count) { return dd; } -static int mapGddToShort(void* v, gdd* dd) { - dbr_short_t* sv = (dbr_short_t*)v; - int sz=1; +static int mapGddToShort(void* vd, gdd* dd) { + dbr_short_t* sv = (dbr_short_t*)vd; + int sz=dd->getDataSizeElements(); + void* v=dd->dataVoid(); + + if(local_data_format==aitLocalDataFormat) + if((dbr_short_t*)v!=sv) + aitConvert(aitEnumInt16,sv,dd->primitiveType(),v,sz); + else + aitConvertToNet(aitEnumInt16,sv,dd->primitiveType(),v,sz); - if(dd->getBounds()) { - sz=dd->getDataSizeElements(); - if(dd->dataPointer()!=sv) - memcpy(sv,dd->dataPointer(),dd->getDataSizeBytes()); - } else - *sv=*dd; return sz; } @@ -223,16 +220,17 @@ static gdd* mapFloatToGdd(void* v,aitIndex count) { return dd; } -static int mapGddToFloat(void* v, gdd* dd) { - dbr_float_t* sv = (dbr_float_t*)v; - int sz=1; +static int mapGddToFloat(void* vd, gdd* dd) { + dbr_float_t* sv = (dbr_float_t*)vd; + int sz=dd->getDataSizeElements(); + void* v=dd->dataVoid(); + + if(local_data_format==aitLocalDataFormat) + if((dbr_float_t*)v!=sv) + aitConvert(aitEnumFloat32,sv,dd->primitiveType(),v,sz); + else + aitConvertToNet(aitEnumFloat32,sv,dd->primitiveType(),v,sz); - if(dd->getBounds()) { - sz=dd->getDataSizeElements(); - if(dd->dataPointer()!=sv) - memcpy(sv,dd->dataPointer(),dd->getDataSizeBytes()); - } else - *sv=*dd; return sz; } @@ -251,16 +249,17 @@ static gdd* mapEnumToGdd(void* v,aitIndex count) { return dd; } -static int mapGddToEnum(void* v, gdd* dd) { - dbr_enum_t* sv = (dbr_enum_t*)v; - aitEnum16* e; - int sz=1; +static int mapGddToEnum(void* vd, gdd* dd) { + dbr_enum_t* sv = (dbr_enum_t*)vd; + int sz=dd->getDataSizeElements(); + void* v=dd->dataVoid(); + + if(local_data_format==aitLocalDataFormat) + if((dbr_enum_t*)v!=sv) + aitConvert(aitEnumEnum16,sv,dd->primitiveType(),v,sz); + else + aitConvertToNet(aitEnumEnum16,sv,dd->primitiveType(),v,sz); - if(dd->dimension()) { - dd->getRef(e); - *sv=*e; - } else - *sv=*dd; return sz; } @@ -279,16 +278,17 @@ static gdd* mapCharToGdd(void* v,aitIndex count) { return dd; } -static int mapGddToChar(void* v, gdd* dd) { - dbr_char_t* sv = (dbr_char_t*)v; - int sz=1; +static int mapGddToChar(void* vd, gdd* dd) { + dbr_char_t* sv = (dbr_char_t*)vd; + int sz=dd->getDataSizeElements(); + void* v=dd->dataVoid(); + + if(local_data_format==aitLocalDataFormat) + if((dbr_char_t*)v!=sv) + aitConvert(aitEnumInt8,sv,dd->primitiveType(),v,sz); + else + aitConvertToNet(aitEnumInt8,sv,dd->primitiveType(),v,sz); - if(dd->dimension()) { - sz=dd->getDataSizeElements(); - if(dd->dataPointer()!=sv) - memcpy(sv,dd->dataPointer(),dd->getDataSizeBytes()); - } else - *sv=*dd; return sz; } @@ -307,16 +307,17 @@ static gdd* mapLongToGdd(void* v,aitIndex count) { return dd; } -static int mapGddToLong(void* v, gdd* dd) { - dbr_long_t* sv = (dbr_long_t*)v; - int sz=1; +static int mapGddToLong(void* vd, gdd* dd) { + dbr_long_t* sv = (dbr_long_t*)vd; + int sz=dd->getDataSizeElements(); + void* v=dd->dataVoid(); + + if(local_data_format==aitLocalDataFormat) + if((dbr_long_t*)v!=sv) + aitConvert(aitEnumInt32,sv,dd->primitiveType(),v,sz); + else + aitConvertToNet(aitEnumInt32,sv,dd->primitiveType(),v,sz); - if(dd->dimension()) { - sz=dd->getDataSizeElements(); - if(dd->dataPointer()!=sv) - memcpy(sv,dd->dataPointer(),dd->getDataSizeBytes()); - } else - *sv=*dd; return sz; } @@ -335,16 +336,17 @@ static gdd* mapDoubleToGdd(void* v,aitIndex count) { return dd; } -static int mapGddToDouble(void* v, gdd* dd) { - dbr_double_t* sv = (dbr_double_t*)v; - int sz=1; +static int mapGddToDouble(void* vd, gdd* dd) { + dbr_double_t* sv = (dbr_double_t*)vd; + int sz=dd->getDataSizeElements(); + void* v=dd->dataVoid(); + + if(local_data_format==aitLocalDataFormat) + if((dbr_double_t*)v!=sv) + aitConvert(aitEnumFloat64,sv,dd->primitiveType(),v,sz); + else + aitConvertToNet(aitEnumFloat64,sv,dd->primitiveType(),v,sz); - if(dd->dimension()) { - sz=dd->getDataSizeElements(); - if(dd->dataPointer()!=sv) - memcpy(sv,dd->dataPointer(),dd->getDataSizeBytes()); - } else - *sv=*dd; return sz; } @@ -377,17 +379,12 @@ static gdd* mapStsStringToGdd(void* v,aitIndex count) static int mapStsGddToString(void* v, gdd* dd) { + // what about arrays of string? is this allowed? dbr_sts_string* db = (dbr_sts_string*)v; aitFixedString* dbv = (aitFixedString*)db->value; - aitFixedString* dbx; - if(dd->isScalar()) - dbx=(aitFixedString*)dd->dataAddress(); - else - dbx=(aitFixedString*)dd->dataPointer(); - // copy string into user buffer for now if not the same as one in gdd - if(dbx!=dbv) dd->get(*dbv); + if((aitFixedString*)dd->dataPointer()!=dbv) dd->get(dbv); dd->getStatSevr(db->status,db->severity); return dd->getDataSizeElements(); } @@ -403,9 +400,8 @@ static gdd* mapStsShortToGdd(void* v,aitIndex count) static int mapStsGddToShort(void* v, gdd* dd) { dbr_sts_short* dbv = (dbr_sts_short*)v; - int sz=mapGddToShort(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); - return sz; + return mapGddToShort(&dbv->value,dd); } static gdd* mapStsFloatToGdd(void* v,aitIndex count) @@ -419,9 +415,8 @@ static gdd* mapStsFloatToGdd(void* v,aitIndex count) static int mapStsGddToFloat(void* v, gdd* dd) { dbr_sts_float* dbv = (dbr_sts_float*)v; - int sz=mapGddToFloat(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); - return sz; + return mapGddToFloat(&dbv->value,dd); } static gdd* mapStsEnumToGdd(void* v,aitIndex count) @@ -435,9 +430,8 @@ static gdd* mapStsEnumToGdd(void* v,aitIndex count) static int mapStsGddToEnum(void* v, gdd* dd) { dbr_sts_enum* dbv = (dbr_sts_enum*)v; - int sz=mapGddToEnum(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); - return sz; + return mapGddToEnum(&dbv->value,dd); } static gdd* mapStsCharToGdd(void* v,aitIndex count) @@ -451,10 +445,9 @@ static gdd* mapStsCharToGdd(void* v,aitIndex count) static int mapStsGddToChar(void* v, gdd* dd) { dbr_sts_char* dbv = (dbr_sts_char*)v; - int sz=mapGddToChar(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); dbv->RISC_pad = '\0'; // shut up purify - return sz; + return mapGddToChar(&dbv->value,dd); } static gdd* mapStsLongToGdd(void* v,aitIndex count) @@ -468,9 +461,8 @@ static gdd* mapStsLongToGdd(void* v,aitIndex count) static int mapStsGddToLong(void* v, gdd* dd) { dbr_sts_long* dbv = (dbr_sts_long*)v; - int sz=mapGddToLong(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); - return sz; + return mapGddToLong(&dbv->value,dd); } static gdd* mapStsDoubleToGdd(void* v,aitIndex count) @@ -484,10 +476,9 @@ static gdd* mapStsDoubleToGdd(void* v,aitIndex count) static int mapStsGddToDouble(void* v, gdd* dd) { dbr_sts_double* dbv = (dbr_sts_double*)v; - int sz=mapGddToDouble(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); dbv->RISC_pad = 0; // shut up purify - return sz; + return mapGddToDouble(&dbv->value,dd); } // ******************************************************************** @@ -522,19 +513,12 @@ static int mapTimeGddToString(void* v, gdd* dd) { dbr_time_string* db = (dbr_time_string*)v; aitFixedString* dbv = (aitFixedString*)db->value; - aitFixedString* dbx; // copy string into user buffer for now if not the same as one in gdd - if(dd->isScalar()) - dbx=(aitFixedString*)dd->dataAddress(); - else - dbx=(aitFixedString*)dd->dataPointer(); - - if(dbv!=dbx) dd->get(*dbv); - + if(dbv!=(aitFixedString*)dd->dataPointer()) dd->get(dbv); dd->getStatSevr(db->status,db->severity); dd->getTimeStamp((aitTimeStamp*)&db->stamp); - return dd->getDataSizeBytes(); + return dd->getDataSizeElements(); } static gdd* mapTimeShortToGdd(void* v,aitIndex count) @@ -549,11 +533,10 @@ static gdd* mapTimeShortToGdd(void* v,aitIndex count) static int mapTimeGddToShort(void* v, gdd* dd) { dbr_time_short* dbv = (dbr_time_short*)v; - int sz=mapGddToShort(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); dd->getTimeStamp((aitTimeStamp*)&dbv->stamp); dbv->RISC_pad = 0; // shut up purify - return sz; + return mapGddToShort(&dbv->value,dd); } static gdd* mapTimeFloatToGdd(void* v,aitIndex count) @@ -568,10 +551,9 @@ static gdd* mapTimeFloatToGdd(void* v,aitIndex count) static int mapTimeGddToFloat(void* v, gdd* dd) { dbr_time_float* dbv = (dbr_time_float*)v; - int sz=mapGddToFloat(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); dd->getTimeStamp((aitTimeStamp*)&dbv->stamp); - return sz; + return mapGddToFloat(&dbv->value,dd); } static gdd* mapTimeEnumToGdd(void* v,aitIndex count) @@ -586,11 +568,10 @@ static gdd* mapTimeEnumToGdd(void* v,aitIndex count) static int mapTimeGddToEnum(void* v, gdd* dd) { dbr_time_enum* dbv = (dbr_time_enum*)v; - int sz=mapGddToEnum(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); dd->getTimeStamp((aitTimeStamp*)&dbv->stamp); dbv->RISC_pad = 0; // shut up purify - return sz; + return mapGddToEnum(&dbv->value,dd); } static gdd* mapTimeCharToGdd(void* v,aitIndex count) @@ -605,12 +586,11 @@ static gdd* mapTimeCharToGdd(void* v,aitIndex count) static int mapTimeGddToChar(void* v, gdd* dd) { dbr_time_char* dbv = (dbr_time_char*)v; - int sz=mapGddToChar(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); dd->getTimeStamp((aitTimeStamp*)&dbv->stamp); dbv->RISC_pad0 = 0; // shut up purify dbv->RISC_pad1 = '\0'; // shut up purify - return sz; + return mapGddToChar(&dbv->value,dd); } static gdd* mapTimeLongToGdd(void* v,aitIndex count) @@ -625,10 +605,9 @@ static gdd* mapTimeLongToGdd(void* v,aitIndex count) static int mapTimeGddToLong(void* v, gdd* dd) { dbr_time_long* dbv = (dbr_time_long*)v; - int sz=mapGddToLong(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); dd->getTimeStamp((aitTimeStamp*)&dbv->stamp); - return sz; + return mapGddToLong(&dbv->value,dd); } static gdd* mapTimeDoubleToGdd(void* v,aitIndex count) @@ -643,11 +622,10 @@ static gdd* mapTimeDoubleToGdd(void* v,aitIndex count) static int mapTimeGddToDouble(void* v, gdd* dd) { dbr_time_double* dbv = (dbr_time_double*)v; - int sz=mapGddToDouble(&dbv->value,dd); dd->getStatSevr(dbv->status,dbv->severity); dd->getTimeStamp((aitTimeStamp*)&dbv->stamp); dbv->RISC_pad = 0; // shut up purify - return sz; + return mapGddToDouble(&dbv->value,dd); } // ******************************************************************** @@ -723,11 +701,10 @@ static gdd* mapControlShortToGdd(void* v, aitIndex count) static int mapGraphicGddToShort(void* v, gdd* dd) { + aitString* str; dbr_gr_short* db = (dbr_gr_short*)v; - int sz=1; gdd& vdd = dd[gddAppTypeIndex_dbr_gr_short_value]; - aitString* str; dd[gddAppTypeIndex_dbr_gr_short_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -742,23 +719,15 @@ static int mapGraphicGddToShort(void* v, gdd* dd) db->upper_warning_limit=dd[gddAppTypeIndex_dbr_gr_short_alarmHighWarning]; vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToShort(&db->value,&vdd); } static int mapControlGddToShort(void* v, gdd* dd) { + aitString* str; dbr_ctrl_short* db = (dbr_ctrl_short*)v; - int sz=1; gdd& vdd = dd[gddAppTypeIndex_dbr_ctrl_short_value]; - aitString* str; dd[gddAppTypeIndex_dbr_ctrl_short_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -775,14 +744,7 @@ static int mapControlGddToShort(void* v, gdd* dd) db->upper_warning_limit=dd[gddAppTypeIndex_dbr_ctrl_short_alarmHighWarning]; vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToShort(&db->value,&vdd); } // -------------map the float structures---------------- @@ -811,8 +773,8 @@ static gdd* mapGraphicFloatToGdd(void* v, aitIndex count) if(vdd.dimension()) vdd.clear(); vdd=db->value; } else { - if(vdd.dimension()!=1) vdd.reset(aitEnumInt16,1,&count); - else vdd.setPrimType(aitEnumInt16); + if(vdd.dimension()!=1) vdd.reset(aitEnumFloat32,1,&count); + else vdd.setPrimType(aitEnumFloat32); vdd.setBound(0,0,count); vdd.putRef(&db->value); } @@ -846,8 +808,8 @@ static gdd* mapControlFloatToGdd(void* v, aitIndex count) if(vdd.dimension()) vdd.clear(); vdd=db->value; } else { - if(vdd.dimension()!=1) vdd.reset(aitEnumInt16,1,&count); - else vdd.setPrimType(aitEnumInt16); + if(vdd.dimension()!=1) vdd.reset(aitEnumFloat32,1,&count); + else vdd.setPrimType(aitEnumFloat32); vdd.setBound(0,0,count); vdd.putRef(&db->value); } @@ -856,11 +818,10 @@ static gdd* mapControlFloatToGdd(void* v, aitIndex count) static int mapGraphicGddToFloat(void* v, gdd* dd) { + aitString* str; dbr_gr_float* db = (dbr_gr_float*)v; - int sz=1; gdd& vdd = dd[gddAppTypeIndex_dbr_gr_float_value]; - aitString* str; dd[gddAppTypeIndex_dbr_gr_float_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -877,23 +838,15 @@ static int mapGraphicGddToFloat(void* v, gdd* dd) db->RISC_pad0 = 0; // shut up purify vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToFloat(&db->value,&vdd); } static int mapControlGddToFloat(void* v, gdd* dd) { + aitString* str; dbr_ctrl_float* db = (dbr_ctrl_float*)v; - int sz=1; gdd& vdd = dd[gddAppTypeIndex_dbr_ctrl_float_value]; - aitString* str; dd[gddAppTypeIndex_dbr_ctrl_float_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -912,14 +865,7 @@ static int mapControlGddToFloat(void* v, gdd* dd) db->RISC_pad = 0; // shut up purify vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToFloat(&db->value,&vdd); } // -------------map the enum structures---------------- @@ -1080,8 +1026,8 @@ static gdd* mapGraphicCharToGdd(void* v, aitIndex count) if(vdd.dimension()) vdd.clear(); vdd=db->value; } else { - if(vdd.dimension()!=1) vdd.reset(aitEnumInt16,1,&count); - else vdd.setPrimType(aitEnumInt16); + if(vdd.dimension()!=1) vdd.reset(aitEnumInt8,1,&count); + else vdd.setPrimType(aitEnumInt8); vdd.setBound(0,0,count); vdd.putRef(&db->value); } @@ -1114,8 +1060,8 @@ static gdd* mapControlCharToGdd(void* v, aitIndex count) if(vdd.dimension()) vdd.clear(); vdd=db->value; } else { - if(vdd.dimension()!=1) vdd.reset(aitEnumInt16,1,&count); - else vdd.setPrimType(aitEnumInt16); + if(vdd.dimension()!=1) vdd.reset(aitEnumInt8,1,&count); + else vdd.setPrimType(aitEnumInt8); vdd.setBound(0,0,count); vdd.putRef(&db->value); } @@ -1124,11 +1070,10 @@ static gdd* mapControlCharToGdd(void* v, aitIndex count) static int mapGraphicGddToChar(void* v, gdd* dd) { + aitString* str; dbr_gr_char* db = (dbr_gr_char*)v; gdd& vdd = dd[gddAppTypeIndex_dbr_gr_char_value]; - int sz=1; - aitString* str; dd[gddAppTypeIndex_dbr_gr_char_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -1144,23 +1089,15 @@ static int mapGraphicGddToChar(void* v, gdd* dd) db->RISC_pad = 0; vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToChar(&db->value,&vdd); } static int mapControlGddToChar(void* v, gdd* dd) { + aitString* str; dbr_ctrl_char* db = (dbr_ctrl_char*)v; gdd& vdd = dd[gddAppTypeIndex_dbr_ctrl_char_value]; - int sz=1; - aitString* str; dd[gddAppTypeIndex_dbr_ctrl_char_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -1178,14 +1115,7 @@ static int mapControlGddToChar(void* v, gdd* dd) db->RISC_pad = '\0'; // shut up purify vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToChar(&db->value,&vdd); } // -------------map the long structures---------------- @@ -1213,8 +1143,8 @@ static gdd* mapGraphicLongToGdd(void* v, aitIndex count) if(vdd.dimension()) vdd.clear(); vdd=db->value; } else { - if(vdd.dimension()!=1) vdd.reset(aitEnumInt16,1,&count); - else vdd.setPrimType(aitEnumInt16); + if(vdd.dimension()!=1) vdd.reset(aitEnumInt32,1,&count); + else vdd.setPrimType(aitEnumInt32); vdd.setBound(0,0,count); vdd.putRef(&db->value); } @@ -1247,8 +1177,8 @@ static gdd* mapControlLongToGdd(void* v, aitIndex count) if(vdd.dimension()) vdd.clear(); vdd=db->value; } else { - if(vdd.dimension()!=1) vdd.reset(aitEnumInt16,1,&count); - else vdd.setPrimType(aitEnumInt16); + if(vdd.dimension()!=1) vdd.reset(aitEnumInt32,1,&count); + else vdd.setPrimType(aitEnumInt32); vdd.setBound(0,0,count); vdd.putRef(&db->value); } @@ -1257,11 +1187,10 @@ static gdd* mapControlLongToGdd(void* v, aitIndex count) static int mapGraphicGddToLong(void* v, gdd* dd) { + aitString* str; dbr_gr_long* db = (dbr_gr_long*)v; gdd& vdd = dd[gddAppTypeIndex_dbr_gr_long_value]; - int sz=1; - aitString* str; dd[gddAppTypeIndex_dbr_gr_long_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -1276,23 +1205,15 @@ static int mapGraphicGddToLong(void* v, gdd* dd) db->upper_warning_limit=dd[gddAppTypeIndex_dbr_gr_long_alarmHighWarning]; vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToLong(&db->value,&vdd); } static int mapControlGddToLong(void* v, gdd* dd) { + aitString* str; dbr_ctrl_long* db = (dbr_ctrl_long*)v; gdd& vdd = dd[gddAppTypeIndex_dbr_ctrl_long_value]; - int sz=1; - aitString* str; dd[gddAppTypeIndex_dbr_ctrl_long_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -1309,14 +1230,7 @@ static int mapControlGddToLong(void* v, gdd* dd) db->upper_warning_limit=dd[gddAppTypeIndex_dbr_ctrl_long_alarmHighWarning]; vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToLong(&db->value,&vdd); } // -------------map the double structures---------------- @@ -1345,8 +1259,8 @@ static gdd* mapGraphicDoubleToGdd(void* v, aitIndex count) if(vdd.dimension()) vdd.clear(); vdd=db->value; } else { - if(vdd.dimension()!=1) vdd.reset(aitEnumInt16,1,&count); - else vdd.setPrimType(aitEnumInt16); + if(vdd.dimension()!=1) vdd.reset(aitEnumFloat64,1,&count); + else vdd.setPrimType(aitEnumFloat64); vdd.setBound(0,0,count); vdd.putRef(&db->value); } @@ -1380,8 +1294,8 @@ static gdd* mapControlDoubleToGdd(void* v, aitIndex count) if(vdd.dimension()) vdd.clear(); vdd=db->value; } else { - if(vdd.dimension()!=1) vdd.reset(aitEnumInt16,1,&count); - else vdd.setPrimType(aitEnumInt16); + if(vdd.dimension()!=1) vdd.reset(aitEnumFloat64,1,&count); + else vdd.setPrimType(aitEnumFloat64); vdd.setBound(0,0,count); vdd.putRef(&db->value); } @@ -1390,11 +1304,10 @@ static gdd* mapControlDoubleToGdd(void* v, aitIndex count) static int mapGraphicGddToDouble(void* v, gdd* dd) { + aitString* str; dbr_gr_double* db = (dbr_gr_double*)v; gdd& vdd = dd[gddAppTypeIndex_dbr_gr_double_value]; - int sz=1; - aitString* str; dd[gddAppTypeIndex_dbr_gr_double_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -1411,23 +1324,15 @@ static int mapGraphicGddToDouble(void* v, gdd* dd) db->RISC_pad0 = 0; // shut up purify vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToDouble(&db->value,&vdd); } static int mapControlGddToDouble(void* v, gdd* dd) { + aitString* str; dbr_ctrl_double* db = (dbr_ctrl_double*)v; gdd& vdd = dd[gddAppTypeIndex_dbr_ctrl_double_value]; - int sz=1; - aitString* str; dd[gddAppTypeIndex_dbr_ctrl_double_units].getRef(str); if(str->string()) { strncpy(db->units,str->string(), sizeof(db->units)); @@ -1446,14 +1351,7 @@ static int mapControlGddToDouble(void* v, gdd* dd) db->RISC_pad0 = '\0'; // shut up purify vdd.getStatSevr(db->status,db->severity); - - if(vdd.dimension()) { - sz=vdd.getDataSizeElements(); - if(vdd.dataPointer()!=v) - memcpy(&db->value, vdd.dataPointer(), vdd.getDataSizeBytes()); - } else - db->value=vdd; - return sz; + return mapGddToDouble(&db->value,&vdd); } // ----------------must run this to use mapping functions-------------- diff --git a/src/gdd/gdd.cc b/src/gdd/gdd.cc index 050c83274..97bf4977a 100644 --- a/src/gdd/gdd.cc +++ b/src/gdd/gdd.cc @@ -4,6 +4,9 @@ // $Id$ // // $Log$ +// Revision 1.15 1996/12/17 15:04:42 jbk +// fixed bug in copyData, sets bounds now +// // Revision 1.14 1996/12/06 22:27:44 jhill // fixed wrong start bug in getDD() // @@ -237,6 +240,8 @@ gdd::~gdd(void) if(destruct) destruct->destroy(dataPointer()); if(bounds) freeBounds(); } + setPrimType(aitEnumInvalid); + setApplType(0); } void gdd::freeBounds(void) @@ -1398,6 +1403,7 @@ gddStatus gdd::copyData(const gdd* dd) gddStatus rc=0; size_t sz; aitUint8* arr; + int i; if(isFlat() || isManaged() || isContainer()) { @@ -1406,29 +1412,33 @@ gddStatus gdd::copyData(const gdd* dd) } else { - if(isScalar()) + // this is really a preliminary version of this function. it + // does simple data copies and source dd to this dd. + + // clean up the old data + if(destruct) + destruct->destroy(dataPointer()); + else { - int i; - init(dd->applicationType(),dd->primitiveType(),dd->dimension()); - const gddBounds* bnds = dd->getBounds(); - for(i=0;idimension();i++) bounds[i]=bnds[i]; + if(primitiveType()==aitEnumString && isScalar()) + { + aitString* str = (aitString*)dataAddress(); + str->clear(); + } } - if(!aitValid(primitiveType())) - setPrimType(dd->primitiveType()); - - destroyData(); + setPrimType(dd->primitiveType()); + setDimension(dd->dimension()); + const gddBounds* bnds = dd->getBounds(); + for(i=0;idimension();i++) bounds[i]=bnds[i]; sz=describedDataSizeBytes(); + // copy the copy if((arr=new aitUint8[sz])) { destruct=new gddDestructor; setData(arr); - if(primitiveType()==dd->primitiveType()) - memcpy(arr,dd->dataPointer(),sz); - else - aitConvert(primitiveType(),arr,dd->primitiveType(), - dd->dataPointer(),describedDataSizeElements()); + memcpy(arr,dd->dataPointer(),sz); } else { @@ -1584,10 +1594,13 @@ gdd* gddContainer::getDD(aitIndex index) if (index==0u) { return this; } - else { + else if(index>getDataSizeElements()) + return NULL; + else + { aitIndex i; gdd* dd=(gdd*)dataPointer(); - for(i=1u;isize();i++) { + for(i=1u;inext(); } return dd; diff --git a/src/gdd/gdd.h b/src/gdd/gdd.h index 2f824bcbc..59a336ea5 100644 --- a/src/gdd/gdd.h +++ b/src/gdd/gdd.h @@ -8,6 +8,9 @@ * $Id$ * * $Log$ + * Revision 1.18 1996/11/04 17:12:50 jbk + * fix setFirst + * * Revision 1.17 1996/11/02 01:24:49 jhill * strcpy => styrcpy (shuts up purify) * @@ -336,6 +339,7 @@ public: gddStatus getBound(unsigned dim_to_get, aitIndex& first, aitIndex& count); gddStatus registerDestructor(gddDestructor*); gddStatus replaceDestructor(gddDestructor*); + void* dataVoid(void) const; void* dataAddress(void) const; void* dataPointer(void) const; void* dataPointer(aitIndex element_offset) const; @@ -408,42 +412,53 @@ public: gdd& operator=(const gdd& v); // get a pointer to the data in the DD - void getRef(aitFloat64*& d); - void getRef(aitFloat32*& d); - void getRef(aitUint32*& d); - void getRef(aitInt32*& d); - void getRef(aitUint16*& d); - void getRef(aitInt16*& d); - void getRef(aitUint8*& d); - void getRef(aitInt8*& d); - void getRef(aitString*& d); - void getRef(aitFixedString*& d); - void getRef(void*& d); + void getRef(aitFloat64*& d,aitDataFormat=aitLocalDataFormat); + void getRef(aitFloat32*& d,aitDataFormat=aitLocalDataFormat); + void getRef(aitUint32*& d,aitDataFormat=aitLocalDataFormat); + void getRef(aitInt32*& d,aitDataFormat=aitLocalDataFormat); + void getRef(aitUint16*& d,aitDataFormat=aitLocalDataFormat); + void getRef(aitInt16*& d,aitDataFormat=aitLocalDataFormat); + void getRef(aitUint8*& d,aitDataFormat=aitLocalDataFormat); + void getRef(aitInt8*& d,aitDataFormat=aitLocalDataFormat); + void getRef(aitString*& d,aitDataFormat=aitLocalDataFormat); + void getRef(aitFixedString*& d,aitDataFormat=aitLocalDataFormat); + void getRef(void*& d,aitDataFormat=aitLocalDataFormat); // make the DD points to user data with a destroy method, // put the referenced in and adjust the primitive type - void putRef(void* v,aitEnum code, gddDestructor* d = NULL); - void putRef(aitFloat64* v, gddDestructor* d = NULL); - void putRef(aitFloat32* v, gddDestructor* d = NULL); - void putRef(aitUint8* v, gddDestructor* d = NULL); - void putRef(aitInt8* v, gddDestructor* d = NULL); - void putRef(aitUint16* v, gddDestructor* d = NULL); - void putRef(aitInt16* v, gddDestructor* d = NULL); - void putRef(aitUint32* v, gddDestructor* d = NULL); - void putRef(aitInt32* v, gddDestructor* d = NULL); - void putRef(aitString* v, gddDestructor* d = NULL); - void putRef(aitFixedString* v, gddDestructor* d = NULL); + void putRef(void*,aitEnum,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(aitFloat64*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); + void putRef(aitFloat32*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); + void putRef(aitUint8*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); + void putRef(aitInt8*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); + void putRef(aitUint16*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); + void putRef(aitInt16*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); + void putRef(aitUint32*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); + void putRef(aitInt32*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); + void putRef(aitString*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); + void putRef(aitFixedString*,gddDestructor* =0,aitDataFormat=aitLocalDataFormat); // work with constants - void putRef(const aitFloat64* v, gddDestructor* d = NULL); - void putRef(const aitFloat32* v, gddDestructor* d = NULL); - void putRef(const aitUint8* v, gddDestructor* d = NULL); - void putRef(const aitInt8* v, gddDestructor* d = NULL); - void putRef(const aitUint16* v, gddDestructor* d = NULL); - void putRef(const aitInt16* v, gddDestructor* d = NULL); - void putRef(const aitUint32* v, gddDestructor* d = NULL); - void putRef(const aitInt32* v, gddDestructor* d = NULL); - void putRef(const aitString* v,gddDestructor* d=NULL); - void putRef(const aitFixedString* v,gddDestructor* d=NULL); + void putRef(const aitFloat64*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(const aitFloat32*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(const aitUint8*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(const aitInt8*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(const aitUint16*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(const aitInt16*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(const aitUint32*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(const aitInt32*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(const aitString*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); + void putRef(const aitFixedString*,gddDestructor* =0, + aitDataFormat=aitLocalDataFormat); void putRef(const gdd*); // get the data in the form the user wants (do conversion) @@ -574,7 +589,7 @@ public: // gdd::operator aitFixedString(void); // not present gddStatus genCopy(aitEnum t, const void* d); - void adjust(gddDestructor* d, void* v, aitEnum type); + void adjust(gddDestructor* d, void* v, aitEnum type, aitDataFormat); void get(aitEnum t,void* v); void set(aitEnum t,void* v); @@ -635,6 +650,9 @@ inline gddStatus gdd::Dup(gdd* dd) { return copyStuff(dd,2); } inline void* gdd::dataAddress(void) const { return (void*)&data; } inline void* gdd::dataPointer(void) const { return data.Pointer; } +inline void* gdd::dataVoid(void) const + { return dimension()?dataPointer():dataAddress(); } + inline aitUint32 gdd::align8(unsigned long count) const { unsigned long tmp=count&(~((unsigned long)0x07)); @@ -648,7 +666,7 @@ inline int gdd::isManaged(void) const { return flags&GDD_MANAGED_MASK; } inline int gdd::isFlat(void) const { return flags&GDD_FLAT_MASK; } inline int gdd::isNoRef(void) const { return flags&GDD_NOREF_MASK; } inline int gdd::isConstant(void) const { return flags&GDD_CONSTANT_MASK; } -inline int gdd::isLocalDataFormat(void) const { return flags&GDD_NET_MASK; } +inline int gdd::isLocalDataFormat(void) const { return !(flags&GDD_NET_MASK); } inline int gdd::isNetworkDataFormat(void) const { return !isLocalDataFormat() || aitLocalNetworkDataFormatSame; } @@ -656,8 +674,8 @@ inline void gdd::markConstant(void) { flags|=GDD_CONSTANT_MASK; } inline void gdd::markFlat(void) { flags|=GDD_FLAT_MASK; } inline void gdd::markManaged(void) { flags|=GDD_MANAGED_MASK; } inline void gdd::markUnmanaged(void) { flags&=~GDD_MANAGED_MASK; } -inline void gdd::markLocalDataFormat(void) { flags|=GDD_NET_MASK; } -inline void gdd::markNotLocalDataFormat(void) { flags&=~GDD_NET_MASK; } +inline void gdd::markLocalDataFormat(void) { flags&=~GDD_NET_MASK; } +inline void gdd::markNotLocalDataFormat(void) { flags|=GDD_NET_MASK; } inline void gdd::getTimeStamp(struct timespec* const ts) const { ts->tv_sec=time_stamp.tv_sec; ts->tv_nsec=time_stamp.tv_nsec; } @@ -755,12 +773,12 @@ inline void gdd::destroyData(void) { if(destruct) { - // up to destructor to free the bounds if(isContainer()) destruct->destroy(this); else destruct->destroy(dataPointer()); + freeBounds(); // must be done here destruct=NULL; setData(NULL); } @@ -774,7 +792,7 @@ inline void gdd::destroyData(void) } } -inline void gdd::adjust(gddDestructor* d, void* v, aitEnum type) +inline void gdd::adjust(gddDestructor* d, void* v, aitEnum type,aitDataFormat) { if(destruct) destruct->destroy(dataPointer()); destruct=d; @@ -810,66 +828,76 @@ inline void gdd::set(aitEnum t,void* v) } // -------------------getRef(data pointer) functions---------------- -inline void gdd::getRef(aitFloat64*& d) { d=(aitFloat64*)dataPointer(); } -inline void gdd::getRef(aitFloat32*& d) { d=(aitFloat32*)dataPointer(); } -inline void gdd::getRef(aitUint32*& d) { d=(aitUint32*)dataPointer(); } -inline void gdd::getRef(aitInt32*& d) { d=(aitInt32*)dataPointer(); } -inline void gdd::getRef(aitUint16*& d) { d=(aitUint16*)dataPointer(); } -inline void gdd::getRef(aitInt16*& d) { d=(aitInt16*)dataPointer(); } -inline void gdd::getRef(aitUint8*& d) { d=(aitUint8*)dataPointer(); } -inline void gdd::getRef(aitInt8*& d) { d=(aitInt8*)dataPointer(); } -inline void gdd::getRef(void*& d) { d=dataPointer(); } -inline void gdd::getRef(aitFixedString*& d) {d=(aitFixedString*)dataPointer();} -inline void gdd::getRef(aitString*& d) { +inline void gdd::getRef(aitFloat64*& d,aitDataFormat ) + { d=(aitFloat64*)dataPointer(); } +inline void gdd::getRef(aitFloat32*& d,aitDataFormat ) + { d=(aitFloat32*)dataPointer(); } +inline void gdd::getRef(aitUint32*& d,aitDataFormat ) + { d=(aitUint32*)dataPointer(); } +inline void gdd::getRef(aitInt32*& d,aitDataFormat ) + { d=(aitInt32*)dataPointer(); } +inline void gdd::getRef(aitUint16*& d,aitDataFormat ) + { d=(aitUint16*)dataPointer(); } +inline void gdd::getRef(aitInt16*& d,aitDataFormat ) + { d=(aitInt16*)dataPointer(); } +inline void gdd::getRef(aitUint8*& d,aitDataFormat ) + { d=(aitUint8*)dataPointer(); } +inline void gdd::getRef(aitInt8*& d,aitDataFormat ) + { d=(aitInt8*)dataPointer(); } +inline void gdd::getRef(void*& d,aitDataFormat ) + { d=dataPointer(); } +inline void gdd::getRef(aitFixedString*& d,aitDataFormat ) + {d=(aitFixedString*)dataPointer();} +inline void gdd::getRef(aitString*& d,aitDataFormat ) { if(isScalar()) d=(aitString*)dataAddress(); else d=(aitString*)dataPointer(); } // -------------------putRef(data pointer) functions---------------- -inline void gdd::putRef(void* v,aitEnum code, gddDestructor* d) - { adjust(d, v, code); } -inline void gdd::putRef(aitFloat64* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumFloat64); } -inline void gdd::putRef(aitFloat32* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumFloat32); } -inline void gdd::putRef(aitUint8* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumUint8); } -inline void gdd::putRef(aitInt8* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumInt8); } -inline void gdd::putRef(aitUint16* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumUint16); } -inline void gdd::putRef(aitInt16* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumInt16); } -inline void gdd::putRef(aitUint32* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumUint32); } -inline void gdd::putRef(aitInt32* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumInt32); } -inline void gdd::putRef(aitString* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumString); } -inline void gdd::putRef(aitFixedString* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumFixedString); } +inline void gdd::putRef(void* v,aitEnum code, gddDestructor* d,aitDataFormat f) + { adjust(d, v, code,f); } +inline void gdd::putRef(aitFloat64* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumFloat64,f); } +inline void gdd::putRef(aitFloat32* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumFloat32,f); } +inline void gdd::putRef(aitUint8* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumUint8,f); } +inline void gdd::putRef(aitInt8* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumInt8,f); } +inline void gdd::putRef(aitUint16* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumUint16,f); } +inline void gdd::putRef(aitInt16* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumInt16,f); } +inline void gdd::putRef(aitUint32* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumUint32,f); } +inline void gdd::putRef(aitInt32* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumInt32,f); } +inline void gdd::putRef(aitString* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumString,f); } +inline void gdd::putRef(aitFixedString* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumFixedString,f); } // -------------------putRef(const data pointer) functions---------------- -inline void gdd::putRef(const aitFloat64* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumFloat64); markConstant(); } -inline void gdd::putRef(const aitFloat32* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumFloat32); markConstant(); } -inline void gdd::putRef(const aitUint8* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumUint8); markConstant(); } -inline void gdd::putRef(const aitInt8* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumInt8); markConstant(); } -inline void gdd::putRef(const aitUint16* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumUint16); markConstant(); } -inline void gdd::putRef(const aitInt16* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumInt16); markConstant(); } -inline void gdd::putRef(const aitUint32* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumUint32); markConstant(); } -inline void gdd::putRef(const aitInt32* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumInt32); markConstant(); } -inline void gdd::putRef(const aitString* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumString); markConstant(); } -inline void gdd::putRef(const aitFixedString* v, gddDestructor* d) - { adjust(d, (void*)v, aitEnumFixedString); markConstant(); } +inline void gdd::putRef(const aitFloat64* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumFloat64,f); markConstant(); } +inline void gdd::putRef(const aitFloat32* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumFloat32,f); markConstant(); } +inline void gdd::putRef(const aitUint8* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumUint8,f); markConstant(); } +inline void gdd::putRef(const aitInt8* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumInt8,f); markConstant(); } +inline void gdd::putRef(const aitUint16* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumUint16,f); markConstant(); } +inline void gdd::putRef(const aitInt16* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumInt16,f); markConstant(); } +inline void gdd::putRef(const aitUint32* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumUint32,f); markConstant(); } +inline void gdd::putRef(const aitInt32* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumInt32,f); markConstant(); } +inline void gdd::putRef(const aitString* v, gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumString,f); markConstant(); } +inline void gdd::putRef(const aitFixedString* v,gddDestructor* d,aitDataFormat f) + { adjust(d, (void*)v, aitEnumFixedString,f); markConstant(); } // -------------------getConvert(scalar) functions ---------------------- inline void gdd::getConvert(aitFloat64& d) { get(aitEnumFloat64,&d); } diff --git a/src/gdd/gddAppTable.cc b/src/gdd/gddAppTable.cc index 0c898270a..ecb854e3c 100644 --- a/src/gdd/gddAppTable.cc +++ b/src/gdd/gddAppTable.cc @@ -4,6 +4,9 @@ // $Id$ // // $Log$ +// Revision 1.5 1996/10/17 12:41:48 jbk +// took out strdup function - replaced with strDup +// // Revision 1.4 1996/09/07 13:03:07 jbk // fixes to destroyData function // @@ -438,7 +441,10 @@ gddStatus gddApplicationTypeTable::freeDD(gdd* dd) // that user can attach data to - which causes problems because // the actual structure of the DD is unknown for(i=1;isetNext(attr_table[group][app].free_list); diff --git a/src/gdd/gddTest.cc b/src/gdd/gddTest.cc index 558f71f70..99bd5d189 100644 --- a/src/gdd/gddTest.cc +++ b/src/gdd/gddTest.cc @@ -4,6 +4,9 @@ // $Id$ // // $Log$ +// Revision 1.4 1996/10/17 12:40:06 jbk +// adjusted the network byte ordering dump +// // Revision 1.3 1996/08/23 20:28:46 jbk // made dump functions print more useful information // @@ -277,7 +280,7 @@ void gddContainer::dump(void) // should use a cursor - for(i=0;dd=getDD(i);i++) + for(i=1;dd=getDD(i);i++) { if(dd->isAtomic()) { add=(gddAtomic*)dd; add->dump(); } if(dd->isScalar()) { sdd=(gddScalar*)dd; sdd->dump(); }