%rename(NativeDataModel) DataModel; %rename(DataModel) WrappedDataModel; %rename(NativeExecutableContent) ExecutableContent; %rename(ExecutableContent) WrappedExecutableContent; %rename(NativeInvoker) Invoker; %rename(Invoker) WrappedInvoker; %rename(NativeIOProcessor) IOProcessor; %rename(IOProcessor) WrappedIOProcessor; %rename(NativeInterpreterMonitor) InterpreterMonitor; %rename(InterpreterMonitor) WrappedInterpreterMonitor; %extend uscxml::Event { std::vector > getParamPairs() { std::vector > pairs; std::multimap::iterator paramPairIter = self->getParams().begin(); while(paramPairIter != self->getParams().end()) { pairs.push_back(*paramPairIter); paramPairIter++; } return pairs; } }; %extend uscxml::Interpreter { std::vector getBasicConfiguration() { Arabica::XPath::NodeSet nativeConfig = self->getBasicConfiguration(); std::vector config; for (int i = 0; i < nativeConfig.size(); i++) { Arabica::DOM::Element elem(nativeConfig[i]); config.push_back(elem.getAttribute("id")); } return config; } std::vector getConfiguration() { Arabica::XPath::NodeSet nativeConfig = self->getConfiguration(); std::vector config; for (int i = 0; i < nativeConfig.size(); i++) { Arabica::DOM::Element elem(nativeConfig[i]); config.push_back(elem.getAttribute("id")); } return config; } std::vector getIOProcessorKeys() { std::vector keys; std::map::const_iterator iter = self->getIOProcessors().begin(); while(iter != self->getIOProcessors().end()) { keys.push_back(iter->first); iter++; } return keys; } std::vector getInvokerKeys() { std::vector keys; std::map::const_iterator iter = self->getInvokers().begin(); while(iter != self->getInvokers().end()) { keys.push_back(iter->first); iter++; } return keys; } }; %extend uscxml::Data { std::vector getCompundKeys() { std::vector keys; std::map::const_iterator iter = self->compound.begin(); while(iter != self->compound.end()) { keys.push_back(iter->first); iter++; } return keys; } };