summaryrefslogtreecommitdiffstats
path: root/src/bindings/swig/uscxml_beautify.i
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-06-25 21:05:44 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-06-25 21:05:44 (GMT)
commite3767be4f9c5874d9c996200f2e9705ce31a5976 (patch)
treebe3d06f550286e23eeb3252277c1a2b7d12554ef /src/bindings/swig/uscxml_beautify.i
parent758bda908ded461c9d34d274a18454ffba4b7450 (diff)
downloaduscxml-e3767be4f9c5874d9c996200f2e9705ce31a5976.zip
uscxml-e3767be4f9c5874d9c996200f2e9705ce31a5976.tar.gz
uscxml-e3767be4f9c5874d9c996200f2e9705ce31a5976.tar.bz2
Work on bindings
- Introduced exceptions into C# and Java - Moved binding examples to /embedding - Interpreter will now throw exceptions, beware!
Diffstat (limited to 'src/bindings/swig/uscxml_beautify.i')
-rw-r--r--src/bindings/swig/uscxml_beautify.i67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/bindings/swig/uscxml_beautify.i b/src/bindings/swig/uscxml_beautify.i
new file mode 100644
index 0000000..8b57e78
--- /dev/null
+++ b/src/bindings/swig/uscxml_beautify.i
@@ -0,0 +1,67 @@
+%extend uscxml::Event {
+ std::vector<std::pair<std::string, Data> > getParamPairs() {
+ std::vector<std::pair<std::string, Data> > pairs;
+ std::multimap<std::string, Data>::iterator paramPairIter = self->getParams().begin();
+ while(paramPairIter != self->getParams().end()) {
+ pairs.push_back(*paramPairIter);
+ paramPairIter++;
+ }
+ return pairs;
+ }
+};
+
+%extend uscxml::Interpreter {
+
+ std::vector<std::string> getBasicConfiguration() {
+ Arabica::XPath::NodeSet<std::string> nativeConfig = self->getBasicConfiguration();
+ std::vector<std::string> config;
+ for (int i = 0; i < nativeConfig.size(); i++) {
+ Arabica::DOM::Element<std::string> elem(nativeConfig[i]);
+ config.push_back(elem.getAttribute("id"));
+ }
+ return config;
+ }
+
+ std::vector<std::string> getConfiguration() {
+ Arabica::XPath::NodeSet<std::string> nativeConfig = self->getConfiguration();
+ std::vector<std::string> config;
+ for (int i = 0; i < nativeConfig.size(); i++) {
+ Arabica::DOM::Element<std::string> elem(nativeConfig[i]);
+ config.push_back(elem.getAttribute("id"));
+ }
+ return config;
+ }
+
+ std::vector<std::string> getIOProcessorKeys() {
+ std::vector<std::string> keys;
+ std::map<std::string, IOProcessor>::const_iterator iter = self->getIOProcessors().begin();
+ while(iter != self->getIOProcessors().end()) {
+ keys.push_back(iter->first);
+ iter++;
+ }
+ return keys;
+ }
+
+ std::vector<std::string> getInvokerKeys() {
+ std::vector<std::string> keys;
+ std::map<std::string, Invoker>::const_iterator iter = self->getInvokers().begin();
+ while(iter != self->getInvokers().end()) {
+ keys.push_back(iter->first);
+ iter++;
+ }
+ return keys;
+ }
+
+};
+
+%extend uscxml::Data {
+ std::vector<std::string> getCompundKeys() {
+ std::vector<std::string> keys;
+ std::map<std::string, Data>::const_iterator iter = self->compound.begin();
+ while(iter != self->compound.end()) {
+ keys.push_back(iter->first);
+ iter++;
+ }
+ return keys;
+ }
+};