changed interface so that unreferenced table will not optimize away

This commit is contained in:
Jeff Hill
2001-07-03 00:58:18 +00:00
parent e195df9f32
commit 1fdcd08c9d
4 changed files with 162 additions and 94 deletions

View File

@@ -5,6 +5,9 @@
// $Id$
//
// $Log$
// Revision 1.13 2001/06/11 22:28:50 jhill
// revert because workaround for RTEMS didnt build
//
// Revision 1.12 2001/06/11 20:13:42 jhill
// workarounds for problems discovered when building for RTEMS
//
@@ -59,7 +62,7 @@
#define epicsExportSharedSymbols
#include "aitConvert.h"
int aitNoConvert(void* /*dest*/,const void* /*src*/,aitIndex /*count*/, const std::vector< std::string > &) {return -1;}
int aitNoConvert(void* /*dest*/,const void* /*src*/,aitIndex /*count*/, const std::vector< std::string > *) {return -1;}
#ifdef AIT_CONVERT
#undef AIT_CONVERT
@@ -75,12 +78,11 @@ int aitNoConvert(void* /*dest*/,const void* /*src*/,aitIndex /*count*/, const st
#define min(A,B) ((A)<(B)?(A):(B))
#endif
const std::vector<std::string> aitEmptyEnumStringTable;
/* put the fixed conversion functions here (ones not generated) */
/* ------- extra string conversion functions --------- */
static int aitConvertStringString(void* d,const void* s,aitIndex c, const std::vector< std::string > &)
static int aitConvertStringString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *)
{
// does not work - need to be fixed
aitIndex i;
@@ -89,24 +91,30 @@ static int aitConvertStringString(void* d,const void* s,aitIndex c, const std::v
for(i=0;i<c;i++) out[i]=in[i];
return 0;
}
static int aitConvertToNetStringString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
{ return aitConvertStringString(d,s,c, enumStringTable);}
static int aitConvertFromNetStringString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
{ return aitConvertStringString(d,s,c, enumStringTable);}
static int aitConvertToNetStringString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{ return aitConvertStringString(d,s,c, pEnumStringTable);}
static int aitConvertFromNetStringString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{ return aitConvertStringString(d,s,c, pEnumStringTable);}
/* ------ all the fixed string conversion functions ------ */
static int aitConvertFixedStringFixedString(void* d,const void* s,aitIndex c, const std::vector< std::string > &)
static int aitConvertFixedStringFixedString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *)
{
aitUint32 len = c*AIT_FIXED_STRING_SIZE;
memcpy(d,s,len);
return 0;
}
static int aitConvertToNetFixedStringFixedString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
{ return aitConvertFixedStringFixedString(d,s,c,enumStringTable);}
static int aitConvertFromNetFixedStringFixedString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
{ return aitConvertFixedStringFixedString(d,s,c,enumStringTable);}
static int aitConvertToNetFixedStringFixedString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{ return aitConvertFixedStringFixedString(d,s,c,pEnumStringTable);}
static int aitConvertFromNetFixedStringFixedString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{ return aitConvertFixedStringFixedString(d,s,c,pEnumStringTable);}
static int aitConvertStringFixedString(void* d,const void* s,aitIndex c, const std::vector< std::string > &)
static int aitConvertStringFixedString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *)
{
aitIndex i;
aitString* out = (aitString*)d;
@@ -116,7 +124,8 @@ static int aitConvertStringFixedString(void* d,const void* s,aitIndex c, const s
return 0;
}
static int aitConvertFixedStringString(void* d,const void* s,aitIndex c, const std::vector< std::string > &)
static int aitConvertFixedStringString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *)
{
aitIndex i;
aitString* in = (aitString*)s;
@@ -135,16 +144,21 @@ static int aitConvertFixedStringString(void* d,const void* s,aitIndex c, const s
return 0;
}
static int aitConvertToNetStringFixedString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
{ return aitConvertStringFixedString(d,s,c,enumStringTable); }
static int aitConvertFromNetFixedStringString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
{ return aitConvertFixedStringString(d,s,c,enumStringTable); }
static int aitConvertToNetFixedStringString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
{ return aitConvertStringFixedString(d,s,c,enumStringTable); }
static int aitConvertFromNetStringFixedString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
{ return aitConvertFixedStringString(d,s,c,enumStringTable); }
static int aitConvertToNetStringFixedString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{ return aitConvertStringFixedString(d,s,c,pEnumStringTable); }
static int aitConvertFromNetFixedStringString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{ return aitConvertFixedStringString(d,s,c,pEnumStringTable); }
static int aitConvertToNetFixedStringString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{ return aitConvertStringFixedString(d,s,c,pEnumStringTable); }
static int aitConvertFromNetStringFixedString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{ return aitConvertFixedStringString(d,s,c,pEnumStringTable); }
static int aitConvertStringEnum16(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertStringEnum16(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
aitIndex i;
int status=0;
@@ -153,9 +167,9 @@ static int aitConvertStringEnum16(void* d,const void* s,aitIndex c, const std::v
aitEnum16* in=(aitEnum16*)s;
for (i=0;i<c;i++) {
unsigned nChar;
if (in[i]<enumStringTable.size()) {
out[i].copy(enumStringTable[in[i]].c_str());
nChar = enumStringTable[in[i]].length();
if (pEnumStringTable&&in[i]<pEnumStringTable->size()) {
out[i].copy((*pEnumStringTable)[in[i]].c_str());
nChar = (*pEnumStringTable)[in[i]].length();
}
else {
nChar = sprintf(temp, "%hu",in[i]);
@@ -166,17 +180,20 @@ static int aitConvertStringEnum16(void* d,const void* s,aitIndex c, const std::v
return status;
}
static int aitConvertToNetStringEnum16(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertToNetStringEnum16(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
return aitConvertStringEnum16(d,s,c,enumStringTable);
return aitConvertStringEnum16(d,s,c,pEnumStringTable);
}
static int aitConvertFromNetStringEnum16(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertFromNetStringEnum16(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
return aitConvertStringEnum16(d,s,c,enumStringTable);
return aitConvertStringEnum16(d,s,c,pEnumStringTable);
}
static int aitConvertFixedStringEnum16(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertFixedStringEnum16(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
aitIndex i;
int status=0;
@@ -184,8 +201,8 @@ static int aitConvertFixedStringEnum16(void* d,const void* s,aitIndex c, const s
aitEnum16* in=(aitEnum16*)s;
for (i=0;i<c;i++) {
unsigned nChar;
if (in[i]<enumStringTable.size()) {
strncpy(out[i].fixed_string, enumStringTable[in[i]].c_str(),sizeof(out[i].fixed_string));
if (pEnumStringTable&&in[i]<pEnumStringTable->size()) {
strncpy(out[i].fixed_string, (*pEnumStringTable)[in[i]].c_str(),sizeof(out[i].fixed_string));
out[i].fixed_string[sizeof(out[i].fixed_string)-1] = '\0';
nChar = sizeof(out[i].fixed_string);
}
@@ -198,17 +215,20 @@ static int aitConvertFixedStringEnum16(void* d,const void* s,aitIndex c, const s
return status;
}
static int aitConvertToNetFixedStringEnum16(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertToNetFixedStringEnum16(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
return aitConvertFixedStringEnum16(d,s,c,enumStringTable);
return aitConvertFixedStringEnum16(d,s,c,pEnumStringTable);
}
static int aitConvertFromNetFixedStringEnum16(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertFromNetFixedStringEnum16(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
return aitConvertFixedStringEnum16(d,s,c,enumStringTable);
return aitConvertFixedStringEnum16(d,s,c,pEnumStringTable);
}
static int aitConvertEnum16FixedString (void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertEnum16FixedString (void* d,const void* s,aitIndex c,
const std::vector< std::string > *pEnumStringTable)
{
aitIndex i;
int status = 0;
@@ -219,15 +239,20 @@ static int aitConvertEnum16FixedString (void* d,const void* s,aitIndex c, const
//
// convert only after a range check
//
assert (enumStringTable.size()<=0xffff);
nChoices = static_cast<aitEnum16>(enumStringTable.size());
if ( pEnumStringTable ) {
assert (pEnumStringTable->size()<=0xffff);
nChoices = static_cast<aitEnum16>(pEnumStringTable->size());
}
else {
nChoices = 0;
}
for (i=0;i<c;i++) {
//
// find the choice that matches
//
for (choice=0;choice<nChoices;choice++) {
if (strcmp(enumStringTable[choice].c_str(), in[i].fixed_string)==0) {
if (strcmp((*pEnumStringTable)[choice].c_str(), in[i].fixed_string)==0) {
out[i] = choice;
status += sizeof(out[i]);
break;
@@ -243,17 +268,20 @@ static int aitConvertEnum16FixedString (void* d,const void* s,aitIndex c, const
return status;
}
static int aitConvertToNetEnum16FixedString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertToNetEnum16FixedString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
return aitConvertEnum16FixedString(d,s,c,enumStringTable);
return aitConvertEnum16FixedString(d,s,c,pEnumStringTable);
}
static int aitConvertFromNetEnum16FixedString(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertFromNetEnum16FixedString(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
return aitConvertEnum16FixedString(d,s,c,enumStringTable);
return aitConvertEnum16FixedString(d,s,c,pEnumStringTable);
}
static int aitConvertEnum16String (void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertEnum16String (void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
aitIndex i;
int status = 0;
@@ -264,15 +292,20 @@ static int aitConvertEnum16String (void* d,const void* s,aitIndex c, const std::
//
// convert only after a range check
//
assert (enumStringTable.size()<=0xffff);
nChoices = static_cast<aitEnum16>(enumStringTable.size());
if ( pEnumStringTable ) {
assert (pEnumStringTable->size()<=0xffff);
nChoices = static_cast<aitEnum16>(pEnumStringTable->size());
}
else {
nChoices = 0u;
}
for (i=0;i<c;i++) {
//
// find the choice that matches
//
for (choice=0;choice<nChoices;choice++) {
if (strcmp(enumStringTable[choice].c_str(), in[i].string())==0) {
if (strcmp((*pEnumStringTable)[choice].c_str(), in[i].string())==0) {
out[i] = choice;
status += sizeof(out[i]);
break;
@@ -288,14 +321,16 @@ static int aitConvertEnum16String (void* d,const void* s,aitIndex c, const std::
return status;
}
static int aitConvertToNetEnum16String(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertToNetEnum16String(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
return aitConvertEnum16String(d,s,c,enumStringTable);
return aitConvertEnum16String(d,s,c,pEnumStringTable);
}
static int aitConvertFromNetEnum16String(void* d,const void* s,aitIndex c, const std::vector< std::string > &enumStringTable)
static int aitConvertFromNetEnum16String(void* d,const void* s,
aitIndex c, const std::vector< std::string > *pEnumStringTable)
{
return aitConvertEnum16String(d,s,c,enumStringTable);
return aitConvertEnum16String(d,s,c,pEnumStringTable);
}
#define AIT_CONVERT 1

View File

@@ -8,6 +8,9 @@
* $Id$
*
* $Log$
* Revision 1.12 2001/06/11 22:28:51 jhill
* revert because workaround for RTEMS didnt build
*
* Revision 1.11 2001/06/11 20:13:42 jhill
* workarounds for problems discovered when building for RTEMS
*
@@ -74,7 +77,7 @@
typedef enum { aitLocalDataFormat=0, aitNetworkDataFormat } aitDataFormat;
/* all conversion functions have this prototype */
typedef int (*aitFunc)(void* dest,const void* src,aitIndex count,const std::vector< std::string > &enumStringTable);
typedef int (*aitFunc)(void* dest,const void* src,aitIndex count,const std::vector< std::string > *pEnumStringTable);
#ifdef __cplusplus
extern "C" {
@@ -99,22 +102,20 @@ epicsShareExtern aitFunc aitConvertFromNetTable[aitTotal][aitTotal];
#if defined(__cplusplus)
extern const std::vector<std::string> aitEmptyEnumStringTable;
inline int aitConvert(aitEnum desttype, void* dest,
aitEnum srctype, const void* src, aitIndex count,
const std::vector< std::string > &enumStringTable = aitEmptyEnumStringTable )
{ return (*aitConvertTable[desttype][srctype])(dest,src,count,enumStringTable); }
const std::vector<std::string> *pEnumStringTable = 0 )
{ return (*aitConvertTable[desttype][srctype])(dest,src,count,pEnumStringTable); }
inline int aitConvertToNet(aitEnum desttype, void* dest,
aitEnum srctype, const void* src, aitIndex count,
const std::vector< std::string > &enumStringTable = aitEmptyEnumStringTable )
{ return (*aitConvertToNetTable[desttype][srctype])(dest,src,count,enumStringTable); }
const std::vector<std::string> *pEnumStringTable = 0 )
{ return (*aitConvertToNetTable[desttype][srctype])(dest,src,count,pEnumStringTable); }
inline int aitConvertFromNet(aitEnum desttype, void* dest,
aitEnum srctype, const void* src, aitIndex count,
const std::vector< std::string > &enumStringTable = aitEmptyEnumStringTable )
{ return (*aitConvertFromNetTable[desttype][srctype])(dest,src,count,enumStringTable); }
const std::vector<std::string> *pEnumStringTable = 0 )
{ return (*aitConvertFromNetTable[desttype][srctype])(dest,src,count,pEnumStringTable); }
#else

View File

@@ -5,6 +5,9 @@
* $Id$
*
* $Log$
* Revision 1.10 2000/10/12 21:52:48 jhill
* changes to support compilation by borland
*
* Revision 1.9 1999/10/28 23:33:41 jhill
* use fully qualified namespace names for C++ RTL classes
*
@@ -231,7 +234,7 @@ void MakeStringFuncFrom(int i,int j,int k)
/* assumes that void* d in an array of char pointers of length c */
/* takes numeric data from source j and convert it to string in dest i */
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> &)\n",
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> *)\n",
table_type[k],&(aitName[i])[3],&(aitName[j])[3]);
pr(dfd,"{\n");
pr(dfd,"\taitIndex i;\n");
@@ -261,7 +264,7 @@ void MakeStringFuncTo(int i,int j,int k)
/* assumes that void* d in an array of char pointers of length c */
/* takes string data from source j and convert it to numeric in dest i */
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> &)\n",
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> *)\n",
table_type[k],&(aitName[i])[3],&(aitName[j])[3]);
pr(dfd,"{\n");
pr(dfd,"\taitIndex i;\n");
@@ -309,7 +312,7 @@ void MakeFStringFuncFrom(int i,int j,int k)
/* assumes that void* d in an array of char pointers of length c */
/* takes numeric data from source j and convert it to string in dest i */
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> &)\n",
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> *)\n",
table_type[k],&(aitName[i])[3],&(aitName[j])[3]);
pr(dfd,"{\n");
pr(dfd,"\taitIndex i;\n");
@@ -346,7 +349,7 @@ void MakeFStringFuncTo(int i,int j,int k)
{
/* assumes that void* d in an array of char pointers of length c */
/* takes string data from source j and convert it to numeric in dest i */
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> &)\n",
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> *)\n",
table_type[k],&(aitName[i])[3],&(aitName[j])[3]);
pr(dfd,"{\n");
pr(dfd,"\taitIndex i;\n");
@@ -392,7 +395,7 @@ void GenName(int i,int j,int k)
const char* i_name = &((aitName[i])[3]);
const char* j_name = &((aitName[j])[3]);
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> &)\n",
pr(dfd,"static int %s%s%s(void* d,const void* s,aitIndex c, const std::vector<std::string> *)\n",
table_type[k],i_name,j_name);
}

View File

@@ -4,6 +4,9 @@
// $Id$
//
// $Log$
// Revision 1.34 2000/09/27 19:43:52 jhill
// cosmetic
//
// Revision 1.33 2000/09/26 21:11:56 jhill
// added definition of min
//
@@ -260,7 +263,8 @@ static smartGDDPointer mapStringToGdd(void* v,aitIndex count) {
}
}
static int mapGddToString(void* vd, aitIndex count, const gdd & dd, const std::vector< std::string > &enumStringTable) {
static int mapGddToString(void* vd, aitIndex count,
const gdd & dd, const std::vector< std::string > &enumStringTable) {
aitFixedString* db = (aitFixedString*)vd;
aitIndex sz = dd.getDataSizeElements();
const void* v = dd.dataVoid();
@@ -273,14 +277,16 @@ static int mapGddToString(void* vd, aitIndex count, const gdd & dd, const std::v
if(local_data_format==aitLocalDataFormat) {
if((aitFixedString*)v!=db) {
status = aitConvert(aitEnumFixedString,db,dd.primitiveType(),v,count, enumStringTable);
status = aitConvert(aitEnumFixedString,db,
dd.primitiveType(),v,count, &enumStringTable);
}
else {
status = sz*sizeof(aitFixedString);
}
}
else {
status = aitConvertToNet(aitEnumFixedString,db,dd.primitiveType(),v,count, enumStringTable);
status = aitConvertToNet(aitEnumFixedString,
db,dd.primitiveType(),v,count, &enumStringTable);
}
return status;
@@ -319,14 +325,16 @@ static int mapGddToShort(void* vd, aitIndex count, const gdd &dd,
if (local_data_format==aitLocalDataFormat) {
if((dbr_short_t*)v!=sv) {
status = aitConvert(aitEnumInt16,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvert(aitEnumInt16,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
else {
status = count*sizeof(dbr_short_t);
}
}
else {
status = aitConvertToNet(aitEnumInt16,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvertToNet(aitEnumInt16,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
return status;
@@ -351,7 +359,8 @@ static smartGDDPointer mapFloatToGdd(void* v,aitIndex count) {
}
}
static int mapGddToFloat(void* vd, aitIndex count, const gdd & dd, const std::vector< std::string > &enumStringTable) {
static int mapGddToFloat(void* vd, aitIndex count,
const gdd & dd, const std::vector< std::string > &enumStringTable) {
dbr_float_t* sv = (dbr_float_t*)vd;
aitIndex sz=dd.getDataSizeElements();
const void * v = dd.dataVoid();
@@ -364,14 +373,16 @@ static int mapGddToFloat(void* vd, aitIndex count, const gdd & dd, const std::ve
if(local_data_format==aitLocalDataFormat) {
if((dbr_float_t*)v!=sv) {
status = aitConvert(aitEnumFloat32,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvert(aitEnumFloat32,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
else {
status = sz*sizeof(dbr_float_t);
}
}
else {
status = aitConvertToNet(aitEnumFloat32,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvertToNet(aitEnumFloat32,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
return status;
@@ -396,7 +407,8 @@ static smartGDDPointer mapEnumToGdd(void* v,aitIndex count) {
return dd;
}
static int mapGddToEnum(void* vd, aitIndex count, const gdd & dd, const std::vector< std::string > &enumStringTable) {
static int mapGddToEnum(void* vd, aitIndex count, const gdd & dd,
const std::vector< std::string > &enumStringTable) {
dbr_enum_t* sv = (dbr_enum_t*)vd;
aitIndex sz=dd.getDataSizeElements();
const void* v = dd.dataVoid();
@@ -409,14 +421,16 @@ static int mapGddToEnum(void* vd, aitIndex count, const gdd & dd, const std::vec
if(local_data_format==aitLocalDataFormat) {
if((dbr_enum_t*)v!=sv) {
status = aitConvert(aitEnumEnum16,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvert(aitEnumEnum16,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
else {
status = sizeof(dbr_enum_t)*count;
}
}
else {
status = aitConvertToNet(aitEnumEnum16,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvertToNet(aitEnumEnum16,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
return status;
@@ -441,7 +455,8 @@ static smartGDDPointer mapCharToGdd(void* v,aitIndex count) {
return dd;
}
static int mapGddToChar(void* vd, aitIndex count, const gdd & dd, const std::vector< std::string > &enumStringTable) {
static int mapGddToChar(void* vd, aitIndex count,
const gdd & dd, const std::vector< std::string > &enumStringTable) {
dbr_char_t* sv = (dbr_char_t*)vd;
aitIndex sz=dd.getDataSizeElements();
const void* v = dd.dataVoid();
@@ -454,14 +469,16 @@ static int mapGddToChar(void* vd, aitIndex count, const gdd & dd, const std::vec
if (local_data_format==aitLocalDataFormat) {
if((dbr_char_t*)v!=sv) {
status = aitConvert(aitEnumInt8,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvert(aitEnumInt8,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
else {
status = sz*sizeof(dbr_char_t);
}
}
else {
status = aitConvertToNet(aitEnumInt8,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvertToNet(aitEnumInt8,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
return status;
@@ -486,7 +503,8 @@ static smartGDDPointer mapLongToGdd(void* v,aitIndex count) {
return dd;
}
static int mapGddToLong(void* vd, aitIndex count, const gdd & dd, const std::vector< std::string > &enumStringTable) {
static int mapGddToLong(void* vd, aitIndex count, const gdd & dd,
const std::vector< std::string > &enumStringTable) {
dbr_long_t* sv = (dbr_long_t*)vd;
aitIndex sz=dd.getDataSizeElements();
const void* v = dd.dataVoid();
@@ -499,14 +517,16 @@ static int mapGddToLong(void* vd, aitIndex count, const gdd & dd, const std::vec
if (local_data_format==aitLocalDataFormat) {
if ((dbr_long_t*)v!=sv) {
status = aitConvert(aitEnumInt32,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvert(aitEnumInt32,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
else {
status = count*sizeof(dbr_long_t);
}
}
else {
status = aitConvertToNet(aitEnumInt32,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvertToNet(aitEnumInt32,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
return status;
@@ -531,7 +551,8 @@ static smartGDDPointer mapDoubleToGdd(void* v,aitIndex count) {
return dd;
}
static int mapGddToDouble(void* vd, aitIndex count, const gdd & dd, const std::vector< std::string > &enumStringTable) {
static int mapGddToDouble(void* vd, aitIndex count, const gdd & dd,
const std::vector< std::string > &enumStringTable) {
dbr_double_t* sv = (dbr_double_t*)vd;
aitIndex sz=dd.getDataSizeElements();
const void* v = dd.dataVoid();
@@ -544,14 +565,16 @@ static int mapGddToDouble(void* vd, aitIndex count, const gdd & dd, const std::v
if (local_data_format==aitLocalDataFormat) {
if ((dbr_double_t*)v!=sv) {
status = aitConvert(aitEnumFloat64,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvert(aitEnumFloat64,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
else {
status = count*sizeof(dbr_double_t);
}
}
else {
status = aitConvertToNet(aitEnumFloat64,sv,dd.primitiveType(),v,count, enumStringTable);
status = aitConvertToNet(aitEnumFloat64,sv,
dd.primitiveType(),v,count, &enumStringTable);
}
return status;
@@ -1673,7 +1696,8 @@ static int mapGddToAckt(void* vd, aitIndex count, const gdd & dd,
if (local_data_format==aitLocalDataFormat) {
if((dbr_put_ackt_t*)v!=sv) {
status =
aitConvert(aitEnumUint16,sv,dd.primitiveType(),v,sz,enumStringTable);
aitConvert(aitEnumUint16,sv,
dd.primitiveType(),v,sz,&enumStringTable);
}
else {
status = sz*sizeof(dbr_put_ackt_t);
@@ -1681,7 +1705,8 @@ static int mapGddToAckt(void* vd, aitIndex count, const gdd & dd,
}
else {
status =
aitConvertToNet(aitEnumUint16,sv,dd.primitiveType(),v,sz, enumStringTable);
aitConvertToNet(aitEnumUint16,sv,
dd.primitiveType(),v,sz, &enumStringTable);
}
}
else {
@@ -1723,7 +1748,8 @@ static int mapGddToAcks(void* vd, aitIndex count, const gdd &dd,
if (local_data_format==aitLocalDataFormat) {
if((dbr_put_acks_t*)v!=sv) {
status =
aitConvert(aitEnumUint16,sv,dd.primitiveType(),v,sz, enumStringTable);
aitConvert(aitEnumUint16,sv,
dd.primitiveType(),v,sz, &enumStringTable);
}
else {
status = sz*sizeof(dbr_put_acks_t);
@@ -1731,7 +1757,8 @@ static int mapGddToAcks(void* vd, aitIndex count, const gdd &dd,
}
else {
status =
aitConvertToNet(aitEnumUint16,sv,dd.primitiveType(),v,sz, enumStringTable);
aitConvertToNet(aitEnumUint16,sv,
dd.primitiveType(),v,sz, &enumStringTable);
}
}
else {
@@ -1779,7 +1806,8 @@ static int mapGddToClassName(void* vd, aitIndex count, const gdd & dd,
if(local_data_format==aitLocalDataFormat) {
if((aitFixedString*)v!=db) {
status =
aitConvert(aitEnumFixedString,db,dd.primitiveType(),v,count, enumStringTable);
aitConvert(aitEnumFixedString,db,
dd.primitiveType(),v,count, &enumStringTable);
}
else {
status = sz*sizeof(aitFixedString);
@@ -1787,7 +1815,8 @@ static int mapGddToClassName(void* vd, aitIndex count, const gdd & dd,
}
else {
status =
aitConvertToNet(aitEnumFixedString,db,dd.primitiveType(),v,count, enumStringTable);
aitConvertToNet(aitEnumFixedString,db,
dd.primitiveType(),v,count, &enumStringTable);
}
}
else {