|
From: <got...@us...> - 2009-10-17 14:59:49
|
Revision: 433
http://scstudio.svn.sourceforge.net/scstudio/?rev=433&view=rev
Author: gotthardp
Date: 2009-10-17 14:59:43 +0000 (Sat, 17 Oct 2009)
Log Message:
-----------
CoregionEventPSet is now stored in std::vector to fix false errors in Z.120 tests.
Use is_supported() in checker_test to increase test coverage.
Modified Paths:
--------------
trunk/src/check/pseudocode/utils.cpp
trunk/src/check/pseudocode/visual_closure_initiator.cpp
trunk/src/data/Z120/z120_save.cpp
trunk/src/data/dfs_area_traverser.cpp
trunk/src/data/dfs_events_traverser.cpp
trunk/src/data/msc.h
trunk/src/view/visio/addon/visualize.cpp
trunk/tests/checker_test.cpp
Modified: trunk/src/check/pseudocode/utils.cpp
===================================================================
--- trunk/src/check/pseudocode/utils.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/check/pseudocode/utils.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -39,8 +39,8 @@
get_first_area_events(coregion->get_next().get(),e);
else
{
- const CoregionEventPSet& minimals = coregion->get_minimal_events();
- CoregionEventPSet::const_iterator min;
+ const CoregionEventPVector& minimals = coregion->get_minimal_events();
+ CoregionEventPVector::const_iterator min;
for(min=minimals.begin(); min!=minimals.end(); min++)
m_succs.insert(*min);
}
Modified: trunk/src/check/pseudocode/visual_closure_initiator.cpp
===================================================================
--- trunk/src/check/pseudocode/visual_closure_initiator.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/check/pseudocode/visual_closure_initiator.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -48,8 +48,8 @@
else
{
CoregionArea* coregion_area = dynamic_cast<CoregionArea*>(pred_area);
- CoregionEventPSet::const_iterator max;
- const CoregionEventPSet& max_events = coregion_area->get_maximal_events();
+ CoregionEventPVector::const_iterator max;
+ const CoregionEventPVector& max_events = coregion_area->get_maximal_events();
for(max=max_events.begin();max!=max_events.end();max++)
{
make_closure(closure_matrix,succ_index,get_topology_index(*max));
Modified: trunk/src/data/Z120/z120_save.cpp
===================================================================
--- trunk/src/data/Z120/z120_save.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/data/Z120/z120_save.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -401,7 +401,7 @@
// events to be processed; this is to avoid recursion
std::list<CoregionEventPtr> event_stack;
- for(CoregionEventPSet::const_iterator mpos = coregion_area->get_minimal_events().begin();
+ for(CoregionEventPVector::const_iterator mpos = coregion_area->get_minimal_events().begin();
mpos != coregion_area->get_minimal_events().end(); mpos++)
{
// initialize the stack with events with no predecessors
Modified: trunk/src/data/dfs_area_traverser.cpp
===================================================================
--- trunk/src/data/dfs_area_traverser.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/data/dfs_area_traverser.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -36,8 +36,8 @@
else
{
CoregionArea* coregion = dynamic_cast<CoregionArea*>(area);
- const CoregionEventPSet& minimals = coregion->get_minimal_events();
- CoregionEventPSet::const_iterator min;
+ const CoregionEventPVector& minimals = coregion->get_minimal_events();
+ CoregionEventPVector::const_iterator min;
for(min=minimals.begin(); min!=minimals.end(); min++)
traverse_coregion_event(*min);
}
Modified: trunk/src/data/dfs_events_traverser.cpp
===================================================================
--- trunk/src/data/dfs_events_traverser.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/data/dfs_events_traverser.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -59,8 +59,8 @@
traverse_area(coregion->get_next().get());
else
{
- const CoregionEventPSet& minimals = coregion->get_minimal_events();
- CoregionEventPSet::const_iterator min;
+ const CoregionEventPVector& minimals = coregion->get_minimal_events();
+ CoregionEventPVector::const_iterator min;
for(min=minimals.begin(); min!=minimals.end(); min++)
traverse_coregion_event(*min);
}
Modified: trunk/src/data/msc.h
===================================================================
--- trunk/src/data/msc.h 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/data/msc.h 2009-10-17 14:59:43 UTC (rev 433)
@@ -108,7 +108,7 @@
typedef boost::intrusive_ptr<CoregionEvent> CoregionEventPtr;
typedef std::list<CoregionEventPtr> CoregionEventPtrList;
typedef std::set<CoregionEventPtr> CoregionEventPtrSet;
-typedef std::set<CoregionEvent*> CoregionEventPSet;
+typedef std::vector<CoregionEvent*> CoregionEventPVector;
typedef std::list<CoregionEvent*> CoregionEventPList;
typedef std::queue<CoregionEvent*> CoregionEventPQueue;
@@ -2234,15 +2234,12 @@
*/
InstanceAxisForm m_form;
- /**
- * Events which aren't successors of any other events.
- */
- CoregionEventPSet m_minimal_events;
+ //! Events which aren't successors of any other events.
+ // note: vector is used to reduce overhead and preserve the insertion order
+ CoregionEventPVector m_minimal_events;
- /**
- * Events which aren't successors of any other events.
- */
- CoregionEventPSet m_maximal_events;
+ //! Events which aren't successors of any other events.
+ CoregionEventPVector m_maximal_events;
/**
* Contains all events of this area
@@ -2270,7 +2267,7 @@
/**
* Getter for m_minimal_events.
*/
- const CoregionEventPSet& get_minimal_events() const
+ const CoregionEventPVector& get_minimal_events() const
{
return m_minimal_events;
}
@@ -2278,7 +2275,7 @@
/**
* Getter for m_maximal_events.
*/
- const CoregionEventPSet& get_maximal_events() const
+ const CoregionEventPVector& get_maximal_events() const
{
return m_maximal_events;
}
@@ -2290,7 +2287,7 @@
*/
void add_minimal_event(CoregionEvent* e)
{
- m_minimal_events.insert(e);
+ m_minimal_events.push_back(e);
}
/**
@@ -2298,7 +2295,8 @@
*/
void remove_minimal_event(CoregionEvent* e)
{
- m_minimal_events.erase(e);
+ std::remove_if(m_minimal_events.begin(), m_minimal_events.end(),
+ std::bind2nd(std::equal_to<CoregionEvent*>(), e));
}
/**
@@ -2308,7 +2306,7 @@
*/
void add_maximal_event(CoregionEvent* e)
{
- m_maximal_events.insert(e);
+ m_maximal_events.push_back(e);
}
/**
@@ -2316,7 +2314,8 @@
*/
void remove_maximal_event(CoregionEvent* e)
{
- m_maximal_events.erase(e);
+ std::remove_if(m_maximal_events.begin(), m_maximal_events.end(),
+ std::bind2nd(std::equal_to<CoregionEvent*>(), e));
}
bool is_empty()
Modified: trunk/src/view/visio/addon/visualize.cpp
===================================================================
--- trunk/src/view/visio/addon/visualize.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/src/view/visio/addon/visualize.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -411,7 +411,7 @@
// events to be processed; this is to avoid recursion
std::list<CoregionEventPtr> event_stack;
- for(CoregionEventPSet::const_iterator mpos = coregion_area->get_minimal_events().begin();
+ for(CoregionEventPVector::const_iterator mpos = coregion_area->get_minimal_events().begin();
mpos != coregion_area->get_minimal_events().end(); mpos++)
{
// initialize the stack with events with no predecessors
Modified: trunk/tests/checker_test.cpp
===================================================================
--- trunk/tests/checker_test.cpp 2009-10-17 12:56:40 UTC (rev 432)
+++ trunk/tests/checker_test.cpp 2009-10-17 14:59:43 UTC (rev 433)
@@ -58,14 +58,16 @@
BMscPtr bmsc = boost::dynamic_pointer_cast<BMsc>(msc);
BMscCheckerPtr bmsc_checker = boost::dynamic_pointer_cast<BMscChecker>(checker);
- if(bmsc_checker != NULL && bmsc != NULL)
+ if(bmsc_checker != NULL && bmsc != NULL
+ && checker->is_supported(srm))
{
return bmsc_checker->check(bmsc, srm);
}
HMscPtr hmsc = boost::dynamic_pointer_cast<HMsc>(msc);
HMscCheckerPtr hmsc_checker = boost::dynamic_pointer_cast<HMscChecker>(checker);
- if(hmsc_checker != NULL && hmsc != NULL)
+ if(hmsc_checker != NULL && hmsc != NULL
+ && checker->is_supported(srm))
{
return hmsc_checker->check(hmsc, srm);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|