summaryrefslogtreecommitdiffstats
path: root/apps/uscxml-browser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'apps/uscxml-browser.cpp')
-rw-r--r--apps/uscxml-browser.cpp80
1 files changed, 44 insertions, 36 deletions
diff --git a/apps/uscxml-browser.cpp b/apps/uscxml-browser.cpp
index e431fdf..f9a06bb 100644
--- a/apps/uscxml-browser.cpp
+++ b/apps/uscxml-browser.cpp
@@ -173,52 +173,60 @@ int main(int argc, char** argv) {
std::string documentURL = options.interpreters[0].first;
LOG(INFO) << "Processing " << documentURL;
- Interpreter interpreter = Interpreter::fromURI(documentURL);
- if (interpreter) {
- interpreter.setCmdLineOptions(currOptions->additionalParameters);
- interpreter.setCapabilities(options.getCapabilities());
-
- if (options.verbose) {
- VerboseMonitor* vm = new VerboseMonitor();
- interpreter.addMonitor(vm);
- }
- if (options.withDebugger) {
- interpreter.addMonitor(debugger);
- }
- interpreters.push_back(interpreter);
+ try {
+ Interpreter interpreter = Interpreter::fromURI(documentURL);
+ if (interpreter) {
+ interpreter.setCmdLineOptions(currOptions->additionalParameters);
+ interpreter.setCapabilities(options.getCapabilities());
- } else {
- LOG(ERROR) << "Cannot create interpreter from " << documentURL;
+ if (options.verbose) {
+ VerboseMonitor* vm = new VerboseMonitor();
+ interpreter.addMonitor(vm);
+ }
+ if (options.withDebugger) {
+ interpreter.addMonitor(debugger);
+ }
+
+ interpreters.push_back(interpreter);
+
+ } else {
+ LOG(ERROR) << "Cannot create interpreter from " << documentURL;
+ }
+ } catch (Event e) {
+ std::cout << e << std::endl;
}
}
// start interpreters
- std::list<Interpreter>::iterator interpreterIter = interpreters.begin();
- while(interpreterIter != interpreters.end()) {
- interpreterIter->start();
- interpreterIter++;
- }
-
- bool stillRunning = true;
- // call from main thread for UI events
- while(interpreters.size() > 0) {
- interpreterIter = interpreters.begin();
+ try {
+ std::list<Interpreter>::iterator interpreterIter = interpreters.begin();
while(interpreterIter != interpreters.end()) {
- stillRunning = interpreterIter->runOnMainThread(25);
- if (!stillRunning) {
- interpreters.erase(interpreterIter++);
- } else {
- interpreterIter++;
+ interpreterIter->start();
+ interpreterIter++;
+ }
+
+ bool stillRunning = true;
+ // call from main thread for UI events
+ while(interpreters.size() > 0) {
+ interpreterIter = interpreters.begin();
+ while(interpreterIter != interpreters.end()) {
+ stillRunning = interpreterIter->runOnMainThread(25);
+ if (!stillRunning) {
+ interpreters.erase(interpreterIter++);
+ } else {
+ interpreterIter++;
+ }
}
}
- }
- if (options.withDebugger) {
- // idle and wait for CTRL+C or debugging events
- while(true)
- tthread::this_thread::sleep_for(tthread::chrono::seconds(1));
+ if (options.withDebugger) {
+ // idle and wait for CTRL+C or debugging events
+ while(true)
+ tthread::this_thread::sleep_for(tthread::chrono::seconds(1));
+ }
+ } catch (Event e) {
+ std::cout << e << std::endl;
}
-
return EXIT_SUCCESS;
} \ No newline at end of file