[Avida-SVN] r1567 - in branches/uml/source: cpu main
hjg at myxo.css.msu.edu
hjg at myxo.css.msu.edu
Thu May 17 06:39:14 PDT 2007
Author: hjg
Date: 2007-05-17 09:39:14 -0400 (Thu, 17 May 2007)
New Revision: 1567
Modified:
branches/uml/source/cpu/cHardwareCPU.cc
branches/uml/source/cpu/cHardwareCPU.h
branches/uml/source/main/cOrganism.cc
branches/uml/source/main/cOrganism.h
branches/uml/source/main/cUMLModel.cc
branches/uml/source/main/cUMLStateDiagram.cc
branches/uml/source/main/cUMLStateDiagram.h
Log:
Each model now maintains its own indices used to manipulate the various state diagrams.
Modified: branches/uml/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/uml/source/cpu/cHardwareCPU.cc 2007-05-17 12:28:14 UTC (rev 1566)
+++ branches/uml/source/cpu/cHardwareCPU.cc 2007-05-17 13:39:14 UTC (rev 1567)
@@ -353,18 +353,21 @@
"Increment to the next position in the list"),
tInstLibEntry<tMethod>("prev", &cHardwareCPU::Inst_Prev, false,
"Decrement to the previous position in the list"),
+/*
tInstLibEntry<tMethod>("addTransLab", &cHardwareCPU::Inst_AddTransitionLabel, false,
"Add a transition label"),
tInstLibEntry<tMethod>("addTrans", &cHardwareCPU::Inst_AddTransition, false,
"Add a transition"),
+*/
tInstLibEntry<tMethod>("addTransT", &cHardwareCPU::Inst_AddTransitionTotal, false,
"Add a transition without adding a label."),
tInstLibEntry<tMethod>("jump", &cHardwareCPU::Inst_JumpIndex, false,
"Jump to a position in the list"),
- tInstLibEntry<tMethod>("first", &cHardwareCPU::Inst_First, false,
+/* tInstLibEntry<tMethod>("first", &cHardwareCPU::Inst_First, false,
"Go to the first position in the list"),
tInstLibEntry<tMethod>("last", &cHardwareCPU::Inst_Last, false,
"Go to the last position in the list"),
+*/
tInstLibEntry<tMethod>("jump-d", &cHardwareCPU::Inst_JumpDist, false,
"Jump to a position in the list using labels."),
@@ -3891,31 +3894,31 @@
switch (reg_used){
case 0:
// decrement the triggers vector index
- organism->getStateDiagram()->relativeJumpTrigger(jump_amount);
+ organism->relativeJumpTrigger(jump_amount);
break;
case 1:
// decrement the guards vector index
- organism->getStateDiagram()->relativeJumpGuard(jump_amount);
+ organism->relativeJumpGuard(jump_amount);
break;
case 2:
// decrement the actions vector index
- organism->getStateDiagram()->relativeJumpAction(jump_amount);
+ organism->relativeJumpAction(jump_amount);
break;
case 3:
// decrement the transition labels index
- organism->getStateDiagram()->relativeJumpTransitionLabel(jump_amount);
+ organism->relativeJumpTransitionLabel(jump_amount);
break;
case 4:
// decrement the original state index
- organism->getStateDiagram()->relativeJumpOriginState(jump_amount);
+ organism->relativeJumpOriginState(jump_amount);
break;
case 5:
// decement the destination state index
- organism->getStateDiagram()->relativeJumpDestinationState(jump_amount);
+ organism->relativeJumpDestinationState(jump_amount);
break;
case 6:
// jump the state diagram index
- organism->relativeMoveSDIndex(jump_amount);
+ organism->relativeJumpStateDiagram(jump_amount);
break;
}
return true;
@@ -3932,31 +3935,31 @@
switch (reg_used){
case 0:
// decrement the triggers vector index
- organism->getStateDiagram()->relativeJumpTrigger(jump_amount);
+ organism->relativeJumpTrigger(jump_amount);
break;
case 1:
// decrement the guards vector index
- organism->getStateDiagram()->relativeJumpGuard(jump_amount);
+ organism->relativeJumpGuard(jump_amount);
break;
case 2:
// decrement the actions vector index
- organism->getStateDiagram()->relativeJumpAction(jump_amount);
+ organism->relativeJumpAction(jump_amount);
break;
case 3:
// decrement the transition labels index
- organism->getStateDiagram()->relativeJumpTransitionLabel(jump_amount);
+ organism->relativeJumpTransitionLabel(jump_amount);
break;
case 4:
// decrement the original state index
- organism->getStateDiagram()->relativeJumpOriginState(jump_amount);
+ organism->relativeJumpOriginState(jump_amount);
break;
case 5:
// decement the destination state index
- organism->getStateDiagram()->relativeJumpDestinationState(jump_amount);
+ organism->relativeJumpDestinationState(jump_amount);
break;
case 6:
// jump the state diagram index
- organism->relativeMoveSDIndex(jump_amount);
+ organism->relativeJumpStateDiagram(jump_amount);
break;
}
return true;
@@ -3974,31 +3977,31 @@
switch (reg_used){
case 0:
// decrement the triggers vector index
- organism->getStateDiagram()->absoluteJumpTrigger(jump_amount);
+ organism->absoluteJumpTrigger(jump_amount);
break;
case 1:
// decrement the guards vector index
- organism->getStateDiagram()->absoluteJumpGuard(jump_amount);
+ organism->absoluteJumpGuard(jump_amount);
break;
case 2:
// decrement the actions vector index
- organism->getStateDiagram()->absoluteJumpAction(jump_amount);
+ organism->absoluteJumpAction(jump_amount);
break;
case 3:
// decrement the transition labels index
- organism->getStateDiagram()->absoluteJumpTransitionLabel(jump_amount);
+ organism->absoluteJumpTransitionLabel(jump_amount);
break;
case 4:
// decrement the original state index
- organism->getStateDiagram()->absoluteJumpOriginState(jump_amount);
+ organism->absoluteJumpOriginState(jump_amount);
break;
case 5:
// decement the destination state index
- organism->getStateDiagram()->absoluteJumpDestinationState(jump_amount);
+ organism->absoluteJumpDestinationState(jump_amount);
break;
case 6:
// jump the state diagram index
- organism->absoluteMoveSDIndex(jump_amount);
+ organism->absoluteJumpStateDiagram(jump_amount);
break;
}
return true;
@@ -4018,36 +4021,38 @@
switch (reg_used){
case 0:
// jump the triggers vector index
- organism->getStateDiagram()->absoluteJumpTrigger(jump_amount);
+ organism->absoluteJumpTrigger(jump_amount);
break;
case 1:
// jump the guards vector index
- organism->getStateDiagram()->absoluteJumpGuard(jump_amount);
+ organism->absoluteJumpGuard(jump_amount);
break;
case 2:
// jump the actions vector index
- organism->getStateDiagram()->absoluteJumpAction(jump_amount);
+ organism->absoluteJumpAction(jump_amount);
break;
case 3:
// jump the transition labels index
- organism->getStateDiagram()->absoluteJumpTransitionLabel(jump_amount);
+ organism->absoluteJumpTransitionLabel(jump_amount);
break;
case 4:
// jump the original state index
- organism->getStateDiagram()->absoluteJumpOriginState(jump_amount);
+ organism->absoluteJumpOriginState(jump_amount);
break;
case 5:
// jump the destination state index
- organism->getStateDiagram()->absoluteJumpDestinationState(jump_amount);
+ organism->absoluteJumpDestinationState(jump_amount);
break;
case 6:
// jump the state diagram index
- organism->absoluteMoveSDIndex(jump_amount);
+ organism->absoluteJumpStateDiagram(jump_amount);
break;
}
return true;
}
+/*
+
bool cHardwareCPU::Inst_First(cAvidaContext& ctx)
{
if(organism->GetCellID()==-1) return false;
@@ -4141,6 +4146,7 @@
return organism->getStateDiagram()->addTransitionLabel();
// return true;
}
+*/
bool cHardwareCPU::Inst_AddState(cAvidaContext& ctx)
{
@@ -4149,12 +4155,15 @@
return organism->getStateDiagram()->addState();
}
+
+/*
bool cHardwareCPU::Inst_AddTransition(cAvidaContext& ctx)
{
if(organism->GetCellID()==-1) return false;
return organism->getStateDiagram()->addTransition();
}
+*/
bool cHardwareCPU::Inst_AddTransitionTotal(cAvidaContext& ctx)
{
@@ -4162,7 +4171,7 @@
organism->modelCheck(ctx);
- return organism->getStateDiagram()->addTransitionTotal();
+ return organism->addTransitionTotal();
}
Modified: branches/uml/source/cpu/cHardwareCPU.h
===================================================================
--- branches/uml/source/cpu/cHardwareCPU.h 2007-05-17 12:28:14 UTC (rev 1566)
+++ branches/uml/source/cpu/cHardwareCPU.h 2007-05-17 13:39:14 UTC (rev 1567)
@@ -540,11 +540,11 @@
bool Inst_Prev(cAvidaContext& ctx);
bool Inst_JumpIndex(cAvidaContext& ctx);
bool Inst_JumpDist(cAvidaContext& ctx);
- bool Inst_AddTransitionLabel(cAvidaContext& ctx);
- bool Inst_AddTransition(cAvidaContext& ctx);
+// bool Inst_AddTransitionLabel(cAvidaContext& ctx);
+// bool Inst_AddTransition(cAvidaContext& ctx);
bool Inst_AddTransitionTotal(cAvidaContext& ctx);
- bool Inst_Last(cAvidaContext& ctx);
- bool Inst_First(cAvidaContext& ctx);
+// bool Inst_Last(cAvidaContext& ctx);
+// bool Inst_First(cAvidaContext& ctx);
};
Modified: branches/uml/source/main/cOrganism.cc
===================================================================
--- branches/uml/source/main/cOrganism.cc 2007-05-17 12:28:14 UTC (rev 1566)
+++ branches/uml/source/main/cOrganism.cc 2007-05-17 13:39:14 UTC (rev 1567)
@@ -89,6 +89,11 @@
if (m_world->GetConfig().NET_ENABLED.Get()) m_net = new cNetSupport();
m_id = m_world->GetStats().GetTotCreatures();
m_state_diag = 0;
+ m_orig_state_index = 0;
+ m_dest_state_index = 0;
+ m_trigger_index = 0;
+ m_guard_index = 0;
+ m_action_index = 0;
}
@@ -641,13 +646,13 @@
return deme.getUMLModel();
}
-bool cOrganism::absoluteMoveSDIndex (int amount )
+bool cOrganism::absoluteJumpStateDiagram (int amount )
{
m_state_diag = 0;
- return relativeMoveSDIndex(amount);
+ return relativeJumpStateDiagram(amount);
}
-bool cOrganism::relativeMoveSDIndex (int amount )
+bool cOrganism::relativeJumpStateDiagram (int amount )
{
int size = getUMLModel()->getStateDiagramSize();
@@ -682,7 +687,66 @@
// check if it is manipulating this diagram
if (sd != m_state_diag) return false;
- return (getUMLModel()->getStateDiagram(m_state_diag)->currTrans(orig, dest, tr, gu, act));
+ cUMLStateDiagram* s = getUMLModel()->getStateDiagram(m_state_diag);
+ s->absoluteJumpOriginState(m_orig_state_index);
+ s->absoluteJumpDestinationState(m_dest_state_index);
+ s->absoluteJumpTrigger(m_trigger_index);
+ s->absoluteJumpGuard(m_guard_index);
+ s->absoluteJumpAction(m_action_index);
+
+ return (s->currTrans(orig, dest, tr, gu, act));
}
+bool cOrganism::absoluteJumpGuard(int amount)
+{
+ m_guard_index = 0;
+ return (relativeJumpGuard(amount));
+}
+
+bool cOrganism::absoluteJumpAction(int amount)
+{
+ m_action_index = 0;
+ return (relativeJumpAction(amount));
+
+}
+
+bool cOrganism::absoluteJumpTrigger(int amount)
+{
+ m_trigger_index = 0;
+ return (relativeJumpTrigger(amount));
+}
+
+bool cOrganism::absoluteJumpTransitionLabel(int amount)
+{
+ m_trans_label_index =0;
+ return (relativeJumpTransitionLabel(amount));
+}
+
+
+bool cOrganism::absoluteJumpOriginState(int amount)
+{
+ m_orig_state_index = 0;
+ return (relativeJumpOriginState(amount));
+}
+
+bool cOrganism::absoluteJumpDestinationState(int amount)
+{
+ m_dest_state_index = 0;
+ return (relativeJumpDestinationState(amount));
+}
+
+bool cOrganism::addTransitionTotal()
+{
+ bool val;
+ val = getStateDiagram()->addTransitionTotal(m_orig_state_index, m_dest_state_index, m_trigger_index, m_guard_index, m_action_index);
+ m_orig_state_index = 0;
+ m_dest_state_index = 0;
+ m_trigger_index = 0;
+ m_action_index = 0;
+ m_guard_index = 0;
+ return val;
+}
+
+
+
\ No newline at end of file
Modified: branches/uml/source/main/cOrganism.h
===================================================================
--- branches/uml/source/main/cOrganism.h 2007-05-17 12:28:14 UTC (rev 1566)
+++ branches/uml/source/main/cOrganism.h 2007-05-17 13:39:14 UTC (rev 1567)
@@ -142,6 +142,12 @@
// UML
int m_state_diag; // Index of the state diagram that the organism is currently
// manipulating
+ int m_orig_state_index;
+ int m_dest_state_index;
+ int m_trans_label_index;
+ int m_trigger_index;
+ int m_guard_index;
+ int m_action_index;
class cNetSupport
{
@@ -303,13 +309,40 @@
void modelCheck(cAvidaContext& ctx);
cUMLModel* getUMLModel();
int getStateDiagramIndex() { return m_state_diag; }
- bool absoluteMoveSDIndex (int);
- bool relativeMoveSDIndex (int);
- bool lastStateDiagram () { m_state_diag = getUMLModel()->getStateDiagramSize(); }
- bool firstStateDiagram() { m_state_diag = 0; }
+// bool lastStateDiagram () { m_state_diag = getUMLModel()->getStateDiagramSize(); }
+// bool firstStateDiagram() { m_state_diag = 0; }
bool currTrans (int, int, int, std::string, std::string, std::string);
cUMLStateDiagram* getStateDiagram();
+
+
+// The jump functions jump the index of the various vectors either forward (+ int) or backwards (- int)
+ bool absoluteJumpGuard(int);
+ bool absoluteJumpAction(int);
+ bool absoluteJumpTrigger(int);
+ bool absoluteJumpTransitionLabel(int);
+ bool absoluteJumpOriginState(int);
+ bool absoluteJumpDestinationState(int);
+ bool absoluteJumpStateDiagram (int);
+
+ bool relativeJumpGuard(int amount) { m_guard_index += amount; return true;}
+ bool relativeJumpAction(int amount) { m_action_index += amount; return true;}
+ bool relativeJumpTrigger(int amount) { m_trigger_index += amount; return true;}
+ bool relativeJumpTransitionLabel(int amount) { m_trans_label_index += amount; return true;}
+ bool relativeJumpOriginState(int amount) { m_orig_state_index += amount; return true;}
+ bool relativeJumpDestinationState(int amount) { m_dest_state_index += amount; return true;}
+ bool relativeJumpStateDiagram (int);
+ bool addTransitionTotal();
+
+
+ /*
+ int m_orig_state_index;
+ int m_dest_state_index;
+ int m_trigger_index;
+ int m_guard_index;
+ int m_action_index;
+ */
+
};
Modified: branches/uml/source/main/cUMLModel.cc
===================================================================
--- branches/uml/source/main/cUMLModel.cc 2007-05-17 12:28:14 UTC (rev 1566)
+++ branches/uml/source/main/cUMLModel.cc 2007-05-17 13:39:14 UTC (rev 1567)
@@ -95,7 +95,7 @@
// null trans Init state to Idle state
soft_sense->absoluteJumpDestinationState(1);
- soft_sense->addTransitionTotal();
+ soft_sense->addTransitionTotal(0, 1, 0, 0, 0);
// Temperature Sensor
@@ -198,13 +198,13 @@
// action:
// TempSensor.getOpState()
- temp_bonus += soft_sense->findTrans(-1, -1, -1, "*", "^TempSensor.getOpState()");
+ temp_bonus = soft_sense->findTrans(-1, -1, -1, "*", "^TempSensor.getOpState()");
self_bonus["seq_d_1"] = temp_bonus;
bonus += temp_bonus;
// trigger:
// setTempOpState(op_state)
- temp_bonus += soft_sense->findTrans(-1, -1, 1, "*", "*");
+ temp_bonus = soft_sense->findTrans(-1, -1, 1, "*", "*");
self_bonus["seq_d_2"] = temp_bonus;
bonus += temp_bonus;
@@ -213,18 +213,18 @@
// trigger:
// getOpState()
- temp_bonus += temp_sense->findTrans(-1, -1, 1, "*", "*");
+ temp_bonus = temp_sense->findTrans(-1, -1, 1, "*", "*");
self_bonus["seq_d_3"] = temp_bonus;
bonus += temp_bonus;
// action:
// op_state := 1
- temp_bonus += temp_sense->findTrans(-1, -1, -1, "*", "op_state:=1");
+ temp_bonus = temp_sense->findTrans(-1, -1, -1, "*", "op_state:=1");
self_bonus["seq_d_4"] = temp_bonus;
bonus += temp_bonus;
- temp_bonus += temp_sense->findTrans(-1, -1, -1, "*", "^SoftwareSensor.setTempOpState(op_state)");
+ temp_bonus = temp_sense->findTrans(-1, -1, -1, "*", "^SoftwareSensor.setTempOpState(op_state)");
self_bonus["seq_d_5"] = temp_bonus;
bonus += temp_bonus;
Modified: branches/uml/source/main/cUMLStateDiagram.cc
===================================================================
--- branches/uml/source/main/cUMLStateDiagram.cc 2007-05-17 12:28:14 UTC (rev 1566)
+++ branches/uml/source/main/cUMLStateDiagram.cc 2007-05-17 13:39:14 UTC (rev 1567)
@@ -10,23 +10,9 @@
trigger_index = 0;
guard_index = 0;
action_index = 0;
+
xmi = "";
-/*
- trigger_info trig;
- trig.label = "<null>";
- trig.operation_id = "<null>";
- triggers.push_back(trig);
- trig.label = "setTempOpState";
- trig.operation_id = "XDE-4437EBF1-9C42-4EB4-B7CF-415697B567CD";
- triggers.push_back(trig);
- trig.label = "setTempData";
- trig.operation_id = "XDE-9517D6BA-8666-4A82-AFEA-62D60FE37B07";
- triggers.push_back(trig);
- guards.push_back("<null>");
- actions.push_back("<null>");
- actions.push_back("^TempSensor.getOpState()");
- actions.push_back("^TempSensor.getTempData()");
- */
+
// initialize w/ 10 states
@@ -38,41 +24,6 @@
states.push_back(s);
}
-/*
- // initialize transitions
- transition t;
-
-
- // State 0->1
- t.orig_state = 0;
- t.dest_state = 1;
- states[0].num_outgoing += 1;
- states[1].num_incoming += 1;
- t.trans.trigger = 0;
- t.trans.guard = "<null>";
- t.trans.action = "<null>";
- transitions.push_back(t);
-
- // State 1->2
- t.orig_state = 1;
- t.dest_state = 2;
- states[1].num_outgoing += 1;
- states[2].num_incoming += 1;
- t.trans.trigger = 0;
- t.trans.guard = "<null>";
- t.trans.action = "^TempSensor.getTempData()";
- transitions.push_back(t);
-
- // State 2->1
- t.orig_state = 2;
- t.dest_state = 1;
- states[2].num_outgoing += 1;
- states[1].num_incoming += 1;
- t.trans.trigger = 2;
- t.trans.guard = "<null>";
- t.trans.action = "<null>";
- transitions.push_back(t);
-*/
}
cUMLStateDiagram::~cUMLStateDiagram()
@@ -83,7 +34,6 @@
bool cUMLStateDiagram::findTransLabel(transition_label t) {
for(std::vector<transition_label>::iterator i=transition_labels.begin(); i!=transition_labels.end(); ++i){
if ((i->trigger == t.trigger) && (i->guard == t.guard) && (i->action == t.action)) {
-// if (i->trigger == t.trigger) {
return true;
}
}
@@ -153,6 +103,7 @@
}
+
bool cUMLStateDiagram::absoluteJumpTrigger(int jump_amount)
{
return absoluteMoveIndex(triggers, trigger_index, jump_amount);
@@ -183,6 +134,7 @@
return absoluteMoveIndex(states, dest_state_index, jump_amount);
}
+/*
bool cUMLStateDiagram::relativeJumpTrigger(int jump_amount)
{
return relativeMoveIndex(triggers, trigger_index, jump_amount);
@@ -212,6 +164,7 @@
{
return relativeMoveIndex(states, dest_state_index, jump_amount);
}
+*/
int cUMLStateDiagram::getTriggerIndex()
{
@@ -290,6 +243,8 @@
return true;
}
+/*
+// Broken - 5/17
bool cUMLStateDiagram::addTransitionLabel()
{
transition_label t;
@@ -306,13 +261,14 @@
// Move the transition label index to the most recently created
trans_label_index = transition_labels.size() - 1;
-
- return true;
+
+ return false;
}
-
+// Broken - 5/17
bool cUMLStateDiagram::addTransition()
{
+ /*
if ((states.size() == 0) || (transition_labels.size() == 0)) {
return false;
@@ -333,26 +289,35 @@
}
transitions.push_back(t);
+
return true;
}
+*/
-bool cUMLStateDiagram::addTransitionTotal()
+bool cUMLStateDiagram::addTransitionTotal(int o, int d, int t, int g, int a)
{
if ((states.size() == 0)) {
return false;
}
- transition t;
- t.orig_state = getOrigStateIndex();
- t.dest_state = getDestStateIndex();
+ // Initialize the indices
+ absoluteMoveIndex(states, orig_state_index, o);
+ absoluteMoveIndex(states, dest_state_index, d);
+ absoluteMoveIndex(triggers, trigger_index, t);
+ absoluteMoveIndex(guards, guard_index, g);
+ absoluteMoveIndex(actions, action_index, a);
+
+ transition trany;
+ trany.orig_state = getOrigStateIndex();
+ trany.dest_state = getDestStateIndex();
// Do not create transition if the origin state is unreachable.
- if ((t.orig_state != 0) && (states[t.orig_state].num_incoming == 0)) {
+ if ((trany.orig_state != 0) && (states[trany.orig_state].num_incoming == 0)) {
return false;
}
@@ -365,32 +330,30 @@
tl.trigger = getTriggerIndex();
tl.guard = getGuard();
tl.action = getAction();
- t.trans = tl;
+ trany.trans = tl;
// no dupes
- if (findTrans(t.orig_state, t.dest_state, t.trans.trigger, t.trans.guard, t.trans.action)) {
+ if (findTrans(trany.orig_state, trany.dest_state, trany.trans.trigger, trany.trans.guard, trany.trans.action)) {
return false;
}
- int q1 = numTrans();
-
- transitions.push_back(t);
+ transitions.push_back(trany);
- int q = numTrans();
- // reset all indices
+/* // reset all indices
orig_state_index = 0;
dest_state_index = 0;
trigger_index = 0;
action_index = 0;
- guard_index = 0;
+ guard_index = 0;*/
return true;
}
+
bool cUMLStateDiagram::currTrans(int orig, int dest, std::string tr, std::string gu, std::string act)
{
@@ -408,6 +371,7 @@
}
+
int cUMLStateDiagram::numStates()
{
return states.size();
Modified: branches/uml/source/main/cUMLStateDiagram.h
===================================================================
--- branches/uml/source/main/cUMLStateDiagram.h 2007-05-17 12:28:14 UTC (rev 1566)
+++ branches/uml/source/main/cUMLStateDiagram.h 2007-05-17 13:39:14 UTC (rev 1567)
@@ -39,13 +39,14 @@
std::vector<std::string> actions;
std::vector<transition> transitions;
std::vector<transition_label> transition_labels;
-
+
int orig_state_index;
int dest_state_index;
int trans_label_index;
int trigger_index;
int guard_index;
int action_index;
+
std::string xmi;
@@ -67,12 +68,16 @@
bool currTrans(int, int, std::string, std::string, std::string);
+// These functions have been moved to the organism.
+
template <typename T>
bool absoluteMoveIndex (T x, int &y, int z);
-
+
+
template <typename T>
bool relativeMoveIndex (T x, int &y, int z);
+
// The jump functions jump the index of the various vectors either forward (+ int) or backwards (- int)
bool absoluteJumpGuard(int);
bool absoluteJumpAction(int);
@@ -80,13 +85,18 @@
bool absoluteJumpTransitionLabel(int);
bool absoluteJumpOriginState(int);
bool absoluteJumpDestinationState(int);
+/*
bool relativeJumpGuard(int);
bool relativeJumpAction(int);
bool relativeJumpTrigger(int);
bool relativeJumpTransitionLabel(int);
bool relativeJumpOriginState(int);
bool relativeJumpDestinationState(int);
+*/
+/*
+// The first and last functions do not work since each org maintains its own info about the
+// state diagram, but we don't necessarily know to which state diagram it is referring.
// The first functions jump the index to the beginning of various vectors
bool firstGuard() {guard_index = 0;}
@@ -103,10 +113,12 @@
bool lastTransitionLabel() {trans_label_index = (transition_labels.size()-1);}
bool lastOriginState() {orig_state_index = (states.size()-1);}
bool lastDestinationState() {dest_state_index = (states.size()-1);}
+*/
// The get functions get the value of the index of various vectors
// std::string getTriggerIndex();
+
int getTriggerIndex();
std::string getGuard();
std::string getAction();
@@ -114,15 +126,17 @@
int getOrigStateIndex();
int getDestStateIndex();
+
// Add functions
bool addState();
- bool addTransitionLabel();
- bool addTransition();
- bool addTransitionTotal();
+// bool addTransitionLabel();
+// bool addTransition();
+ bool addTransitionTotal(int, int, int, int, int);
bool addTrigger(std::string, std::string);
bool addGuard(std::string);
bool addAction(std::string);
// END UML functions
+
};
More information about the Avida-cvs
mailing list