diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2015-04-02 11:44:48 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2015-04-02 11:44:48 (GMT) |
commit | 81aa1c79dd158aa7bc76876552e4b1d05ecea656 (patch) | |
tree | 4b590410d4042c156cfd3d4e874f3a329390a72b /src/bindings | |
parent | ff86d690dc02d7dd495000331d378e7d8eb688ac (diff) | |
download | uscxml-81aa1c79dd158aa7bc76876552e4b1d05ecea656.zip uscxml-81aa1c79dd158aa7bc76876552e4b1d05ecea656.tar.gz uscxml-81aa1c79dd158aa7bc76876552e4b1d05ecea656.tar.bz2 |
Reactivated PHP bindings and some work on PROMELA
Diffstat (limited to 'src/bindings')
-rw-r--r-- | src/bindings/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/bindings/swig/java/uscxml.i | 2 | ||||
-rw-r--r-- | src/bindings/swig/php/CMakeLists.txt | 100 | ||||
-rw-r--r-- | src/bindings/swig/php/test.php | 85 | ||||
-rw-r--r-- | src/bindings/swig/php/uscxml.i | 406 | ||||
-rw-r--r-- | src/bindings/swig/php/uscxmlNativePHP.php | 3110 |
6 files changed, 3703 insertions, 1 deletions
diff --git a/src/bindings/CMakeLists.txt b/src/bindings/CMakeLists.txt index edddc31..0a258b8 100644 --- a/src/bindings/CMakeLists.txt +++ b/src/bindings/CMakeLists.txt @@ -26,6 +26,7 @@ if (SWIG_FOUND) INCLUDE(${SWIG_USE_FILE}) add_subdirectory(swig/java) add_subdirectory(swig/csharp) + add_subdirectory(swig/php) if(SWIG_VERSION VERSION_LESS 3.0.0) message(STATUS "SWIG version > 3.0 is recommended, found ${SWIG_VERSION}") endif() diff --git a/src/bindings/swig/java/uscxml.i b/src/bindings/swig/java/uscxml.i index e9b6bf0..031b9c0 100644 --- a/src/bindings/swig/java/uscxml.i +++ b/src/bindings/swig/java/uscxml.i @@ -335,7 +335,7 @@ import java.util.LinkedList; %} %rename(getNameListNative) uscxml::Event::getNameList(); -%rename(getParamstNative) uscxml::Event::getParams(); +%rename(getParamsNative) uscxml::Event::getParams(); %rename(setNameListNative) uscxml::Event::setNameList(const std::map<std::string, Data>&); %rename(setParamsNative) uscxml::Event::setParams(const std::multimap<std::string, Data>&); %javamethodmodifiers uscxml::Event::getNameList() "private"; diff --git a/src/bindings/swig/php/CMakeLists.txt b/src/bindings/swig/php/CMakeLists.txt new file mode 100644 index 0000000..802f3a2 --- /dev/null +++ b/src/bindings/swig/php/CMakeLists.txt @@ -0,0 +1,100 @@ +# generate PHP module + +find_package(PHP5) +if(PHP5_FOUND) + include_directories(${PHP5_INCLUDE_PATH}) +else() + message(STATUS "No PHP5 libraries found - not building php module") + return() +endif() + +# copied from cmake's FindPHP4.cmake and adapted +if(APPLE) + # this is a hack for now + set(PHP_MODULE_CXX_FLAGS "${CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS} -Wl") + foreach(symbol + __efree + __emalloc + __estrdup + __estrndup + __object_init + __object_init_ex + __zend_get_parameters_array_ex + __zend_list_find + __zval_copy_ctor + __zval_copy_ctor_func + _add_property_zval_ex + _alloc_globals + _compiler_globals + _convert_to_double + _convert_to_long + _convert_to_boolean + __convert_to_string + _gc_remove_zval_from_buffer + _call_user_function + _php_sprintf + _executor_globals + _zend_get_constant + _zend_lookup_class + _zend_register_long_constant + _zval_is_true + _zend_error + _zend_hash_find + __zend_hash_add_or_update + _zend_register_internal_class_ex + _zend_register_list_destructors_ex + _zend_register_resource + _zend_rsrc_list_get_rsrc_type + _zend_wrong_param_count + _zend_throw_exception + _zval_used_for_init + ) + set(PHP_MODULE_CXX_FLAGS + "${PHP_MODULE_CXX_FLAGS},-U,${symbol}") + endforeach() +endif() + +#message(FATAL_ERROR "PHP_LDFLAGS: ${PHP_LDFLAGS}") + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${PHP_INCLUDE_DIRS}) + +SET(CMAKE_SWIG_FLAGS "") + +# we need ; to produce a space with the package .. weird +SET_SOURCE_FILES_PROPERTIES(uscxml.i PROPERTIES CPLUSPLUS ON) + +SWIG_ADD_MODULE(uscxmlNativePHP php5 uscxml.i) +foreach(PHP_LIBRARY ${PHP_LIBRARIES}) +# SWIG_LINK_LIBRARIES(uscxmlNativePHP ${PHP_LIBRARY}) +endforeach() +SWIG_LINK_LIBRARIES(uscxmlNativePHP uscxml) + +if (APPLE) + set_target_properties(uscxmlNativePHP PROPERTIES LINK_FLAGS ${PHP_MODULE_CXX_FLAGS}) +endif() + +set(PHP_COMPILE_FLAGS "-DSWIG") + +if (PHP_ZTS_ENABLED) + # we are only building php bindings for unices anyhow + set(PHP_COMPILE_FLAGS "${PHP_COMPILE_FLAGS} -DZTS") + set(PHP_COMPILE_FLAGS "${PHP_COMPILE_FLAGS} -DPTHREADS") +endif() +if (PHP_DEBUG_ENABLED) + set(PHP_COMPILE_FLAGS "${PHP_COMPILE_FLAGS} -DZEND_DEBUG") +endif() + +ADD_CUSTOM_COMMAND( + TARGET uscxmlNativePHP + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_BINARY_DIR}/uscxmlNativePHP.php + ${PROJECT_SOURCE_DIR}/src/bindings/swig/php/uscxmlNativePHP.php +) + +set_target_properties(uscxmlNativePHP PROPERTIES COMPILE_FLAGS ${PHP_COMPILE_FLAGS}) +set_target_properties(uscxmlNativePHP PROPERTIES FOLDER "Bindings") + +set(USCXML_LANGUAGE_BINDINGS "php ${USCXML_LANGUAGE_BINDINGS}") +set(USCXML_LANGUAGE_BINDINGS ${USCXML_LANGUAGE_BINDINGS} PARENT_SCOPE) diff --git a/src/bindings/swig/php/test.php b/src/bindings/swig/php/test.php new file mode 100644 index 0000000..739c6a1 --- /dev/null +++ b/src/bindings/swig/php/test.php @@ -0,0 +1,85 @@ +<?php + +require_once('uscxmlNativePHP.php'); + +// $exts = get_loaded_extensions(); +// foreach ($exts as $e) +// { +// echo "Name: ".$e." --"; +// print_r(get_extension_funcs($e)); +// } + +class MyMonitor extends InterpreterMonitor { + function beforeExitingStates($interpreter,$statesToExit) { + print "MyMonitor.beforeExitingStates()\n"; + } + function afterExitingStates($interpreter) { + print "MyMonitor.afterExitingStates()\n"; + } + function beforeEnteringStates($interpreter,$statesToEnter) { + print "MyMonitor.beforeEnteringStates()\n"; + } + function afterEnteringStates($interpreter) { + print "MyMonitor.afterEnteringStates()\n"; + } + function onStableConfiguration($interpreter) { + print "MyMonitor.onStableConfiguration()\n"; + } + function beforeCompletion($interpreter) { + print "MyMonitor.beforeCompletion()\n"; + } + function afterCompletion($interpreter) { + print "MyMonitor.afterCompletion()\n"; + } + function beforeMicroStep($interpreter) { + print "MyMonitor.beforeMicroStep()\n"; + } + function afterMicroStep($interpreter) { + print "MyMonitor.afterMicroStep()\n"; + } + function beforeTakingTransitions($interpreter,$transitions) { + print "MyMonitor.beforeTakingTransitions()\n"; + } +} + +$monitor = new MyMonitor(); + +// run interpreter in blocking mode +$interpreter = Interpreter::fromURL('https://raw.githubusercontent.com/tklab-tud/uscxml/master/test/uscxml/test-invoked.scxml'); +$interpreter->addMonitor($monitor); +$interpreter->interpret(); + +// interleave interpreter execution with this thread +$interpreter = Interpreter::fromURL('https://raw.githubusercontent.com/tklab-tud/uscxml/master/test/uscxml/test-invoked.scxml'); +$parentQueue = new ParentQueue(); +$interpreter->setParentQueue($parentQueue); + +while($interpreter->step() > 0) { + $event = $parentQueue->pop(); + print("Name: " . $event->getName() . "\n"); + print("Type: " . $event->getType() . "\n"); + print("Origin: " . $event->getOrigin() . "\n"); + print("OriginType: " . $event->getOriginType() . "\n"); + print("Content " . strlen($event->getContent()) . " bytes: \n'" . $event->getContent() . "'\n"); + + $namelist = $event->getNameList(); + print("Namelist ".$namelist->size()." elements: \n"); + $keys = $event->getNameListKeys(); + for ($i = 0; $i < $keys->size(); $i++) { + print($keys->get($i) . "\t" . Data::toJSON($namelist->get($keys->get($i))) . "\n"); + } + + $params = $event->getParamMap(); + print("Params ". $params->size() ." elements: \n"); + $keys = $event->getParamMapKeys(); + for ($i = 0; $i < $keys->size(); $i++) { + print($keys->get($i)."\n"); + $paramList = $params->get($keys->get($i)); + for ($j = 0; $j < $paramList->size(); $j++) { + print("\t" . Data::toJSON($paramList->get($i)) . "\n"); + } + } + +} + +?>
\ No newline at end of file diff --git a/src/bindings/swig/php/uscxml.i b/src/bindings/swig/php/uscxml.i new file mode 100644 index 0000000..d737f96 --- /dev/null +++ b/src/bindings/swig/php/uscxml.i @@ -0,0 +1,406 @@ +%module(directors="1", allprotected="1") uscxmlNativePHP + +// provide a macro for the header files +#define SWIGIMPORTED 1 + +%include <stl.i> +%include <std_map.i> +%include <std_string.i> +%include <inttypes.i> +%include "../stl_set.i" +%include "../stl_list.i" + +//%include <boost_shared_ptr.i> + +// these are needed at least for the templates to work +typedef uscxml::Blob Blob; +typedef uscxml::Data Data; +typedef uscxml::Event Event; +typedef uscxml::InvokeRequest InvokeRequest; +typedef uscxml::SendRequest SendRequest; +typedef uscxml::Invoker Invoker; +typedef uscxml::IOProcessor IOProcessor; +typedef uscxml::DataModel DataModel; +typedef uscxml::DataModelExtension DataModelExtension; +typedef uscxml::ExecutableContent ExecutableContent; +typedef uscxml::InvokerImpl InvokerImpl; +typedef uscxml::IOProcessorImpl IOProcessorImpl; +typedef uscxml::DataModelImpl DataModelImpl; +typedef uscxml::ExecutableContentImpl ExecutableContentImpl; +typedef uscxml::InterpreterIssue InterpreterIssue; + +%feature("director") uscxml::WrappedInvoker; +%feature("director") uscxml::WrappedDataModel; +%feature("director") uscxml::WrappedDataModelExtension; +%feature("director") uscxml::WrappedIOProcessor; +%feature("director") uscxml::WrappedExecutableContent; +%feature("director") uscxml::WrappedInterpreterMonitor; + +// disable warning related to unknown base class +#pragma SWIG nowarn=401 +// do not warn when we override symbols via extend +#pragma SWIG nowarn=302 +// do not warn when ignoring overrided method +#pragma SWIG nowarn=516 + +//%javaconst(1); + +%rename(equals) operator==; // signature is wrong, still useful +%rename(isValid) operator bool; + +//************************************************** +// This ends up in the generated wrapper code +//************************************************** + +%{ + +#include "../../../uscxml/Message.h" +#include "../../../uscxml/Factory.h" +#include "../../../uscxml/Interpreter.h" +#include "../../../uscxml/concurrency/BlockingQueue.h" +#include "../../../uscxml/server/HTTPServer.h" +//#include "../../../uscxml/debug/DebuggerServlet.h" + +#include "../wrapped/WrappedInvoker.h" +#include "../wrapped/WrappedDataModel.h" +#include "../wrapped/WrappedExecutableContent.h" +#include "../wrapped/WrappedIOProcessor.h" +#include "../wrapped/WrappedInterpreterMonitor.h" + +using namespace uscxml; +using namespace Arabica::DOM; + +// the wrapped* C++ classes get rid of DOM nodes and provide more easily wrapped base classes +#include "../wrapped/WrappedInvoker.cpp" +#include "../wrapped/WrappedDataModel.cpp" +#include "../wrapped/WrappedExecutableContent.cpp" +#include "../wrapped/WrappedIOProcessor.cpp" +#include "../wrapped/WrappedInterpreterMonitor.cpp" + +%} + +%insert("begin") %{ +void*** tsrm_ls; +%} + +#if 0 +%define WRAP_THROW_EXCEPTION( MATCH ) +%javaexception("org.uscxml.InterpreterException") MATCH { + try { + $action + } + catch ( uscxml::Event& e ) { + jclass eclass = jenv->FindClass("org/uscxml/InterpreterException"); + if ( eclass ) { + std::stringstream ss; + ss << std::endl << e; + jenv->ThrowNew( eclass, ss.str().c_str() ); + } + } +} +%enddef + +WRAP_THROW_EXCEPTION(uscxml::Interpreter::fromXML); +WRAP_THROW_EXCEPTION(uscxml::Interpreter::fromURL); +WRAP_THROW_EXCEPTION(uscxml::Interpreter::step); +WRAP_THROW_EXCEPTION(uscxml::Interpreter::interpret); +#endif + +%define WRAP_HASHCODE( CLASSNAME ) +%extend CLASSNAME { + virtual int hashCode() { +/* std::cout << "Calc hashcode as " << (int)(size_t)self->getImpl().get() << std::endl << std::flush;*/ + return (int)(size_t)self->getImpl().get(); + } +}; +%enddef + +%define WRAP_TO_STRING( CLASSNAME ) +%extend CLASSNAME { + virtual std::string toString() { + std::stringstream ss; + ss << *self; + return ss.str(); + } +}; +%enddef + +WRAP_TO_STRING(uscxml::Event); +WRAP_TO_STRING(uscxml::Data); +WRAP_TO_STRING(uscxml::SendRequest); +WRAP_TO_STRING(uscxml::InvokeRequest); +WRAP_TO_STRING(uscxml::InterpreterIssue); + +WRAP_HASHCODE(uscxml::Interpreter); + +%include "../uscxml_ignores.i" + +// bytearray for Blob::data +// see: http://stackoverflow.com/questions/9934059/swig-technique-to-wrap-unsigned-binary-data + +%apply (char *STRING, size_t LENGTH) { (const char* data, size_t size) }; + +#if 0 +%typemap(jni) char* getData "jbyteArray" +%typemap(jtype) char* getData "byte[]" +%typemap(jstype) char* getData "byte[]" +%typemap(javaout) char* getData { + return $jnicall; +} + +%typemap(out) char* getData { + $result = JCALL1(NewByteArray, jenv, ((uscxml::Blob const *)arg1)->getSize()); + JCALL4(SetByteArrayRegion, jenv, $result, 0, ((uscxml::Blob const *)arg1)->getSize(), (jbyte *)$1); +} +#endif + +//*********************************************** +// Beautify important classes +//*********************************************** + +#if 0 +%javamethodmodifiers uscxml::Event::getParamMap() "private"; +%javamethodmodifiers uscxml::Event::getParamMapKeys() "private"; +%javamethodmodifiers uscxml::Event::setParamMap(const std::map<std::string, std::list<uscxml::Data> >&) "private"; +%javamethodmodifiers uscxml::Event::getNameListKeys() "private"; +%javamethodmodifiers uscxml::Interpreter::getIOProcessorKeys() "private"; +%javamethodmodifiers uscxml::Interpreter::getInvokerKeys() "private"; +%javamethodmodifiers uscxml::Interpreter::getInvokers() "private"; +%javamethodmodifiers uscxml::Interpreter::getIOProcessors() "private"; +%javamethodmodifiers uscxml::Data::getCompoundKeys() "private"; + +%javamethodmodifiers uscxml::Blob::setData(const char* data, size_t length) "private"; +%javamethodmodifiers uscxml::Blob::setMimeType(const std::string& mimeType) "private"; +#endif + +%include "../uscxml_beautify.i" + + +%typemap(javaimports) uscxml::Interpreter %{ +import java.util.Map; +import java.util.HashMap; +import java.util.List; +import java.util.LinkedList; +import java.net.URL; +%} + +%typemap(javacode) uscxml::Interpreter %{ + public static Interpreter fromURL(URL uri) throws org.uscxml.InterpreterException { + return Interpreter.fromURL(uri.toString()); + } + + public Map<String, NativeIOProcessor> getIOProcessors() { + Map<String, NativeIOProcessor> ioProcs = new HashMap<String, NativeIOProcessor>(); + StringVector keys = getIOProcessorKeys(); + IOProcMap ioProcMap = getIOProcessorsNative(); + for (int i = 0; i < keys.size(); i++) { + ioProcs.put(keys.get(i), ioProcMap.get(keys.get(i))); + } + return ioProcs; + } + + public Map<String, NativeInvoker> getInvokers() { + Map<String, NativeInvoker> invokers = new HashMap<String, NativeInvoker>(); + StringVector keys = getInvokerKeys(); + InvokerMap invokerMap = getInvokersNative(); + for (int i = 0; i < keys.size(); i++) { + invokers.put(keys.get(i), invokerMap.get(keys.get(i))); + } + return invokers; + } + + @Override + public boolean equals(Object other) { + if (other instanceof Interpreter) { + return equals((Interpreter)other); + } + return hashCode() == other.hashCode(); + } +%} + +#if 0 +%rename(getCompoundNative) uscxml::Data::getCompound(); +%rename(getArrayNative) uscxml::Data::getArray(); +%rename(setCompoundNative) uscxml::Data::setCompound(const std::map<std::string, Data>&); +%rename(setArrayNative) uscxml::Data::setArray(const std::list<Data>&); +%javamethodmodifiers uscxml::Data::getCompound() "private"; +%javamethodmodifiers uscxml::Data::getArray() "private"; +%javamethodmodifiers uscxml::Data::setCompound(const std::map<std::string, Data>&) "private"; +%javamethodmodifiers uscxml::Data::setArray(const std::list<Data>&) "private"; +%javamethodmodifiers uscxml::Data::getCompoundKeys() "private"; +#endif + +%typemap(javaimports) uscxml::Data %{ +import java.util.Map; +import java.util.HashMap; +import java.util.List; +import java.util.LinkedList; +%} + +%typemap(javacode) uscxml::Data %{ + public Data(byte[] data, String mimeType) { + this(uscxmlNativeJavaJNI.new_Data__SWIG_0(), true); + setBinary(new Blob(data, mimeType)); + } + + public Data(Map<String, Data> compound) { + this(uscxmlNativeJavaJNI.new_Data__SWIG_0(), true); + setCompound(compound); + } + + public Data(List<Data> array) { + this(uscxmlNativeJavaJNI.new_Data__SWIG_0(), true); + setArray(array); + } + + public Map<String, Data> getCompound() { + Map<String, Data> compound = new HashMap<String, Data>(); + DataMap dataMap = getCompoundNative(); + StringVector dataMapKeys = getCompoundKeys(); + for (int i = 0; i < dataMapKeys.size(); i++) { + compound.put(dataMapKeys.get(i), dataMap.get(dataMapKeys.get(i))); + } + return compound; + } + + public void setCompound(Map<String, Data> compound) { + DataMap dataMap = new DataMap(); + for (String key : compound.keySet()) { + dataMap.set(key, compound.get(key)); + } + setCompoundNative(dataMap); + } + + public List<Data> getArray() { + List<Data> array = new LinkedList<Data>(); + DataList dataList = getArrayNative(); + for (int i = 0; i < dataList.size(); i++) { + array.add(dataList.get(i)); + } + return array; + } + + public void setArray(List<Data> array) { + DataList dataList = new DataList(); + for (Data data : array) { + dataList.add(data); + } + setArrayNative(dataList); + } + +%} + +#if 0 +%rename(getNameListNative) uscxml::Event::getNameList(); +%rename(getParamsNative) uscxml::Event::getParams(); +%rename(setNameListNative) uscxml::Event::setNameList(const std::map<std::string, Data>&); +%rename(setParamsNative) uscxml::Event::setParams(const std::multimap<std::string, Data>&); +%javamethodmodifiers uscxml::Event::getNameList() "private"; +%javamethodmodifiers uscxml::Event::getNameListKeys() "private"; +%javamethodmodifiers uscxml::Event::getParams() "private"; +%javamethodmodifiers uscxml::Event::setNameList(const std::map<std::string, Data>&) "private"; +%javamethodmodifiers uscxml::Event::setParams(const std::multimap<std::string, Data>&) "private"; +#endif + +%typemap(javaimports) uscxml::Event %{ +import java.util.Map; +import java.util.HashMap; +import java.util.List; +import java.util.LinkedList; +%} + +%typemap(javacode) uscxml::Event %{ + public Map<String, List<Data>> getParams() { + Map<String, List<Data>> params = new HashMap<String, List<Data>>(); + ParamMap paramMap = getParamMap(); + StringVector paramMapKeys = getParamMapKeys(); + + for (int i = 0; i < paramMapKeys.size(); i++) { + String key = paramMapKeys.get(i); + DataList dataList = paramMap.get(key); + + for (int j = 0; j < dataList.size(); j++) { + Data data = dataList.get(j); + if (!params.containsKey(key)) + params.put(key, new LinkedList<Data>()); + params.get(key).add(data); + } + } + return params; + } + + public void setParams(Map<String, List<Data>> params) { + ParamMap paramMap = new ParamMap(); + for (String key : params.keySet()) { + DataList datalist = new DataList(); + for (Data data : params.get(key)) { + datalist.add(data); + } + paramMap.set(key, datalist); + } + setParamMap(paramMap); + } + + public Map<String, Data> getNameList() { + Map<String, Data> namelist = new HashMap<String, Data>(); + StringVector nameMapKeys = getNameListKeys(); + DataMap nameMap = getNameListNative(); + + for (int i = 0; i < nameMapKeys.size(); i++) { + namelist.put(nameMapKeys.get(i), nameMap.get(nameMapKeys.get(i))); + } + return namelist; + } + + public void setNameList(Map<String, Data> namelist) { + DataMap nameListMap = new DataMap(); + for (String key : namelist.keySet()) { + nameListMap.set(key, namelist.get(key)); + } + setNameListNative(nameListMap); + } +%} + + +//*********************************************** +// Parse the header file to generate wrappers +//*********************************************** + +%include "../../../uscxml/Common.h" +%include "../../../uscxml/Factory.h" +%include "../../../uscxml/Message.h" +%include "../../../uscxml/Interpreter.h" +%include "../../../uscxml/concurrency/BlockingQueue.h" +%include "../../../uscxml/server/HTTPServer.h" +//%include "../../../uscxml/debug/DebuggerServlet.h" +%include "../../../uscxml/debug/InterpreterIssue.h" + +%include "../../../uscxml/messages/Blob.h" +%include "../../../uscxml/messages/Data.h" +%include "../../../uscxml/messages/Event.h" +%include "../../../uscxml/messages/InvokeRequest.h" +%include "../../../uscxml/messages/SendRequest.h" + +%include "../../../uscxml/plugins/DataModel.h" +%include "../../../uscxml/plugins/EventHandler.h" +%include "../../../uscxml/plugins/ExecutableContent.h" +%include "../../../uscxml/plugins/Invoker.h" +%include "../../../uscxml/plugins/IOProcessor.h" + +%include "../wrapped/WrappedInvoker.h" +%include "../wrapped/WrappedDataModel.h" +%include "../wrapped/WrappedExecutableContent.h" +%include "../wrapped/WrappedIOProcessor.h" +%include "../wrapped/WrappedInterpreterMonitor.h" + + +%template(IssueList) std::list<uscxml::InterpreterIssue>; +%template(DataList) std::list<uscxml::Data>; +%template(DataMap) std::map<std::string, uscxml::Data>; +%template(StringSet) std::set<std::string>; +%template(StringVector) std::vector<std::string>; +%template(StringList) std::list<std::string>; +%template(ParamMap) std::map<std::string, std::list<uscxml::Data> >; +%template(IOProcMap) std::map<std::string, IOProcessor>; +%template(InvokerMap) std::map<std::string, Invoker>; +%template(ParentQueue) uscxml::concurrency::BlockingQueue<uscxml::SendRequest>; diff --git a/src/bindings/swig/php/uscxmlNativePHP.php b/src/bindings/swig/php/uscxmlNativePHP.php new file mode 100644 index 0000000..12757d3 --- /dev/null +++ b/src/bindings/swig/php/uscxmlNativePHP.php @@ -0,0 +1,3110 @@ +<?php + +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 3.0.5 + * + * This file is not intended to be easily readable and contains a number of + * coding conventions designed to improve portability and efficiency. Do not make + * changes to this file unless you know what you are doing--modify the SWIG + * interface file instead. + * ----------------------------------------------------------------------------- */ + +// Try to load our extension if it's not already loaded. +if (!extension_loaded('uscxmlNativePHP')) { + if (strtolower(substr(PHP_OS, 0, 3)) === 'win') { + if (!dl('php_uscxmlNativePHP.dll')) return; + } else { + // PHP_SHLIB_SUFFIX gives 'dylib' on MacOS X but modules are 'so'. + if (PHP_SHLIB_SUFFIX === 'dylib') { + if (!dl('uscxmlNativePHP.so')) return; + } else { + if (!dl('uscxmlNativePHP.'.PHP_SHLIB_SUFFIX)) return; + } + } +} + + + +abstract class uscxmlNativePHP { + const SWIGIMPORTED = SWIGIMPORTED; + + static function imaxabs($n) { + return imaxabs($n); + } + + static function imaxdiv($numer,$denom) { + $r=imaxdiv($numer,$denom); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new imaxdiv_t($r); + } + return $r; + } + + static function strtoimax($nptr,$endptr,$base) { + return strtoimax($nptr,$endptr,$base); + } + + static function strtoumax($nptr,$endptr,$base) { + return strtoumax($nptr,$endptr,$base); + } + + const CAN_NOTHING = 0; + + const CAN_BASIC_HTTP = 1; + + const CAN_GENERIC_HTTP = 2; + + const USCXML_DESTROYED = -2; + + const USCXML_FINISHED = -1; + + const USCXML_IDLE = 0; + + const USCXML_INSTANTIATED = 1; + + const USCXML_MICROSTEPPED = 2; + + const USCXML_MACROSTEPPED = 4; + + static function _dataIndentation_set($_dataIndentation) { + _dataIndentation_set($_dataIndentation); + } + + static function _dataIndentation_get() { + return _dataIndentation_get(); + } +} + +/* PHP Proxy Classes */ +class imaxdiv_t { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'quot') return imaxdiv_t_quot_set($this->_cPtr,$value); + if ($var === 'rem') return imaxdiv_t_rem_set($this->_cPtr,$value); + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'quot') return imaxdiv_t_quot_get($this->_cPtr); + if ($var === 'rem') return imaxdiv_t_rem_get($this->_cPtr); + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if (function_exists('imaxdiv_t_'.$var.'_get')) return true; + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_imaxdiv_t') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_imaxdiv_t(); + } +} + +class Factory { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($parentFactory_or_pluginPath,$parentFactory=null) { + if (is_resource($parentFactory_or_pluginPath) && get_resource_type($parentFactory_or_pluginPath) === '_p_uscxml__Factory') { + $this->_cPtr=$parentFactory_or_pluginPath; + return; + } + switch (func_num_args()) { + case 1: $this->_cPtr=new_Factory($parentFactory_or_pluginPath); break; + default: $this->_cPtr=new_Factory($parentFactory_or_pluginPath,$parentFactory); + } + } + + function registerIOProcessor($ioProcessor) { + Factory_registerIOProcessor($this->_cPtr,$ioProcessor); + } + + function registerDataModel($dataModel) { + Factory_registerDataModel($this->_cPtr,$dataModel); + } + + function registerInvoker($invoker) { + Factory_registerInvoker($this->_cPtr,$invoker); + } + + function registerExecutableContent($executableContent) { + Factory_registerExecutableContent($this->_cPtr,$executableContent); + } + + function hasDataModel($type) { + return Factory_hasDataModel($this->_cPtr,$type); + } + + function hasIOProcessor($type) { + return Factory_hasIOProcessor($this->_cPtr,$type); + } + + function hasInvoker($type) { + return Factory_hasInvoker($this->_cPtr,$type); + } + + function hasExecutableContent($localName,$nameSpace) { + return Factory_hasExecutableContent($this->_cPtr,$localName,$nameSpace); + } + + function listComponents() { + Factory_listComponents($this->_cPtr); + } + + static function getInstance() { + $r=Factory_getInstance(); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Factory($r); + } + return $r; + } + + static function setDefaultPluginPath($path) { + Factory_setDefaultPluginPath($path); + } + + static function getDefaultPluginPath() { + return Factory_getDefaultPluginPath(); + } +} + +class InterpreterOptions { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + $func = 'InterpreterOptions_'.$var.'_set'; + if (function_exists($func)) return call_user_func($func,$this->_cPtr,$value); + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + $func = 'InterpreterOptions_'.$var.'_get'; + if (function_exists($func)) return call_user_func($func,$this->_cPtr); + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if (function_exists('InterpreterOptions_'.$var.'_get')) return true; + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__InterpreterOptions') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_InterpreterOptions(); + } + + function isValid() { + return InterpreterOptions_isValid($this->_cPtr); + } + + static function printUsageAndExit($progName) { + InterpreterOptions_printUsageAndExit($progName); + } + + function getCapabilities() { + return InterpreterOptions_getCapabilities($this->_cPtr); + } +} + +class NameSpaceInfo { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__NameSpaceInfo') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_NameSpaceInfo(); + } + + function getXMLPrefixForNS($ns) { + return NameSpaceInfo_getXMLPrefixForNS($this->_cPtr,$ns); + } +} + +class Interpreter { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + static function fromXML($xml,$sourceURL) { + $r=Interpreter_fromXML($xml,$sourceURL); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Interpreter($r); + } + return $r; + } + + static function fromURL($URL) { + $r=Interpreter_fromURL($URL); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Interpreter($r); + } + return $r; + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__Interpreter') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_Interpreter(); + } + + function isValid() { + return Interpreter_isValid($this->_cPtr); + } + + function equals($other) { + return Interpreter_equals($this->_cPtr,$other); + } + + function writeTo($stream) { + Interpreter_writeTo($this->_cPtr,$stream); + } + + function reset() { + Interpreter_reset($this->_cPtr); + } + + function interpret() { + Interpreter_interpret($this->_cPtr); + } + + function step($waitForMS_or_blocking=null) { + switch (func_num_args()) { + case 0: $r=Interpreter_step($this->_cPtr); break; + default: $r=Interpreter_step($this->_cPtr,$waitForMS_or_blocking); + } + return $r; + } + + function validate() { + $r=Interpreter_validate($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new IssueList($r); + } + return $r; + } + + function getState() { + return Interpreter_getState($this->_cPtr); + } + + function addMonitor($monitor) { + Interpreter_addMonitor($this->_cPtr,$monitor); + } + + function removeMonitor($monitor) { + Interpreter_removeMonitor($this->_cPtr,$monitor); + } + + function setSourceURL($sourceURL) { + Interpreter_setSourceURL($this->_cPtr,$sourceURL); + } + + function getSourceURL() { + return Interpreter_getSourceURL($this->_cPtr); + } + + function getBaseURL($xpathExpr=null) { + switch (func_num_args()) { + case 0: $r=Interpreter_getBaseURL($this->_cPtr); break; + default: $r=Interpreter_getBaseURL($this->_cPtr,$xpathExpr); + } + return $r; + } + + function setNameSpaceInfo($nsInfo) { + Interpreter_setNameSpaceInfo($this->_cPtr,$nsInfo); + } + + function getNameSpaceInfo() { + $r=Interpreter_getNameSpaceInfo($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new NameSpaceInfo($r); + } + return $r; + } + + function getCmdLineOptions() { + $r=Interpreter_getCmdLineOptions($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function getDataModel() { + $r=Interpreter_getDataModel($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new NativeDataModel($r); + } + return $r; + } + + function getIOProcessorsNative() { + $r=Interpreter_getIOProcessorsNative($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new IOProcMap($r); + } + return $r; + } + + function getInvokersNative() { + $r=Interpreter_getInvokersNative($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new InvokerMap($r); + } + return $r; + } + + function addDataModelExtension($ext) { + Interpreter_addDataModelExtension($this->_cPtr,$ext); + } + + function setParentQueue($parentQueue) { + Interpreter_setParentQueue($this->_cPtr,$parentQueue); + } + + function setFactory($factory) { + Interpreter_setFactory($this->_cPtr,$factory); + } + + function getFactory() { + $r=Interpreter_getFactory($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Factory($r); + } + return $r; + } + + function receiveInternal($event) { + Interpreter_receiveInternal($this->_cPtr,$event); + } + + function receive($event,$toFront=false) { + Interpreter_receive($this->_cPtr,$event,$toFront); + } + + function getCurrentEvent() { + $r=Interpreter_getCurrentEvent($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Event($r); + } + return $r; + } + + function isInState($stateId) { + return Interpreter_isInState($this->_cPtr,$stateId); + } + + function setInitalConfiguration($states) { + Interpreter_setInitalConfiguration($this->_cPtr,$states); + } + + function setCapabilities($capabilities) { + Interpreter_setCapabilities($this->_cPtr,$capabilities); + } + + function setName($name) { + Interpreter_setName($this->_cPtr,$name); + } + + function getName() { + return Interpreter_getName($this->_cPtr); + } + + function getSessionId() { + return Interpreter_getSessionId($this->_cPtr); + } + + function hasLegalConfiguration() { + return Interpreter_hasLegalConfiguration($this->_cPtr); + } + + function isLegalConfiguration($config) { + return Interpreter_isLegalConfiguration($this->_cPtr,$config); + } + + function hashCode() { + return Interpreter_hashCode($this->_cPtr); + } + + function addIOProcessor($ioProc) { + Interpreter_addIOProcessor($this->_cPtr,$ioProc); + } + + function setDataModel($dataModel) { + Interpreter_setDataModel($this->_cPtr,$dataModel); + } + + function setInvoker($invokeId,$invoker) { + Interpreter_setInvoker($this->_cPtr,$invokeId,$invoker); + } + + function getBasicConfiguration() { + $r=Interpreter_getBasicConfiguration($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringVector($r); + } + return $r; + } + + function getConfiguration() { + $r=Interpreter_getConfiguration($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringVector($r); + } + return $r; + } + + function getIOProcessorKeys() { + $r=Interpreter_getIOProcessorKeys($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringVector($r); + } + return $r; + } + + function getInvokerKeys() { + $r=Interpreter_getInvokerKeys($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringVector($r); + } + return $r; + } +} + +class NativeInterpreterMonitor { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function beforeProcessingEvent($interpreter,$event) { + NativeInterpreterMonitor_beforeProcessingEvent($this->_cPtr,$interpreter,$event); + } + + function beforeMicroStep($interpreter) { + NativeInterpreterMonitor_beforeMicroStep($this->_cPtr,$interpreter); + } + + function afterMicroStep($interpreter) { + NativeInterpreterMonitor_afterMicroStep($this->_cPtr,$interpreter); + } + + function onStableConfiguration($interpreter) { + NativeInterpreterMonitor_onStableConfiguration($this->_cPtr,$interpreter); + } + + function beforeCompletion($interpreter) { + NativeInterpreterMonitor_beforeCompletion($this->_cPtr,$interpreter); + } + + function afterCompletion($interpreter) { + NativeInterpreterMonitor_afterCompletion($this->_cPtr,$interpreter); + } + + function reportIssue($interpreter,$issue) { + NativeInterpreterMonitor_reportIssue($this->_cPtr,$interpreter,$issue); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__InterpreterMonitor') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_NativeInterpreterMonitor(); + } +} + +class StateTransitionMonitor extends NativeInterpreterMonitor { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + NativeInterpreterMonitor::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return NativeInterpreterMonitor::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return NativeInterpreterMonitor::__isset($var); + } + + function beforeTakingTransition($interpreter,$transition,$moreComing) { + StateTransitionMonitor_beforeTakingTransition($this->_cPtr,$interpreter,$transition,$moreComing); + } + + function onStableConfiguration($interpreter) { + StateTransitionMonitor_onStableConfiguration($this->_cPtr,$interpreter); + } + + function beforeProcessingEvent($interpreter,$event) { + StateTransitionMonitor_beforeProcessingEvent($this->_cPtr,$interpreter,$event); + } + + function beforeExitingState($interpreter,$state,$moreComing) { + StateTransitionMonitor_beforeExitingState($this->_cPtr,$interpreter,$state,$moreComing); + } + + function beforeEnteringState($interpreter,$state,$moreComing) { + StateTransitionMonitor_beforeEnteringState($this->_cPtr,$interpreter,$state,$moreComing); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__StateTransitionMonitor') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_StateTransitionMonitor(); + } +} + +class HTTPServer { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + function __construct($h) { + $this->_cPtr=$h; + } + + const HTTPS = 0; + + const HTTP = HTTPServer_HTTP; + + const WebSockets = HTTPServer_WebSockets; + + static function getInstance($port=null,$wsPort=null,$sslConf=null) { + switch (func_num_args()) { + case 0: $r=HTTPServer_getInstance(); break; + case 1: $r=HTTPServer_getInstance($port); break; + default: $r=HTTPServer_getInstance($port,$wsPort,$sslConf); + } + if (!is_resource($r)) return $r; + return new HTTPServer($r); + } + + static function getBaseURL($type=null) { + switch (func_num_args()) { + case 0: $r=HTTPServer_getBaseURL(); break; + default: $r=HTTPServer_getBaseURL($type); + } + return $r; + } + + static function registerServlet($path,$servlet) { + return HTTPServer_registerServlet($path,$servlet); + } + + static function unregisterServlet($servlet) { + HTTPServer_unregisterServlet($servlet); + } +} + +abstract class HTTPServlet { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + function __construct($h) { + $this->_cPtr=$h; + } + + function httpRecvRequest($request) { + return HTTPServlet_httpRecvRequest($this->_cPtr,$request); + } + + function setURL($url) { + HTTPServlet_setURL($this->_cPtr,$url); + } + + function canAdaptPath() { + return HTTPServlet_canAdaptPath($this->_cPtr); + } +} + +abstract class WebSocketServlet { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + function __construct($h) { + $this->_cPtr=$h; + } + + function wsRecvRequest($conn,$frame) { + return WebSocketServlet_wsRecvRequest($this->_cPtr,$conn,$frame); + } + + function setURL($url) { + WebSocketServlet_setURL($this->_cPtr,$url); + } + + function canAdaptPath() { + return WebSocketServlet_canAdaptPath($this->_cPtr); + } +} + +class InterpreterIssue { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + $func = 'InterpreterIssue_'.$var.'_set'; + if (function_exists($func)) return call_user_func($func,$this->_cPtr,$value); + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + $func = 'InterpreterIssue_'.$var.'_get'; + if (function_exists($func)) return call_user_func($func,$this->_cPtr); + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if (function_exists('InterpreterIssue_'.$var.'_get')) return true; + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + const USCXML_ISSUE_FATAL = 0; + + const USCXML_ISSUE_WARNING = InterpreterIssue_USCXML_ISSUE_WARNING; + + const USCXML_ISSUE_INFO = InterpreterIssue_USCXML_ISSUE_INFO; + + function __construct($msg,$node,$severity) { + if (is_resource($msg) && get_resource_type($msg) === '_p_uscxml__InterpreterIssue') { + $this->_cPtr=$msg; + return; + } + $this->_cPtr=new_InterpreterIssue($msg,$node,$severity); + } + + function toString() { + return InterpreterIssue_toString($this->_cPtr); + } +} + +class Blob { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($other_or_data=null,$mimeType=null) { + if (is_resource($other_or_data) && get_resource_type($other_or_data) === '_p_uscxml__Blob') { + $this->_cPtr=$other_or_data; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_Blob(); break; + case 1: $this->_cPtr=new_Blob($other_or_data); break; + default: $this->_cPtr=new_Blob($other_or_data,$mimeType); + } + } + + function isValid() { + return Blob_isValid($this->_cPtr); + } + + function equals($other) { + return Blob_equals($this->_cPtr,$other); + } + + static function fromBase64($base64,$mimeType=null) { + switch (func_num_args()) { + case 1: $r=Blob_fromBase64($base64); break; + default: $r=Blob_fromBase64($base64,$mimeType); + } + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Blob($r); + } + return $r; + } + + function base64() { + return Blob_base64($this->_cPtr); + } + + function md5() { + return Blob_md5($this->_cPtr); + } + + function getData() { + return Blob_getData($this->_cPtr); + } + + function getSize() { + return Blob_getSize($this->_cPtr); + } + + function getMimeType() { + return Blob_getMimeType($this->_cPtr); + } + + function setMimeType($mimeType) { + Blob_setMimeType($this->_cPtr,$mimeType); + } +} + +class Data { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + const VERBATIM = 0; + + const INTERPRETED = Data_INTERPRETED; + + function __construct($atom=null,$type=null) { + if (is_resource($atom) && get_resource_type($atom) === '_p_uscxml__Data') { + $this->_cPtr=$atom; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_Data(); break; + case 1: $this->_cPtr=new_Data($atom); break; + default: $this->_cPtr=new_Data($atom,$type); + } + } + + function c_empty() { + return Data_c_empty($this->_cPtr); + } + + function merge($other) { + Data_merge($this->_cPtr,$other); + } + + function hasKey($key) { + return Data_hasKey($this->_cPtr,$key); + } + + function at($key) { + $r=Data_at($this->_cPtr,$key); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function item($index) { + $r=Data_item($this->_cPtr,$index); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function put($key_or_index,$data) { + Data_put($this->_cPtr,$key_or_index,$data); + } + + function equals($other) { + return Data_equals($this->_cPtr,$other); + } + + static function fromJSON($jsonString) { + $r=Data_fromJSON($jsonString); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + static function toJSON($data) { + return Data_toJSON($data); + } + + static function fromXML($xmlString) { + $r=Data_fromXML($xmlString); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function toXMLString() { + return Data_toXMLString($this->_cPtr); + } + + function getCompound() { + $r=Data_getCompound($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new DataMap($r); + } + return $r; + } + + function setCompound($compound) { + Data_setCompound($this->_cPtr,$compound); + } + + function getArray() { + $r=Data_getArray($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new DataList($r); + } + return $r; + } + + function setArray($array) { + Data_setArray($this->_cPtr,$array); + } + + function getAtom() { + return Data_getAtom($this->_cPtr); + } + + function setAtom($atom) { + Data_setAtom($this->_cPtr,$atom); + } + + function getBinary() { + $r=Data_getBinary($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Blob($r); + } + return $r; + } + + function setBinary($binary) { + Data_setBinary($this->_cPtr,$binary); + } + + function getType() { + return Data_getType($this->_cPtr); + } + + function setType($type) { + Data_setType($this->_cPtr,$type); + } + + function toString() { + return Data_toString($this->_cPtr); + } + + function getCompoundKeys() { + $r=Data_getCompoundKeys($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringVector($r); + } + return $r; + } + + function getXML() { + return Data_getXML($this->_cPtr); + } + + function setXML($xml) { + Data_setXML($this->_cPtr,$xml); + } +} + +class Event { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + const INTERNAL = 1; + + const EXTERNAL = 2; + + const PLATFORM = 3; + + function __construct($name=null,$type=null) { + if (is_resource($name) && get_resource_type($name) === '_p_uscxml__Event') { + $this->_cPtr=$name; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_Event(); break; + case 1: $this->_cPtr=new_Event($name); break; + default: $this->_cPtr=new_Event($name,$type); + } + } + + function equals($other) { + return Event_equals($this->_cPtr,$other); + } + + function getName() { + return Event_getName($this->_cPtr); + } + + function setName($name) { + Event_setName($this->_cPtr,$name); + } + + function getEventType() { + return Event_getEventType($this->_cPtr); + } + + function setEventType($type) { + Event_setEventType($this->_cPtr,$type); + } + + function getOrigin() { + return Event_getOrigin($this->_cPtr); + } + + function setOrigin($origin) { + Event_setOrigin($this->_cPtr,$origin); + } + + function getOriginType() { + return Event_getOriginType($this->_cPtr); + } + + function setOriginType($originType) { + Event_setOriginType($this->_cPtr,$originType); + } + + function getDOM() { + return Event_getDOM($this->_cPtr); + } + + function getRaw() { + return Event_getRaw($this->_cPtr); + } + + function setRaw($raw) { + Event_setRaw($this->_cPtr,$raw); + } + + function getContent() { + return Event_getContent($this->_cPtr); + } + + function setContent($content) { + Event_setContent($this->_cPtr,$content); + } + + function getXML() { + return Event_getXML($this->_cPtr); + } + + function setXML($xml) { + Event_setXML($this->_cPtr,$xml); + } + + function getSendId() { + return Event_getSendId($this->_cPtr); + } + + function setSendId($sendId) { + Event_setSendId($this->_cPtr,$sendId); + } + + function getInvokeId() { + return Event_getInvokeId($this->_cPtr); + } + + function setInvokeId($invokeId) { + Event_setInvokeId($this->_cPtr,$invokeId); + } + + function getData() { + $r=Event_getData($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function setData($data) { + Event_setData($this->_cPtr,$data); + } + + static function fromXML($xmlString) { + $r=Event_fromXML($xmlString); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Event($r); + } + return $r; + } + + function toXMLString() { + return Event_toXMLString($this->_cPtr); + } + + function getNameList() { + $r=Event_getNameList($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new DataMap($r); + } + return $r; + } + + function setNameList($nameList) { + Event_setNameList($this->_cPtr,$nameList); + } + + function toString() { + return Event_toString($this->_cPtr); + } + + function getParamMap() { + $r=Event_getParamMap($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new ParamMap($r); + } + return $r; + } + + function getParamMapKeys() { + $r=Event_getParamMapKeys($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringVector($r); + } + return $r; + } + + function setParamMap($paramMap) { + Event_setParamMap($this->_cPtr,$paramMap); + } + + function getNameListKeys() { + $r=Event_getNameListKeys($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringVector($r); + } + return $r; + } +} + +class InvokeRequest extends Event { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + Event::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return Event::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return Event::__isset($var); + } + + function __construct($event=null) { + if (is_resource($event) && get_resource_type($event) === '_p_uscxml__InvokeRequest') { + $this->_cPtr=$event; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_InvokeRequest(); break; + default: $this->_cPtr=new_InvokeRequest($event); + } + } + + function getType() { + return InvokeRequest_getType($this->_cPtr); + } + + function setType($type) { + InvokeRequest_setType($this->_cPtr,$type); + } + + function getSource() { + return InvokeRequest_getSource($this->_cPtr); + } + + function setSource($src) { + InvokeRequest_setSource($this->_cPtr,$src); + } + + function isAutoForwarded() { + return InvokeRequest_isAutoForwarded($this->_cPtr); + } + + function setAutoForwarded($autoForward) { + InvokeRequest_setAutoForwarded($this->_cPtr,$autoForward); + } + + function toXMLString() { + return InvokeRequest_toXMLString($this->_cPtr); + } + + function toString() { + return InvokeRequest_toString($this->_cPtr); + } +} + +class SendRequest extends Event { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + Event::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return Event::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return Event::__isset($var); + } + + function __construct($event=null) { + if (is_resource($event) && get_resource_type($event) === '_p_uscxml__SendRequest') { + $this->_cPtr=$event; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_SendRequest(); break; + default: $this->_cPtr=new_SendRequest($event); + } + } + + function getTarget() { + return SendRequest_getTarget($this->_cPtr); + } + + function setTarget($target) { + SendRequest_setTarget($this->_cPtr,$target); + } + + function getType() { + return SendRequest_getType($this->_cPtr); + } + + function setType($type) { + SendRequest_setType($this->_cPtr,$type); + } + + function getDelayMs() { + return SendRequest_getDelayMs($this->_cPtr); + } + + function setDelayMs($delayMs) { + SendRequest_setDelayMs($this->_cPtr,$delayMs); + } + + function toXMLString() { + return SendRequest_toXMLString($this->_cPtr); + } + + function toString() { + return SendRequest_toString($this->_cPtr); + } +} + +abstract class NativeDataModelExtension { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + function __construct($h) { + $this->_cPtr=$h; + } + + function provides() { + return NativeDataModelExtension_provides($this->_cPtr); + } + + function getValueOf($member) { + $r=NativeDataModelExtension_getValueOf($this->_cPtr,$member); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function setValueOf($member,$data) { + NativeDataModelExtension_setValueOf($this->_cPtr,$member,$data); + } +} + +abstract class DataModelImpl { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + function __construct($h) { + $this->_cPtr=$h; + } + + function getNames() { + $r=DataModelImpl_getNames($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringList($r); + } + return $r; + } + + function validate($location,$schema) { + return DataModelImpl_validate($this->_cPtr,$location,$schema); + } + + function isLocation($expr) { + return DataModelImpl_isLocation($this->_cPtr,$expr); + } + + function isValidSyntax($expr) { + return DataModelImpl_isValidSyntax($this->_cPtr,$expr); + } + + function setEvent($event) { + DataModelImpl_setEvent($this->_cPtr,$event); + } + + function getStringAsData($content) { + $r=DataModelImpl_getStringAsData($this->_cPtr,$content); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function getLength($expr) { + return DataModelImpl_getLength($this->_cPtr,$expr); + } + + function setForeach($item,$array,$index,$iteration) { + DataModelImpl_setForeach($this->_cPtr,$item,$array,$index,$iteration); + } + + function pushContext() { + DataModelImpl_pushContext($this->_cPtr); + } + + function popContext() { + DataModelImpl_popContext($this->_cPtr); + } + + function evalAsString($expr) { + return DataModelImpl_evalAsString($this->_cPtr,$expr); + } + + function evalAsBool($scriptNode_or_expr,$expr=null) { + switch (func_num_args()) { + case 1: $r=DataModelImpl_evalAsBool($this->_cPtr,$scriptNode_or_expr); break; + default: $r=DataModelImpl_evalAsBool($this->_cPtr,$scriptNode_or_expr,$expr); + } + return $r; + } + + function isDeclared($expr) { + return DataModelImpl_isDeclared($this->_cPtr,$expr); + } + + function addExtension($ext) { + DataModelImpl_addExtension($this->_cPtr,$ext); + } + + function andExpressions($arg1) { + return DataModelImpl_andExpressions($this->_cPtr,$arg1); + } +} + +class NativeDataModel { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__DataModel') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_NativeDataModel(); + } + + function isValid() { + return NativeDataModel_isValid($this->_cPtr); + } + + function equals($other) { + return NativeDataModel_equals($this->_cPtr,$other); + } + + function getNames() { + $r=NativeDataModel_getNames($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringList($r); + } + return $r; + } + + function validate($location,$schema) { + return NativeDataModel_validate($this->_cPtr,$location,$schema); + } + + function isLocation($expr) { + return NativeDataModel_isLocation($this->_cPtr,$expr); + } + + function isValidSyntax($expr) { + return NativeDataModel_isValidSyntax($this->_cPtr,$expr); + } + + function setEvent($event) { + NativeDataModel_setEvent($this->_cPtr,$event); + } + + function getStringAsData($content) { + $r=NativeDataModel_getStringAsData($this->_cPtr,$content); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function pushContext() { + NativeDataModel_pushContext($this->_cPtr); + } + + function popContext() { + NativeDataModel_popContext($this->_cPtr); + } + + function evalAsString($expr) { + return NativeDataModel_evalAsString($this->_cPtr,$expr); + } + + function evalAsBool($scriptNode,$expr) { + return NativeDataModel_evalAsBool($this->_cPtr,$scriptNode,$expr); + } + + function getLength($expr) { + return NativeDataModel_getLength($this->_cPtr,$expr); + } + + function setForeach($item,$array,$index,$iteration) { + NativeDataModel_setForeach($this->_cPtr,$item,$array,$index,$iteration); + } + + function assign($location,$data) { + NativeDataModel_assign($this->_cPtr,$location,$data); + } + + function init($location,$data) { + NativeDataModel_init($this->_cPtr,$location,$data); + } + + function isDeclared($expr) { + return NativeDataModel_isDeclared($this->_cPtr,$expr); + } + + function andExpressions($expressions) { + return NativeDataModel_andExpressions($this->_cPtr,$expressions); + } + + function addExtension($ext) { + NativeDataModel_addExtension($this->_cPtr,$ext); + } +} + +abstract class EventHandlerImpl { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + function __construct($h) { + $this->_cPtr=$h; + } + + function getNames() { + $r=EventHandlerImpl_getNames($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringList($r); + } + return $r; + } + + function setInvokeId($invokeId) { + EventHandlerImpl_setInvokeId($this->_cPtr,$invokeId); + } + + function setType($type) { + EventHandlerImpl_setType($this->_cPtr,$type); + } + + function getType() { + return EventHandlerImpl_getType($this->_cPtr); + } + + function getDataModelVariables() { + $r=EventHandlerImpl_getDataModelVariables($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function send($req) { + EventHandlerImpl_send($this->_cPtr,$req); + } + + function returnErrorExecution($arg1) { + EventHandlerImpl_returnErrorExecution($this->_cPtr,$arg1); + } + + function returnErrorCommunication($arg1) { + EventHandlerImpl_returnErrorCommunication($this->_cPtr,$arg1); + } + + function returnEvent($event,$internal=false) { + EventHandlerImpl_returnEvent($this->_cPtr,$event,$internal); + } +} + +class EventHandler { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($other=null) { + if (is_resource($other) && get_resource_type($other) === '_p_uscxml__EventHandler') { + $this->_cPtr=$other; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_EventHandler(); break; + default: $this->_cPtr=new_EventHandler($other); + } + } + + function getNames() { + $r=EventHandler_getNames($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringList($r); + } + return $r; + } + + function getDataModelVariables() { + $r=EventHandler_getDataModelVariables($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function send($req) { + EventHandler_send($this->_cPtr,$req); + } + + function setInvokeId($invokeId) { + EventHandler_setInvokeId($this->_cPtr,$invokeId); + } + + function setType($type) { + EventHandler_setType($this->_cPtr,$type); + } + + function getType() { + return EventHandler_getType($this->_cPtr); + } +} + +abstract class ExecutableContentImpl { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + function __construct($h) { + $this->_cPtr=$h; + } + + function getLocalName() { + return ExecutableContentImpl_getLocalName($this->_cPtr); + } + + function getNamespace() { + return ExecutableContentImpl_getNamespace($this->_cPtr); + } + + function enterElement($node) { + ExecutableContentImpl_enterElement($this->_cPtr,$node); + } + + function exitElement($node) { + ExecutableContentImpl_exitElement($this->_cPtr,$node); + } + + function processChildren() { + return ExecutableContentImpl_processChildren($this->_cPtr); + } +} + +class NativeExecutableContent { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__ExecutableContent') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_NativeExecutableContent(); + } + + function isValid() { + return NativeExecutableContent_isValid($this->_cPtr); + } + + function equals($other) { + return NativeExecutableContent_equals($this->_cPtr,$other); + } + + function getLocalName() { + return NativeExecutableContent_getLocalName($this->_cPtr); + } + + function getNamespace() { + return NativeExecutableContent_getNamespace($this->_cPtr); + } + + function enterElement($node) { + NativeExecutableContent_enterElement($this->_cPtr,$node); + } + + function exitElement($node) { + NativeExecutableContent_exitElement($this->_cPtr,$node); + } + + function processChildren() { + return NativeExecutableContent_processChildren($this->_cPtr); + } +} + +abstract class InvokerImpl extends EventHandlerImpl { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + EventHandlerImpl::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return EventHandlerImpl::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return EventHandlerImpl::__isset($var); + } + function __construct($h) { + $this->_cPtr=$h; + } + + function invoke($req) { + InvokerImpl_invoke($this->_cPtr,$req); + } + + function uninvoke() { + InvokerImpl_uninvoke($this->_cPtr); + } + + function deleteOnUninvoke() { + return InvokerImpl_deleteOnUninvoke($this->_cPtr); + } +} + +class NativeInvoker extends EventHandler { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + EventHandler::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return EventHandler::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return EventHandler::__isset($var); + } + + function __construct($other=null) { + if (is_resource($other) && get_resource_type($other) === '_p_uscxml__Invoker') { + $this->_cPtr=$other; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_NativeInvoker(); break; + default: $this->_cPtr=new_NativeInvoker($other); + } + } + + function isValid() { + return NativeInvoker_isValid($this->_cPtr); + } + + function equals($other) { + return NativeInvoker_equals($this->_cPtr,$other); + } + + function invoke($req) { + NativeInvoker_invoke($this->_cPtr,$req); + } + + function uninvoke() { + NativeInvoker_uninvoke($this->_cPtr); + } + + function deleteOnUninvoke() { + return NativeInvoker_deleteOnUninvoke($this->_cPtr); + } +} + +abstract class IOProcessorImpl extends EventHandlerImpl { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + EventHandlerImpl::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return EventHandlerImpl::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return EventHandlerImpl::__isset($var); + } + function __construct($h) { + $this->_cPtr=$h; + } +} + +class NativeIOProcessor extends EventHandler { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + EventHandler::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return EventHandler::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return EventHandler::__isset($var); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__IOProcessor') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_NativeIOProcessor(); + } + + function isValid() { + return NativeIOProcessor_isValid($this->_cPtr); + } + + function equals($other) { + return NativeIOProcessor_equals($this->_cPtr,$other); + } +} + +class Invoker extends InvokerImpl { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + InvokerImpl::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return InvokerImpl::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return InvokerImpl::__isset($var); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__WrappedInvoker') { + $this->_cPtr=$res; + return; + } + if (get_class($this) === 'Invoker') { + $_this = null; + } else { + $_this = $this; + } + $this->_cPtr=new_Invoker($_this); + } + + function getNames() { + $r=Invoker_getNames($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringList($r); + } + return $r; + } + + function getDataModelVariables() { + $r=Invoker_getDataModelVariables($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function send($req) { + Invoker_send($this->_cPtr,$req); + } + + function invoke($req) { + Invoker_invoke($this->_cPtr,$req); + } + + function uninvoke() { + Invoker_uninvoke($this->_cPtr); + } + + function deleteOnUninvoke() { + return Invoker_deleteOnUninvoke($this->_cPtr); + } + + function create($interpreter) { + $r=Invoker_create($this->_cPtr,$interpreter); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Invoker($r); + } + return $r; + } +} + +class DataModelExtension extends NativeDataModelExtension { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + NativeDataModelExtension::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return NativeDataModelExtension::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return NativeDataModelExtension::__isset($var); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__WrappedDataModelExtension') { + $this->_cPtr=$res; + return; + } + if (get_class($this) === 'DataModelExtension') { + $_this = null; + } else { + $_this = $this; + } + $this->_cPtr=new_DataModelExtension($_this); + } + + function provides() { + return DataModelExtension_provides($this->_cPtr); + } + + function getValueOf($member) { + $r=DataModelExtension_getValueOf($this->_cPtr,$member); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function setValueOf($member,$data) { + DataModelExtension_setValueOf($this->_cPtr,$member,$data); + } +} + +class DataModel extends DataModelImpl { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + DataModelImpl::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return DataModelImpl::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return DataModelImpl::__isset($var); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__WrappedDataModel') { + $this->_cPtr=$res; + return; + } + if (get_class($this) === 'DataModel') { + $_this = null; + } else { + $_this = $this; + } + $this->_cPtr=new_DataModel($_this); + } + + function create($interpreter) { + $r=DataModel_create($this->_cPtr,$interpreter); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new DataModel($r); + } + return $r; + } + + function getNames() { + $r=DataModel_getNames($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringList($r); + } + return $r; + } + + function andExpressions($arg0) { + return DataModel_andExpressions($this->_cPtr,$arg0); + } + + function validate($location,$schema) { + return DataModel_validate($this->_cPtr,$location,$schema); + } + + function setEvent($event) { + DataModel_setEvent($this->_cPtr,$event); + } + + function getStringAsData($content) { + $r=DataModel_getStringAsData($this->_cPtr,$content); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function getLength($expr) { + return DataModel_getLength($this->_cPtr,$expr); + } + + function setForeach($item,$array,$index,$iteration) { + DataModel_setForeach($this->_cPtr,$item,$array,$index,$iteration); + } + + function pushContext() { + DataModel_pushContext($this->_cPtr); + } + + function popContext() { + DataModel_popContext($this->_cPtr); + } + + function evalAsString($expr) { + return DataModel_evalAsString($this->_cPtr,$expr); + } + + function isDeclared($expr) { + return DataModel_isDeclared($this->_cPtr,$expr); + } + + function isLocation($expr) { + return DataModel_isLocation($this->_cPtr,$expr); + } + + function evalAsBool($expr_or_node_or_elem,$expr_or_content=null) { + switch (func_num_args()) { + case 1: $this->_cPtr=DataModel_evalAsBool($this->_cPtr,$expr_or_node_or_elem); break; + default: $this->_cPtr=DataModel_evalAsBool($this->_cPtr,$expr_or_node_or_elem,$expr_or_content); + } + return $r; + } + + function init($dataElem,$location,$content) { + DataModel_init($this->_cPtr,$dataElem,$location,$content); + } + + function assign($assignElem,$location,$content) { + DataModel_assign($this->_cPtr,$assignElem,$location,$content); + } + + function c_eval($scriptElem,$expr) { + DataModel_c_eval($this->_cPtr,$scriptElem,$expr); + } +} + +class ExecutableContent extends ExecutableContentImpl { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + ExecutableContentImpl::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return ExecutableContentImpl::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return ExecutableContentImpl::__isset($var); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__WrappedExecutableContent') { + $this->_cPtr=$res; + return; + } + if (get_class($this) === 'ExecutableContent') { + $_this = null; + } else { + $_this = $this; + } + $this->_cPtr=new_ExecutableContent($_this); + } + + function create($interpreter) { + $r=ExecutableContent_create($this->_cPtr,$interpreter); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new ExecutableContent($r); + } + return $r; + } + + function getLocalName() { + return ExecutableContent_getLocalName($this->_cPtr); + } + + function getNamespace() { + return ExecutableContent_getNamespace($this->_cPtr); + } + + function processChildren() { + return ExecutableContent_processChildren($this->_cPtr); + } + + function enterElement($node) { + ExecutableContent_enterElement($this->_cPtr,$node); + } + + function exitElement($node) { + ExecutableContent_exitElement($this->_cPtr,$node); + } +} + +class IOProcessor extends IOProcessorImpl { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + IOProcessorImpl::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return IOProcessorImpl::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return IOProcessorImpl::__isset($var); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__WrappedIOProcessor') { + $this->_cPtr=$res; + return; + } + if (get_class($this) === 'IOProcessor') { + $_this = null; + } else { + $_this = $this; + } + $this->_cPtr=new_IOProcessor($_this); + } + + function create($interpreter) { + $r=IOProcessor_create($this->_cPtr,$interpreter); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new IOProcessor($r); + } + return $r; + } + + function getNames() { + $r=IOProcessor_getNames($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new StringList($r); + } + return $r; + } + + function getDataModelVariables() { + $r=IOProcessor_getDataModelVariables($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function send($req) { + IOProcessor_send($this->_cPtr,$req); + } +} + +class InterpreterMonitor extends NativeInterpreterMonitor { + public $_cPtr=null; + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + NativeInterpreterMonitor::__set($var,$value); + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return NativeInterpreterMonitor::__get($var); + } + + function __isset($var) { + if ($var === 'thisown') return true; + return NativeInterpreterMonitor::__isset($var); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__WrappedInterpreterMonitor') { + $this->_cPtr=$res; + return; + } + if (get_class($this) === 'InterpreterMonitor') { + $_this = null; + } else { + $_this = $this; + } + $this->_cPtr=new_InterpreterMonitor($_this); + } + + function beforeExitingState($interpreter,$stateId,$xpath,$state,$moreComing) { + InterpreterMonitor_beforeExitingState($this->_cPtr,$interpreter,$stateId,$xpath,$state,$moreComing); + } + + function afterExitingState($interpreter,$stateId,$xpath,$state,$moreComing) { + InterpreterMonitor_afterExitingState($this->_cPtr,$interpreter,$stateId,$xpath,$state,$moreComing); + } + + function beforeExecutingContent($interpreter,$tagName,$xpath,$element) { + InterpreterMonitor_beforeExecutingContent($this->_cPtr,$interpreter,$tagName,$xpath,$element); + } + + function afterExecutingContent($interpreter,$tagName,$xpath,$element) { + InterpreterMonitor_afterExecutingContent($this->_cPtr,$interpreter,$tagName,$xpath,$element); + } + + function beforeUninvoking($interpreter,$xpath,$invokeid,$element) { + InterpreterMonitor_beforeUninvoking($this->_cPtr,$interpreter,$xpath,$invokeid,$element); + } + + function afterUninvoking($interpreter,$xpath,$invokeid,$element) { + InterpreterMonitor_afterUninvoking($this->_cPtr,$interpreter,$xpath,$invokeid,$element); + } + + function beforeTakingTransition($interpreter,$xpath,$source,$targets,$element,$moreComing) { + InterpreterMonitor_beforeTakingTransition($this->_cPtr,$interpreter,$xpath,$source,$targets,$element,$moreComing); + } + + function afterTakingTransition($interpreter,$xpath,$source,$targets,$element,$moreComing) { + InterpreterMonitor_afterTakingTransition($this->_cPtr,$interpreter,$xpath,$source,$targets,$element,$moreComing); + } + + function beforeEnteringState($interpreter,$stateId,$xpath,$state,$moreComing) { + InterpreterMonitor_beforeEnteringState($this->_cPtr,$interpreter,$stateId,$xpath,$state,$moreComing); + } + + function afterEnteringState($interpreter,$stateId,$xpath,$state,$moreComing) { + InterpreterMonitor_afterEnteringState($this->_cPtr,$interpreter,$stateId,$xpath,$state,$moreComing); + } + + function beforeInvoking($interpreter,$xpath,$invokeid,$element) { + InterpreterMonitor_beforeInvoking($this->_cPtr,$interpreter,$xpath,$invokeid,$element); + } + + function afterInvoking($interpreter,$xpath,$invokeid,$element) { + InterpreterMonitor_afterInvoking($this->_cPtr,$interpreter,$xpath,$invokeid,$element); + } + + function reportIssue($interpreter,$issue) { + InterpreterMonitor_reportIssue($this->_cPtr,$interpreter,$issue); + } +} + +class IssueList { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function c_list($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_std__listT_uscxml__InterpreterIssue_t') { + $this->_cPtr=$res; + return; + } + return new IssueList(new_c_list()); + } + + function size() { + return IssueList_size($this->_cPtr); + } + + function c_empty() { + return IssueList_c_empty($this->_cPtr); + } + + function clear() { + IssueList_clear($this->_cPtr); + } + + function add($x) { + IssueList_add($this->_cPtr,$x); + } + + function get($i) { + $r=IssueList_get($this->_cPtr,$i); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new InterpreterIssue($r); + } + return $r; + } +} + +class DataList { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + function __construct($h) { + $this->_cPtr=$h; + } + + function size() { + return DataList_size($this->_cPtr); + } + + function c_empty() { + return DataList_c_empty($this->_cPtr); + } + + function clear() { + DataList_clear($this->_cPtr); + } + + function add($x) { + DataList_add($this->_cPtr,$x); + } + + function get($i) { + $r=DataList_get($this->_cPtr,$i); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } +} + +class DataMap { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($arg1=null) { + if (is_resource($arg1) && get_resource_type($arg1) === '_p_std__mapT_std__string_uscxml__Data_t') { + $this->_cPtr=$arg1; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_DataMap(); break; + default: $this->_cPtr=new_DataMap($arg1); + } + } + + function size() { + return DataMap_size($this->_cPtr); + } + + function clear() { + DataMap_clear($this->_cPtr); + } + + function get($key) { + $r=DataMap_get($this->_cPtr,$key); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new Data($r); + } + return $r; + } + + function set($key,$x) { + DataMap_set($this->_cPtr,$key,$x); + } + + function del($key) { + DataMap_del($this->_cPtr,$key); + } + + function has_key($key) { + return DataMap_has_key($this->_cPtr,$key); + } + + function is_empty() { + return DataMap_is_empty($this->_cPtr); + } +} + +class StringSet { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($arg1=null) { + if (is_resource($arg1) && get_resource_type($arg1) === '_p_std__setT_std__string_t') { + $this->_cPtr=$arg1; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_StringSet(); break; + default: $this->_cPtr=new_StringSet($arg1); + } + } + + function size() { + return StringSet_size($this->_cPtr); + } + + function c_empty() { + return StringSet_c_empty($this->_cPtr); + } + + function clear() { + StringSet_clear($this->_cPtr); + } + + function get($key) { + return StringSet_get($this->_cPtr,$key); + } + + function insert($key) { + StringSet_insert($this->_cPtr,$key); + } + + function del($key) { + StringSet_del($this->_cPtr,$key); + } + + function has_key($key) { + return StringSet_has_key($this->_cPtr,$key); + } +} + +class StringVector { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($n=null) { + if (is_resource($n) && get_resource_type($n) === '_p_std__vectorT_std__string_t') { + $this->_cPtr=$n; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_StringVector(); break; + default: $this->_cPtr=new_StringVector($n); + } + } + + function size() { + return StringVector_size($this->_cPtr); + } + + function capacity() { + return StringVector_capacity($this->_cPtr); + } + + function reserve($n) { + StringVector_reserve($this->_cPtr,$n); + } + + function clear() { + StringVector_clear($this->_cPtr); + } + + function push($x) { + StringVector_push($this->_cPtr,$x); + } + + function is_empty() { + return StringVector_is_empty($this->_cPtr); + } + + function pop() { + return StringVector_pop($this->_cPtr); + } + + function get($i) { + return StringVector_get($this->_cPtr,$i); + } + + function set($i,$val) { + StringVector_set($this->_cPtr,$i,$val); + } +} + +class StringList { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + function __construct($h) { + $this->_cPtr=$h; + } + + function size() { + return StringList_size($this->_cPtr); + } + + function c_empty() { + return StringList_c_empty($this->_cPtr); + } + + function clear() { + StringList_clear($this->_cPtr); + } + + function add($x) { + StringList_add($this->_cPtr,$x); + } + + function get($i) { + return StringList_get($this->_cPtr,$i); + } +} + +class ParamMap { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($arg1=null) { + if (is_resource($arg1) && get_resource_type($arg1) === '_p_std__mapT_std__string_std__listT_uscxml__Data_t_t') { + $this->_cPtr=$arg1; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_ParamMap(); break; + default: $this->_cPtr=new_ParamMap($arg1); + } + } + + function size() { + return ParamMap_size($this->_cPtr); + } + + function clear() { + ParamMap_clear($this->_cPtr); + } + + function get($key) { + $r=ParamMap_get($this->_cPtr,$key); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new DataList($r); + } + return $r; + } + + function set($key,$x) { + ParamMap_set($this->_cPtr,$key,$x); + } + + function del($key) { + ParamMap_del($this->_cPtr,$key); + } + + function has_key($key) { + return ParamMap_has_key($this->_cPtr,$key); + } + + function is_empty() { + return ParamMap_is_empty($this->_cPtr); + } +} + +class IOProcMap { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($arg1=null) { + if (is_resource($arg1) && get_resource_type($arg1) === '_p_std__mapT_std__string_uscxml__IOProcessor_t') { + $this->_cPtr=$arg1; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_IOProcMap(); break; + default: $this->_cPtr=new_IOProcMap($arg1); + } + } + + function size() { + return IOProcMap_size($this->_cPtr); + } + + function clear() { + IOProcMap_clear($this->_cPtr); + } + + function get($key) { + $r=IOProcMap_get($this->_cPtr,$key); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new NativeIOProcessor($r); + } + return $r; + } + + function set($key,$x) { + IOProcMap_set($this->_cPtr,$key,$x); + } + + function del($key) { + IOProcMap_del($this->_cPtr,$key); + } + + function has_key($key) { + return IOProcMap_has_key($this->_cPtr,$key); + } + + function is_empty() { + return IOProcMap_is_empty($this->_cPtr); + } +} + +class InvokerMap { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($arg1=null) { + if (is_resource($arg1) && get_resource_type($arg1) === '_p_std__mapT_std__string_uscxml__Invoker_t') { + $this->_cPtr=$arg1; + return; + } + switch (func_num_args()) { + case 0: $this->_cPtr=new_InvokerMap(); break; + default: $this->_cPtr=new_InvokerMap($arg1); + } + } + + function size() { + return InvokerMap_size($this->_cPtr); + } + + function clear() { + InvokerMap_clear($this->_cPtr); + } + + function get($key) { + $r=InvokerMap_get($this->_cPtr,$key); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new NativeInvoker($r); + } + return $r; + } + + function set($key,$x) { + InvokerMap_set($this->_cPtr,$key,$x); + } + + function del($key) { + InvokerMap_del($this->_cPtr,$key); + } + + function has_key($key) { + return InvokerMap_has_key($this->_cPtr,$key); + } + + function is_empty() { + return InvokerMap_is_empty($this->_cPtr); + } +} + +class ParentQueue { + public $_cPtr=null; + protected $_pData=array(); + + function __set($var,$value) { + if ($var === 'thisown') return swig_uscxmlNativePHP_alter_newobject($this->_cPtr,$value); + $this->_pData[$var] = $value; + } + + function __get($var) { + if ($var === 'thisown') return swig_uscxmlNativePHP_get_newobject($this->_cPtr); + return $this->_pData[$var]; + } + + function __isset($var) { + if ($var === 'thisown') return true; + return array_key_exists($var, $this->_pData); + } + + function __construct($res=null) { + if (is_resource($res) && get_resource_type($res) === '_p_uscxml__concurrency__BlockingQueueT_uscxml__SendRequest_t') { + $this->_cPtr=$res; + return; + } + $this->_cPtr=new_ParentQueue(); + } + + function push($elem) { + ParentQueue_push($this->_cPtr,$elem); + } + + function push_front($elem) { + ParentQueue_push_front($this->_cPtr,$elem); + } + + function pop() { + $r=ParentQueue_pop($this->_cPtr); + if (is_resource($r)) { + $c=substr(get_resource_type($r), (strpos(get_resource_type($r), '__') ? strpos(get_resource_type($r), '__') + 2 : 3)); + if (class_exists($c)) return new $c($r); + return new SendRequest($r); + } + return $r; + } + + function clear() { + ParentQueue_clear($this->_cPtr); + } + + function isEmpty() { + return ParentQueue_isEmpty($this->_cPtr); + } +} + + +?> |