Used in conjunction with the MyEvaluator class.
#include <malloc.h>
#include <vlutil/vlString.h>
#include "../addConditionalSim/conditionalExpression.h"
namespace vrfAddConditionalExample
{
myEntityName("Entity", &myRegistry),
myModifier("Modifier", &myRegistry)
{
}
MyConditionalExpression::MyConditionalExpression(
myEntityName("Entity", &myRegistry),
myModifier("Modifier", &myRegistry)
{
}
MyConditionalExpression::MyConditionalExpression(
const MyConditionalExpression& orig,
myEntityName("Entity", orig.myEntityName, &myRegistry),
myModifier("Modifier", orig.myModifier, &myRegistry)
{
}
MyConditionalExpression::~MyConditionalExpression()
{
}
const MyConditionalExpression& orig)
{
if (this == &orig)
{
return *this;
}
myEntityName = orig.myEntityName;
myModifier = orig.myModifier;
return *this;
}
{
return new MyConditionalExpression(*this, parentRegistry);
}
{
}
void MyConditionalExpression::setEntityName(
const DtString& name)
{
myEntityName = name;
if (myNetRep)
{
free(myNetRep);
myNetRep = NULL;
}
}
const DtString& MyConditionalExpression::entityName()
const
{
return myEntityName;
}
void MyConditionalExpression::setModifier(
const DtString& arg)
{
myModifier = arg;
if (myNetRep)
{
free(myNetRep);
myNetRep = NULL;
}
}
const DtString& MyConditionalExpression::modifier()
const
{
return myModifier;
}
{
if (subExprIndex == DtSR_EXPR)
{
if (myModifier.length() > 0)
{
return "Facing-North " + myModifier + " Entity:\"" +
myEntityName + "\"";
}
else
{
return "Facing-North:\"" + myEntityName + "\"";
}
}
return "";
}
{
return new MyConditionalExpression();
}
{
int size;
size = sizeof(DtNetCeFacingNorth);
size += myEntityName.length();
size += myModifier.length();
size = (
int) ceil(size / 8.) * 8;
return size;
}
unsigned contentSize)
{
DtNetCeFacingNorth* condExprBuffer;
condExprBuffer = (DtNetCeFacingNorth*)contentBuffer;
int entityNameStringLength = condExprBuffer->myEntityNameStringLength;
int modifierStringLength = condExprBuffer->myModifierStringLength;
char stringBuffer[256];
if(entityNameStringLength > 0)
{
const char *stringPtr = contentBuffer + sizeof(DtNetCeFacingNorth);
memcpy(stringBuffer, stringPtr, entityNameStringLength);
stringBuffer[entityNameStringLength] = '\0';
myEntityName = stringBuffer;
}
if(modifierStringLength > 0)
{
const char *stringPtr = contentBuffer + sizeof(DtNetCeFacingNorth) +
entityNameStringLength;
memcpy(stringBuffer, stringPtr, modifierStringLength);
stringBuffer[modifierStringLength] = '\0';
myModifier = stringBuffer;
}
return true;
}
{
if (!netRep())
{
return false;
}
DtNetCeFacingNorth* condExprBuffer = (DtNetCeFacingNorth*)myNetRep;
condExprBuffer->myEntityNameStringLength = myEntityName.length();
condExprBuffer->myModifierStringLength = myModifier.length();
char *stringPtr = myNetRep + sizeof(DtNetCeFacingNorth);
if (myEntityName.length() > 0)
{
memcpy(stringPtr, myEntityName.string(), myEntityName.length());
}
stringPtr = myNetRep + sizeof(DtNetCeFacingNorth) +
myEntityName.length();
if (myModifier.length() > 0)
{
memcpy(stringPtr, myModifier.string(), myModifier.length());
}
return true;
}
}