|
From: <got...@us...> - 2009-09-09 13:36:37
|
Revision: 294
http://scstudio.svn.sourceforge.net/scstudio/?rev=294&view=rev
Author: gotthardp
Date: 2009-09-09 13:36:30 +0000 (Wed, 09 Sep 2009)
Log Message:
-----------
New interface for MSC import formatter.
Modified Paths:
--------------
trunk/src/check/pseudocode/utils.h
trunk/src/data/engmann/engmann.cpp
trunk/src/data/engmann/engmann.h
trunk/src/data/formatter.h
trunk/tests/checker_test.cpp
trunk/tests/engmann_test.cpp
Modified: trunk/src/check/pseudocode/utils.h
===================================================================
--- trunk/src/check/pseudocode/utils.h 2009-09-09 13:01:17 UTC (rev 293)
+++ trunk/src/check/pseudocode/utils.h 2009-09-09 13:36:30 UTC (rev 294)
@@ -29,7 +29,7 @@
InstanceIdMarker(const std::string& instance_id_attribute="instance_id");
- void on_white_node_found(ReferenceNode* node);
+ virtual void on_white_node_found(ReferenceNode* node);
size_t get_instance_id(Instance* i);
@@ -102,7 +102,7 @@
void cleanup_attributes();
- void on_white_node_found(HMscNode* n);
+ virtual void on_white_node_found(HMscNode* n);
bool& get_mark(HMscNode* n);
};
Modified: trunk/src/data/engmann/engmann.cpp
===================================================================
--- trunk/src/data/engmann/engmann.cpp 2009-09-09 13:01:17 UTC (rev 293)
+++ trunk/src/data/engmann/engmann.cpp 2009-09-09 13:36:30 UTC (rev 294)
@@ -138,9 +138,9 @@
return pos->second;
}
-MscPtr Engmann::load_msc(const std::string &filename)
+std::vector<MscPtr> Engmann::load_msc(const std::string &filename)
{
- BMscPtr result = new BMsc();
+ std::vector<MscPtr> result;
InstanceAreaMap instances;
@@ -156,9 +156,10 @@
{
print_report(RS_ERROR,
stringize() << "Cannot open file '" << TOWSTRING(filename) << "'.");
- return NULL;
+ return result;
}
+ BMscPtr bmsc = new BMsc();
while(stream.good())
{
TToken token = get_token(stream);
@@ -170,7 +171,7 @@
{
if(wcscmp(token.text.c_str(), L"title") == 0)
{
- result->set_label(read_line(stream));
+ bmsc->set_label(read_line(stream));
}
else if(wcscmp(token.text.c_str(), L"node") == 0)
{
@@ -181,7 +182,7 @@
InstancePtr inst = new Instance(node_name.text);
inst->set_width(10);
inst->set_line_begin(MscPoint(current_x,5));
- result->add_instance(inst);
+ bmsc->add_instance(inst);
EventAreaPtr area = new StrictOrderArea();
inst->add_area(area);
@@ -242,6 +243,7 @@
inst->set_line_end(MscPoint(my_x,my_y+current_y));
}
+ result.push_back(bmsc);
return result;
}
Modified: trunk/src/data/engmann/engmann.h
===================================================================
--- trunk/src/data/engmann/engmann.h 2009-09-09 13:01:17 UTC (rev 293)
+++ trunk/src/data/engmann/engmann.h 2009-09-09 13:36:30 UTC (rev 294)
@@ -34,7 +34,7 @@
{ return "Engmann Message Chart"; }
//! import MSC document
- virtual MscPtr load_msc(const std::string &filename);
+ virtual std::vector<MscPtr> load_msc(const std::string &filename);
protected:
};
Modified: trunk/src/data/formatter.h
===================================================================
--- trunk/src/data/formatter.h 2009-09-09 13:01:17 UTC (rev 293)
+++ trunk/src/data/formatter.h 2009-09-09 13:36:30 UTC (rev 294)
@@ -49,7 +49,7 @@
virtual ~ImportFormatter() {}
//! import MSC document
- virtual MscPtr load_msc(const std::string &filename) = 0;
+ virtual std::vector<MscPtr> load_msc(const std::string &filename) = 0;
};
typedef boost::shared_ptr<ImportFormatter> ImportFormatterPtr;
Modified: trunk/tests/checker_test.cpp
===================================================================
--- trunk/tests/checker_test.cpp 2009-09-09 13:01:17 UTC (rev 293)
+++ trunk/tests/checker_test.cpp 2009-09-09 13:36:30 UTC (rev 294)
@@ -106,8 +106,8 @@
StreamReportPrinter printer(std::wcerr);
z120.set_printer(&printer);
- MscPtr msc = z120.load_msc(argv[3]);
- if(msc == NULL)
+ std::vector<MscPtr> msc = z120.load_msc(argv[3]);
+ if(msc.empty())
{
std::cerr << "ERROR: Cannot open " << argv[3] << std::endl;
LIBRARY_CLOSE(module);
@@ -127,7 +127,7 @@
try
{
- MscPtr result = run_check(init_checkers, argv[2], msc);
+ MscPtr result = run_check(init_checkers, argv[2], msc[0]);
if(result == NULL)
{
if(satisfied)
Modified: trunk/tests/engmann_test.cpp
===================================================================
--- trunk/tests/engmann_test.cpp 2009-09-09 13:01:17 UTC (rev 293)
+++ trunk/tests/engmann_test.cpp 2009-09-09 13:36:30 UTC (rev 294)
@@ -33,15 +33,15 @@
StreamReportPrinter printer(std::wcerr);
engmann.set_printer(&printer);
- MscPtr msc = engmann.load_msc(argv[1]);
- if(msc == NULL)
+ std::vector<MscPtr> msc = engmann.load_msc(argv[1]);
+ if(msc.empty())
{
std::cerr << "ERROR: Syntax error in " << argv[1] << std::endl;
return 1;
}
Z120 z120;
- z120.save_msc(std::cout, TOWSTRING(argv[1]), msc);
+ z120.save_msc(std::cout, TOWSTRING(argv[1]), msc[0]);
return 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|