The implementations are very similar to what we did for the graph access methods:
//ACCESS_DPEDGESTRUCT
int ACCESS_DPEDGESTRUCT::equal(Arbent a,Arbent b)
{
DPEdgeStruct *t = (DPEdgeStruct *)a;
DPEdgeStruct *s = (DPEdgeStruct *)b;
return( (t->time==s->time));
}
void ACCESS_DPEDGESTRUCT::entry(Arbent *a,Arbent b)
{
(DPEdgeStruct *)(*a) = new DPEdgeStruct;
DPEdgeStruct *t = (DPEdgeStruct *)b;
((DPEdgeStruct *)(*a))->time = t->time;
}
ostream& ACCESS_DPEDGESTRUCT::show(ostream& out, Arbent a)
{
DPEdgeStruct *t = (DPEdgeStruct *)a;
out << "time = " << t->time << endl;
return out;
}
//ACCESS_DPNODESTRUCT
int ACCESS_DPNODESTRUCT::equal(Arbent a,Arbent b)
{
DPNodeStruct *t = (DPNodeStruct *)a;
DPNodeStruct *s = (DPNodeStruct *)b;
return( (t->value==s->value)
&&(t->previous_value==s->previous_value)
&&(t->control==s->control));
}
void ACCESS_DPNODESTRUCT::entry(Arbent *a,Arbent b)
{
(DPNodeStruct *)(*a) = new DPNodeStruct;
DPNodeStruct *t = (DPNodeStruct *)b;
((DPNodeStruct *)(*a))->value = t->value;
((DPNodeStruct *)(*a))->previous_value = t->previous_value;
((DPNodeStruct *)(*a))->control = t->control;
}
ostream& ACCESS_DPNODESTRUCT::show(ostream& out, Arbent a)
{
DPNodeStruct *t = (DPNodeStruct *)a;
out << "value = " << t->value << endl;
out << "previous_value = " << t->previous_value << endl;
//out << "control = " << t->control->from() << "->"
// << t->control->to() << endl;
return out;
}