summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--build/xcode/CMakeCache.txt492
-rw-r--r--build/xcode/CMakeFiles/TargetDirectories.txt10
-rw-r--r--build/xcode/CMakeScripts/XCODE_DEPEND_HELPER.make419
-rw-r--r--build/xcode/Debug/libuscxml.abin28599160 -> 0 bytes
-rw-r--r--src/uscxml/Factory.cpp3
-rw-r--r--src/uscxml/Interpreter.cpp122
-rw-r--r--src/uscxml/Interpreter.h1
-rw-r--r--src/uscxml/Message.cpp62
-rw-r--r--src/uscxml/Message.h7
-rw-r--r--src/uscxml/concurrency/eventqueue/libevent/DelayedEventQueue.cpp2
-rw-r--r--src/uscxml/invoker/scxml/USCXMLInvoker.cpp9
-rw-r--r--src/uscxml/invoker/scxml/USCXMLInvoker.h1
-rw-r--r--src/uscxml/ioprocessor/basichttp/libevent/EventIOProcessor.cpp28
-rw-r--r--test/CMakeLists.txt5
-rw-r--r--test/src/test-communication.scxml13
-rw-r--r--test/src/test-completion.cpp16
-rw-r--r--test/src/test-donedata.scxml37
18 files changed, 260 insertions, 970 deletions
diff --git a/.gitignore b/.gitignore
index f77e4ba..9c43805 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,5 @@
*.DS_Store
+build/*
+build/
+build*/
diff --git a/build/xcode/CMakeCache.txt b/build/xcode/CMakeCache.txt
deleted file mode 100644
index 8b3bd0c..0000000
--- a/build/xcode/CMakeCache.txt
+++ /dev/null
@@ -1,492 +0,0 @@
-# This is the CMakeCache file.
-# For build in directory: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode
-# It was generated by CMake: /opt/local/bin/cmake
-# You can edit this file to change values found and used by cmake.
-# If you do not want to change any of the values, simply exit the editor.
-# If you do want to change a value, simply edit, save, and exit the editor.
-# The syntax for the file is as follows:
-# KEY:TYPE=VALUE
-# KEY is the name of a variable in the cache.
-# TYPE is a hint to GUI's for the type of VALUE, DO NOT EDIT TYPE!.
-# VALUE is the current value for the KEY.
-
-########################
-# EXTERNAL cache entries
-########################
-
-//Path to a file.
-ARABICA_INCLUDE_DIR:PATH=/usr/local/include/arabica
-
-//Path to a library.
-ARABICA_LIBRARY:FILEPATH=/usr/local/lib/libarabica.a
-
-//Path to a file.
-Boost_INCLUDE_DIR:PATH=/opt/local/include
-
-//Path to a program.
-CMAKE_AR:FILEPATH=/usr/bin/ar
-
-//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
-// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
-CMAKE_BUILD_TYPE:STRING=
-
-//Semicolon separated list of supported configuration types, only
-// supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything
-// else will be ignored.
-CMAKE_CONFIGURATION_TYPES:STRING=Debug;Release;MinSizeRel;RelWithDebInfo
-
-//C++ compiler
-CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++
-
-//Flags used by the compiler during all build types.
-CMAKE_CXX_FLAGS:STRING=
-
-//Flags used by the compiler during debug builds.
-CMAKE_CXX_FLAGS_DEBUG:STRING=-g
-
-//Flags used by the compiler during release minsize builds.
-CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
-
-//Flags used by the compiler during release builds (/MD /Ob1 /Oi
-// /Ot /Oy /Gs will produce slightly less optimized but smaller
-// files).
-CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
-
-//Flags used by the compiler during Release with Debug Info builds.
-CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g
-
-//C compiler
-CMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc
-
-//Flags used by the compiler during all build types.
-CMAKE_C_FLAGS:STRING=
-
-//Flags used by the compiler during debug builds.
-CMAKE_C_FLAGS_DEBUG:STRING=-g
-
-//Flags used by the compiler during release minsize builds.
-CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
-
-//Flags used by the compiler during release builds (/MD /Ob1 /Oi
-// /Ot /Oy /Gs will produce slightly less optimized but smaller
-// files).
-CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
-
-//Flags used by the compiler during Release with Debug Info builds.
-CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g
-
-//Flags used by the linker.
-CMAKE_EXE_LINKER_FLAGS:STRING=' '
-
-//Flags used by the linker during debug builds.
-CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during release minsize builds.
-CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during release builds.
-CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during Release with Debug Info builds.
-CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//Path to a program.
-CMAKE_INSTALL_NAME_TOOL:FILEPATH=/usr/bin/install_name_tool
-
-//Install path prefix, prepended onto install directories.
-CMAKE_INSTALL_PREFIX:PATH=/usr/local
-
-//Path to a program.
-CMAKE_LINKER:FILEPATH=/usr/bin/ld
-
-//make program
-CMAKE_MAKE_PROGRAM:FILEPATH=/opt/local/bin/cmakexbuild
-
-//Flags used by the linker during the creation of modules.
-CMAKE_MODULE_LINKER_FLAGS:STRING=' '
-
-//Flags used by the linker during debug builds.
-CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during release minsize builds.
-CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during release builds.
-CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during Release with Debug Info builds.
-CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//Path to a program.
-CMAKE_NM:FILEPATH=/usr/bin/nm
-
-//Path to a program.
-CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND
-
-//Path to a program.
-CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND
-
-//Build architectures for OSX
-CMAKE_OSX_ARCHITECTURES:STRING=
-
-//Minimum OS X version to target for deployment (at runtime); newer
-// APIs weak linked. Set to empty string for default value.
-CMAKE_OSX_DEPLOYMENT_TARGET:STRING=
-
-//The product will be built against the headers and libraries located
-// inside the indicated SDK.
-CMAKE_OSX_SYSROOT:PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk
-
-//Value Computed by CMake
-CMAKE_PROJECT_NAME:STATIC=uscxml
-
-//Path to a program.
-CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
-
-//Flags used by the linker during the creation of dll's.
-CMAKE_SHARED_LINKER_FLAGS:STRING=' '
-
-//Flags used by the linker during debug builds.
-CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during release minsize builds.
-CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during release builds.
-CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during Release with Debug Info builds.
-CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//If set, runtime paths are not added when installing shared libraries,
-// but are added when building.
-CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
-
-//If set, runtime paths are not added when using shared libraries.
-CMAKE_SKIP_RPATH:BOOL=NO
-
-//Path to a program.
-CMAKE_STRIP:FILEPATH=/usr/bin/strip
-
-//If true, cmake will use relative paths in makefiles and projects.
-CMAKE_USE_RELATIVE_PATHS:BOOL=OFF
-
-//If this value is on, makefiles will be generated without the
-// .SILENT directive, and all commands will be echoed to the console
-// during the make. This is useful for debugging only. With Visual
-// Studio IDE projects all commands are done without /nologo.
-CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
-
-//Path to a program.
-CMAKE_XCODE_SELECT:FILEPATH=/usr/bin/xcode-select
-
-//Path to a file.
-EVENT_INCLUDE_DIR:PATH=/Users/sradomski/Documents/TK/Code/libevent/include
-
-//Path to a library.
-EVENT_LIBRARY:FILEPATH=/Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a
-
-//Path to a library.
-EVENT_LIBRARY_THREADS:FILEPATH=/Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a
-
-//Path to a file.
-GLOG_INCLUDE_DIR:PATH=/Users/sradomski/Documents/TK/Code/glog/src
-
-//Path to a library.
-GLOG_LIBRARY:FILEPATH=/Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a
-
-//jawt.h location
-JAVA_AWT_INCLUDE_PATH:FILEPATH=/System/Library/Frameworks/JavaVM.framework/Headers
-
-//Java Frameworks
-JAVA_AWT_LIBRARY:FILEPATH=-framework JavaVM
-
-//Path to a file.
-JAVA_INCLUDE_PATH:PATH=/System/Library/Frameworks/JavaVM.framework/Headers
-
-//Path to a file.
-JAVA_INCLUDE_PATH2:PATH=/System/Library/Frameworks/JavaVM.framework/Headers
-
-//Java Frameworks
-JAVA_JVM_LIBRARY:FILEPATH=-framework JavaVM
-
-//Path to a file.
-LIBXML2_INCLUDE_DIR:PATH=/opt/local/include/libxml2
-
-//Path to a library.
-LIBXML2_LIBRARIES:FILEPATH=/opt/local/lib/libxml2.dylib
-
-//Path to a program.
-LIBXML2_XMLLINT_EXECUTABLE:FILEPATH=/opt/local/bin/xmllint
-
-//pkg-config executable
-PKG_CONFIG_EXECUTABLE:FILEPATH=/opt/local/bin/pkg-config
-
-//Path to a file.
-SWIG_DIR:PATH=/usr/local/share/swig/2.0.5
-
-//Path to a program.
-SWIG_EXECUTABLE:FILEPATH=/usr/local/bin/swig
-
-//Swig version
-SWIG_VERSION:STRING=2.0.5
-
-//Path to a file.
-V8_INCLUDE_DIR:PATH=/Users/sradomski/Documents/TK/Code/v8/include
-
-//Path to a library.
-V8_LIBRARY_BASE:FILEPATH=/Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a
-
-//Path to a library.
-V8_LIBRARY_SNAPSHOT:FILEPATH=/Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
-
-//Dependencies for the target
-uscxmlNativeJava_LIB_DEPENDS:STATIC=general;-framework JavaVM;general;-framework JavaVM;general;uscxml;
-
-//Value Computed by CMake
-uscxml_BINARY_DIR:STATIC=/Users/sradomski/Documents/TK/Code/uscxml/build/xcode
-
-//Dependencies for the target
-uscxml_LIB_DEPENDS:STATIC=general;/opt/local/lib/libxml2.dylib;general;/Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a;general;/usr/local/lib/libarabica.a;general;/Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a;general;/Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a;general;/Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a;general;/Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a;
-
-//Value Computed by CMake
-uscxml_SOURCE_DIR:STATIC=/Users/sradomski/Documents/TK/Code/uscxml
-
-
-########################
-# INTERNAL cache entries
-########################
-
-//Stored Xcode object GUID
-ALL_BUILD_GUID_CMAKE:INTERNAL=9293F885A97848298A31186D
-//ADVANCED property for variable: ARABICA_INCLUDE_DIR
-ARABICA_INCLUDE_DIR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: ARABICA_LIBRARY
-ARABICA_LIBRARY-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_AR
-CMAKE_AR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_BUILD_TOOL
-CMAKE_BUILD_TOOL-ADVANCED:INTERNAL=1
-//What is the target build tool cmake is generating for.
-CMAKE_BUILD_TOOL:INTERNAL=/opt/local/bin/cmakexbuild
-//This is the directory where this CMakeCache.txt was created
-CMAKE_CACHEFILE_DIR:INTERNAL=/Users/sradomski/Documents/TK/Code/uscxml/build/xcode
-//Major version of cmake used to create the current loaded cache
-CMAKE_CACHE_MAJOR_VERSION:INTERNAL=2
-//Minor version of cmake used to create the current loaded cache
-CMAKE_CACHE_MINOR_VERSION:INTERNAL=8
-//Patch version of cmake used to create the current loaded cache
-CMAKE_CACHE_PATCH_VERSION:INTERNAL=8
-//Path to CMake executable.
-CMAKE_COMMAND:INTERNAL=/opt/local/bin/cmake
-//Path to cpack program executable.
-CMAKE_CPACK_COMMAND:INTERNAL=/opt/local/bin/cpack
-//Path to ctest program executable.
-CMAKE_CTEST_COMMAND:INTERNAL=/opt/local/bin/ctest
-//ADVANCED property for variable: CMAKE_CXX_COMPILER
-CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
-CMAKE_CXX_COMPILER_WORKS:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS
-CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
-CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
-CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
-CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
-CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_COMPILER
-CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
-CMAKE_C_COMPILER_WORKS:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS
-CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
-CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
-CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
-CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
-CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//Result of TRY_COMPILE
-CMAKE_DETERMINE_CXX_ABI_COMPILED:INTERNAL=TRUE
-//Result of TRY_COMPILE
-CMAKE_DETERMINE_C_ABI_COMPILED:INTERNAL=TRUE
-//Path to cache edit program executable.
-CMAKE_EDIT_COMMAND:INTERNAL=/opt/local/bin/ccmake
-//Executable file format
-CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
-CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
-CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
-CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
-CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//Name of generator.
-CMAKE_GENERATOR:INTERNAL=Xcode
-//Start directory with the top level CMakeLists.txt file for this
-// project
-CMAKE_HOME_DIRECTORY:INTERNAL=/Users/sradomski/Documents/TK/Code/uscxml
-//ADVANCED property for variable: CMAKE_INSTALL_NAME_TOOL
-CMAKE_INSTALL_NAME_TOOL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_LINKER
-CMAKE_LINKER-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
-CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
-CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
-CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
-CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
-CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_NM
-CMAKE_NM-ADVANCED:INTERNAL=1
-//number of local generators
-CMAKE_NUMBER_OF_LOCAL_GENERATORS:INTERNAL=4
-//ADVANCED property for variable: CMAKE_OBJCOPY
-CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_OBJDUMP
-CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_RANLIB
-CMAKE_RANLIB-ADVANCED:INTERNAL=1
-//Path to CMake installation.
-CMAKE_ROOT:INTERNAL=/opt/local/share/cmake-2.8
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
-CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
-CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
-CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
-CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
-CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SKIP_RPATH
-CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STRIP
-CMAKE_STRIP-ADVANCED:INTERNAL=1
-//uname command
-CMAKE_UNAME:INTERNAL=/usr/bin/uname
-//ADVANCED property for variable: CMAKE_USE_RELATIVE_PATHS
-CMAKE_USE_RELATIVE_PATHS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
-CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_XCODE_SELECT
-CMAKE_XCODE_SELECT-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: EVENT_INCLUDE_DIR
-EVENT_INCLUDE_DIR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: EVENT_LIBRARY
-EVENT_LIBRARY-ADVANCED:INTERNAL=1
-//Details about finding Arabica
-FIND_PACKAGE_MESSAGE_DETAILS_Arabica:INTERNAL=[/usr/local/lib/libarabica.a][/usr/local/include/arabica][v()]
-//Details about finding EVENT
-FIND_PACKAGE_MESSAGE_DETAILS_EVENT:INTERNAL=[/Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a;/Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a][/Users/sradomski/Documents/TK/Code/libevent/include][v()]
-//Details about finding GLOG
-FIND_PACKAGE_MESSAGE_DETAILS_GLOG:INTERNAL=[/Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a][/Users/sradomski/Documents/TK/Code/glog/src][v()]
-//Details about finding JNI
-FIND_PACKAGE_MESSAGE_DETAILS_JNI:INTERNAL=[-framework JavaVM][-framework JavaVM][/System/Library/Frameworks/JavaVM.framework/Headers][/System/Library/Frameworks/JavaVM.framework/Headers][/System/Library/Frameworks/JavaVM.framework/Headers][v()]
-//Details about finding LibXml2
-FIND_PACKAGE_MESSAGE_DETAILS_LibXml2:INTERNAL=[/opt/local/lib/libxml2.dylib][/opt/local/include/libxml2][v2.8.0()]
-//Details about finding PKG_CONFIG
-FIND_PACKAGE_MESSAGE_DETAILS_PKG_CONFIG:INTERNAL=[/opt/local/bin/pkg-config][v0.27()]
-//Details about finding SWIG
-FIND_PACKAGE_MESSAGE_DETAILS_SWIG:INTERNAL=[/usr/local/bin/swig][/usr/local/share/swig/2.0.5][v2.0.5()]
-//Details about finding V8
-FIND_PACKAGE_MESSAGE_DETAILS_V8:INTERNAL=[/Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a;/Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a][/Users/sradomski/Documents/TK/Code/v8/include][v()]
-//ADVANCED property for variable: GLOG_INCLUDE_DIR
-GLOG_INCLUDE_DIR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: GLOG_LIBRARY
-GLOG_LIBRARY-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: JAVA_AWT_INCLUDE_PATH
-JAVA_AWT_INCLUDE_PATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: JAVA_AWT_LIBRARY
-JAVA_AWT_LIBRARY-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: JAVA_INCLUDE_PATH
-JAVA_INCLUDE_PATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: JAVA_INCLUDE_PATH2
-JAVA_INCLUDE_PATH2-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: JAVA_JVM_LIBRARY
-JAVA_JVM_LIBRARY-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: LIBXML2_INCLUDE_DIR
-LIBXML2_INCLUDE_DIR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: LIBXML2_LIBRARIES
-LIBXML2_LIBRARIES-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: LIBXML2_XMLLINT_EXECUTABLE
-LIBXML2_XMLLINT_EXECUTABLE-ADVANCED:INTERNAL=1
-PC_LIBXML_CFLAGS:INTERNAL=-I/opt/local/include/libxml2
-PC_LIBXML_CFLAGS_I:INTERNAL=
-PC_LIBXML_CFLAGS_OTHER:INTERNAL=
-PC_LIBXML_FOUND:INTERNAL=1
-PC_LIBXML_INCLUDEDIR:INTERNAL=/opt/local/include
-PC_LIBXML_INCLUDE_DIRS:INTERNAL=/opt/local/include/libxml2
-PC_LIBXML_LDFLAGS:INTERNAL=-L/opt/local/lib;-lxml2
-PC_LIBXML_LDFLAGS_OTHER:INTERNAL=
-PC_LIBXML_LIBDIR:INTERNAL=/opt/local/lib
-PC_LIBXML_LIBRARIES:INTERNAL=xml2
-PC_LIBXML_LIBRARY_DIRS:INTERNAL=/opt/local/lib
-PC_LIBXML_LIBS:INTERNAL=
-PC_LIBXML_LIBS_L:INTERNAL=
-PC_LIBXML_LIBS_OTHER:INTERNAL=
-PC_LIBXML_LIBS_PATHS:INTERNAL=
-PC_LIBXML_PREFIX:INTERNAL=/opt/local
-PC_LIBXML_STATIC_CFLAGS:INTERNAL=-I/opt/local/include/libxml2
-PC_LIBXML_STATIC_CFLAGS_I:INTERNAL=
-PC_LIBXML_STATIC_CFLAGS_OTHER:INTERNAL=
-PC_LIBXML_STATIC_INCLUDE_DIRS:INTERNAL=/opt/local/include/libxml2
-PC_LIBXML_STATIC_LDFLAGS:INTERNAL=-L/opt/local/lib;-lxml2;-lpthread;-lz;-liconv;-lm
-PC_LIBXML_STATIC_LDFLAGS_OTHER:INTERNAL=
-PC_LIBXML_STATIC_LIBDIR:INTERNAL=
-PC_LIBXML_STATIC_LIBRARIES:INTERNAL=xml2;pthread;z;iconv;m
-PC_LIBXML_STATIC_LIBRARY_DIRS:INTERNAL=/opt/local/lib
-PC_LIBXML_STATIC_LIBS:INTERNAL=
-PC_LIBXML_STATIC_LIBS_L:INTERNAL=
-PC_LIBXML_STATIC_LIBS_OTHER:INTERNAL=
-PC_LIBXML_STATIC_LIBS_PATHS:INTERNAL=
-PC_LIBXML_VERSION:INTERNAL=2.8.0
-PC_LIBXML_libxml-2.0_INCLUDEDIR:INTERNAL=
-PC_LIBXML_libxml-2.0_LIBDIR:INTERNAL=
-PC_LIBXML_libxml-2.0_PREFIX:INTERNAL=
-PC_LIBXML_libxml-2.0_VERSION:INTERNAL=
-//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
-PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
-//Stored Xcode object GUID
-PROJECT_uscxml_GUID_CMAKE:INTERNAL=7B55544C81554F4AA6AF7B05
-//ADVANCED property for variable: SWIG_DIR
-SWIG_DIR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: SWIG_EXECUTABLE
-SWIG_EXECUTABLE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: SWIG_VERSION
-SWIG_VERSION-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: V8_INCLUDE_DIR
-V8_INCLUDE_DIR-ADVANCED:INTERNAL=1
-//Stored Xcode object GUID
-ZERO_CHECK_GUID_CMAKE:INTERNAL=41000D0259B8426C95C427FA
-__pkg_config_checked_PC_LIBXML:INTERNAL=1
-//Stored Xcode object GUID
-test-apache-commons_GUID_CMAKE:INTERNAL=02DF4582EC5248A6A909BCDB
-//Stored Xcode object GUID
-test-communication_GUID_CMAKE:INTERNAL=7025A5D232F34CA7B0DC4D38
-//Stored Xcode object GUID
-test-ecmascript-v8_GUID_CMAKE:INTERNAL=D64A946FD7F548578C0460A5
-//Stored Xcode object GUID
-test-eventdelay_GUID_CMAKE:INTERNAL=3AB54D3271B943C19C870A16
-//Stored Xcode object GUID
-test-execution_GUID_CMAKE:INTERNAL=EAD0CA8AA7274305AE4562F4
-//Stored Xcode object GUID
-test-predicates_GUID_CMAKE:INTERNAL=FF7BF1CA6E034DDA81018AE8
-//Stored Xcode object GUID
-uscxmlNativeJava_GUID_CMAKE:INTERNAL=A6201BA0A03540D3AFA90459
-//Stored Xcode object GUID
-uscxml_GUID_CMAKE:INTERNAL=7C164D61BDFA4F06B16F1176
-
diff --git a/build/xcode/CMakeFiles/TargetDirectories.txt b/build/xcode/CMakeFiles/TargetDirectories.txt
deleted file mode 100644
index fc63e14..0000000
--- a/build/xcode/CMakeFiles/TargetDirectories.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/CMakeFiles/ALL_BUILD.dir
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/CMakeFiles/ZERO_CHECK.dir
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/CMakeFiles/test-apache-commons.dir
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/CMakeFiles/test-communication.dir
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/CMakeFiles/test-ecmascript-v8.dir
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/CMakeFiles/test-eventdelay.dir
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/CMakeFiles/test-execution.dir
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/CMakeFiles/test-predicates.dir
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/CMakeFiles/uscxml.dir
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/CMakeFiles/uscxmlNativeJava.dir
diff --git a/build/xcode/CMakeScripts/XCODE_DEPEND_HELPER.make b/build/xcode/CMakeScripts/XCODE_DEPEND_HELPER.make
deleted file mode 100644
index cfdb79f..0000000
--- a/build/xcode/CMakeScripts/XCODE_DEPEND_HELPER.make
+++ /dev/null
@@ -1,419 +0,0 @@
-# DO NOT EDIT
-# This makefile makes sure all linkable targets are
-# up-to-date with anything they link to
-default:
- echo "Do not invoke directly"
-
-# For each target create a dummy rule so the target does not have to exist
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Debug/libuscxml.a:
-/opt/local/lib/libxml2.dylib:
-/Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a:
-/usr/local/lib/libarabica.a:
-/Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a:
-/Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a:
-/Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a:
-/Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a:
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/MinSizeRel/libuscxml.a:
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/RelWithDebInfo/libuscxml.a:
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Release/libuscxml.a:
-
-
-# Rules to remove targets that are older than anything to which they
-# link. This forces Xcode to relink the targets from scratch. It
-# does not seem to check these dependencies itself.
-PostBuild.uscxml.Debug:
-PostBuild.test-apache-commons.Debug:
-PostBuild.uscxml.Debug: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-apache-commons
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-apache-commons:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Debug/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-apache-commons
-
-
-PostBuild.test-communication.Debug:
-PostBuild.uscxml.Debug: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-communication
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-communication:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Debug/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-communication
-
-
-PostBuild.test-ecmascript-v8.Debug:
-PostBuild.uscxml.Debug: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-ecmascript-v8
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-ecmascript-v8:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Debug/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-ecmascript-v8
-
-
-PostBuild.test-eventdelay.Debug:
-PostBuild.uscxml.Debug: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-eventdelay
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-eventdelay:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Debug/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-eventdelay
-
-
-PostBuild.test-execution.Debug:
-PostBuild.uscxml.Debug: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-execution
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-execution:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Debug/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-execution
-
-
-PostBuild.test-predicates.Debug:
-PostBuild.uscxml.Debug: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-predicates
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-predicates:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Debug/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Debug/test-predicates
-
-
-PostBuild.uscxmlNativeJava.Debug:
-PostBuild.uscxml.Debug: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/Debug/libuscxmlNativeJava.jnilib
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/Debug/libuscxmlNativeJava.jnilib:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Debug/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/Debug/libuscxmlNativeJava.jnilib
-
-
-PostBuild.uscxml.Release:
-PostBuild.test-apache-commons.Release:
-PostBuild.uscxml.Release: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-apache-commons
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-apache-commons:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Release/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-apache-commons
-
-
-PostBuild.test-communication.Release:
-PostBuild.uscxml.Release: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-communication
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-communication:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Release/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-communication
-
-
-PostBuild.test-ecmascript-v8.Release:
-PostBuild.uscxml.Release: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-ecmascript-v8
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-ecmascript-v8:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Release/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-ecmascript-v8
-
-
-PostBuild.test-eventdelay.Release:
-PostBuild.uscxml.Release: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-eventdelay
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-eventdelay:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Release/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-eventdelay
-
-
-PostBuild.test-execution.Release:
-PostBuild.uscxml.Release: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-execution
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-execution:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Release/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-execution
-
-
-PostBuild.test-predicates.Release:
-PostBuild.uscxml.Release: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-predicates
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-predicates:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Release/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/Release/test-predicates
-
-
-PostBuild.uscxmlNativeJava.Release:
-PostBuild.uscxml.Release: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/Release/libuscxmlNativeJava.jnilib
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/Release/libuscxmlNativeJava.jnilib:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/Release/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/Release/libuscxmlNativeJava.jnilib
-
-
-PostBuild.uscxml.MinSizeRel:
-PostBuild.test-apache-commons.MinSizeRel:
-PostBuild.uscxml.MinSizeRel: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-apache-commons
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-apache-commons:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/MinSizeRel/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-apache-commons
-
-
-PostBuild.test-communication.MinSizeRel:
-PostBuild.uscxml.MinSizeRel: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-communication
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-communication:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/MinSizeRel/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-communication
-
-
-PostBuild.test-ecmascript-v8.MinSizeRel:
-PostBuild.uscxml.MinSizeRel: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-ecmascript-v8
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-ecmascript-v8:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/MinSizeRel/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-ecmascript-v8
-
-
-PostBuild.test-eventdelay.MinSizeRel:
-PostBuild.uscxml.MinSizeRel: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-eventdelay
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-eventdelay:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/MinSizeRel/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-eventdelay
-
-
-PostBuild.test-execution.MinSizeRel:
-PostBuild.uscxml.MinSizeRel: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-execution
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-execution:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/MinSizeRel/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-execution
-
-
-PostBuild.test-predicates.MinSizeRel:
-PostBuild.uscxml.MinSizeRel: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-predicates
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-predicates:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/MinSizeRel/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/MinSizeRel/test-predicates
-
-
-PostBuild.uscxmlNativeJava.MinSizeRel:
-PostBuild.uscxml.MinSizeRel: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/MinSizeRel/libuscxmlNativeJava.jnilib
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/MinSizeRel/libuscxmlNativeJava.jnilib:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/MinSizeRel/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/MinSizeRel/libuscxmlNativeJava.jnilib
-
-
-PostBuild.uscxml.RelWithDebInfo:
-PostBuild.test-apache-commons.RelWithDebInfo:
-PostBuild.uscxml.RelWithDebInfo: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-apache-commons
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-apache-commons:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/RelWithDebInfo/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-apache-commons
-
-
-PostBuild.test-communication.RelWithDebInfo:
-PostBuild.uscxml.RelWithDebInfo: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-communication
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-communication:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/RelWithDebInfo/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-communication
-
-
-PostBuild.test-ecmascript-v8.RelWithDebInfo:
-PostBuild.uscxml.RelWithDebInfo: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-ecmascript-v8
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-ecmascript-v8:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/RelWithDebInfo/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-ecmascript-v8
-
-
-PostBuild.test-eventdelay.RelWithDebInfo:
-PostBuild.uscxml.RelWithDebInfo: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-eventdelay
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-eventdelay:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/RelWithDebInfo/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-eventdelay
-
-
-PostBuild.test-execution.RelWithDebInfo:
-PostBuild.uscxml.RelWithDebInfo: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-execution
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-execution:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/RelWithDebInfo/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-execution
-
-
-PostBuild.test-predicates.RelWithDebInfo:
-PostBuild.uscxml.RelWithDebInfo: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-predicates
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-predicates:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/RelWithDebInfo/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/test/RelWithDebInfo/test-predicates
-
-
-PostBuild.uscxmlNativeJava.RelWithDebInfo:
-PostBuild.uscxml.RelWithDebInfo: /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/RelWithDebInfo/libuscxmlNativeJava.jnilib
-/Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/RelWithDebInfo/libuscxmlNativeJava.jnilib:\
- /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/RelWithDebInfo/libuscxml.a\
- /opt/local/lib/libxml2.dylib\
- /Users/sradomski/Documents/TK/Code/glog/.libs/libglog.a\
- /usr/local/lib/libarabica.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent.a\
- /Users/sradomski/Documents/TK/Code/libevent/.libs/libevent_pthreads.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_base.a\
- /Users/sradomski/Documents/TK/Code/v8/out/native/libv8_snapshot.a
- /bin/rm -f /Users/sradomski/Documents/TK/Code/uscxml/build/xcode/src/bindings/swig/java/RelWithDebInfo/libuscxmlNativeJava.jnilib
-
-
diff --git a/build/xcode/Debug/libuscxml.a b/build/xcode/Debug/libuscxml.a
deleted file mode 100644
index 4cdc8d0..0000000
--- a/build/xcode/Debug/libuscxml.a
+++ /dev/null
Binary files differ
diff --git a/src/uscxml/Factory.cpp b/src/uscxml/Factory.cpp
index ee2a3bd..b2346c2 100644
--- a/src/uscxml/Factory.cpp
+++ b/src/uscxml/Factory.cpp
@@ -10,7 +10,8 @@ namespace uscxml {
_dataModels["ecmascript"] = new V8DataModel();
// _ioProcessors["basichttp"] = new PionIOProcessor();
_ioProcessors["basichttp"] = new EventIOProcessor();
- _ioProcessors["http://www.w3.org/TR/scxml/#SCXMLEventProcessor"] = new EventIOProcessor();
+ // use basichttp for transporting to/from scxml sessions as well
+ _ioProcessors["http://www.w3.org/TR/scxml/#SCXMLEventProcessor"] = _ioProcessors["basichttp"];
_invoker["scxml"] = new USCXMLInvoker();
_invoker["http://www.w3.org/TR/scxml/"] = _invoker["scxml"];
}
diff --git a/src/uscxml/Interpreter.cpp b/src/uscxml/Interpreter.cpp
index 267d53f..b1c504c 100644
--- a/src/uscxml/Interpreter.cpp
+++ b/src/uscxml/Interpreter.cpp
@@ -278,6 +278,12 @@ void Interpreter::normalize(const Arabica::DOM::Node<std::string>& node) {
if (!invokeElem.hasAttribute("id") && !invokeElem.hasAttribute("idlocation")) {
invokeElem.setAttribute("id", getUUID());
}
+// // make sure every finalize element contained has the invoke id as an attribute
+// Arabica::XPath::NodeSet<std::string> finalizes = _xpath.evaluate("" + _nsPrefix + "finalize", invokeElem).asNodeSet();
+// for (int j = 0; j < finalizes.size(); j++) {
+// Arabica::DOM::Element<std::string> finalizeElem = Arabica::DOM::Element<std::string>(finalizes[j]);
+// finalizeElem.setAttribute("invokeid", invokeElem.getAttribute("id"));
+// }
}
Arabica::XPath::NodeSet<std::string> finals = _xpath.evaluate("//" + _nsPrefix + "final", _doc).asNodeSet();
@@ -311,7 +317,7 @@ void Interpreter::mainEventLoop() {
// Here we handle eventless transitions and transitions
// triggered by internal events until machine is stable
while(_running && !_stable) {
-#if 0
+#if 1
std::cout << "Configuration: ";
for (int i = 0; i < _configuration.size(); i++) {
std::cout << ((Arabica::DOM::Element<std::string>)_configuration[i]).getAttribute("id") << ", ";
@@ -325,6 +331,9 @@ void Interpreter::mainEventLoop() {
} else {
Event internalEvent = _internalQueue.front();
_internalQueue.pop_front();
+#if 1
+ std::cout << "Received internal event " << internalEvent.name << std::endl;
+#endif
_dataModel->setEvent(internalEvent);
enabledTransitions = selectTransitions(internalEvent.name);
}
@@ -357,16 +366,26 @@ void Interpreter::mainEventLoop() {
break;
if (_dataModel)
- _dataModel->setEvent(externalEvent);
+ try {
+ _dataModel->setEvent(externalEvent);
+ } catch (Event e) {
+ LOG(ERROR) << "Syntax error while setting external event:" << std::endl << e << std::endl;
+ }
for (unsigned int i = 0; i < _configuration.size(); i++) {
NodeSet<std::string> invokes = _xpath.evaluate("" + _nsPrefix + "invoke", _configuration[i]).asNodeSet();
for (unsigned int j = 0; j < invokes.size(); j++) {
- std::string invokeId = ((Arabica::DOM::Element<std::string>)invokes[i]).getAttribute("id");
- std::string autoForward = ((Arabica::DOM::Element<std::string>)invokes[i]).getAttribute("autoforward");
+ Arabica::DOM::Element<std::string> invokeElem = (Arabica::DOM::Element<std::string>)invokes[j];
+ std::string invokeId = invokeElem.getAttribute("id");
+ std::string autoForward = invokeElem.getAttribute("autoforward");
if (boost::iequals(invokeId, externalEvent.invokeid)) {
- // @TODO
- // boost::shared_ptr<Invoke> invoke = boost::static_pointer_cast<Invoke>(interpreter::Factory::create("invoke", invokes[j]));
- // invoke->applyFinalize(this);
+
+ Arabica::XPath::NodeSet<std::string> finalizes = _xpath.evaluate("" + _nsPrefix + "finalize", invokeElem).asNodeSet();
+ for (int k = 0; k < finalizes.size(); k++) {
+ Arabica::DOM::Element<std::string> finalizeElem = Arabica::DOM::Element<std::string>(finalizes[k]);
+ executeContent(finalizeElem);
+ }
+
+
}
if (autoForward.length() > 0) {
// @TODO
@@ -381,6 +400,61 @@ void Interpreter::mainEventLoop() {
exitInterpreter();
}
+void Interpreter::internalDoneSend(const Arabica::DOM::Node<std::string>& state) {
+ if (!isState(state))
+ return;
+
+ Arabica::DOM::Element<std::string> stateElem = (Arabica::DOM::Element<std::string>)state;
+ Arabica::DOM::Element<std::string> parent = (Arabica::DOM::Element<std::string>)stateElem.getParentNode();
+ Event event;
+
+ Arabica::XPath::NodeSet<std::string> doneDatas = _xpath.evaluate("" + _nsPrefix + "donedata", stateElem).asNodeSet();
+ if (doneDatas.size() > 0) {
+ // only process first donedata element
+ Arabica::DOM::Node<std::string> doneData = doneDatas[0];
+ NodeList<std::string> doneChilds = doneData.getChildNodes();
+ for (int i = 0; i < doneChilds.getLength(); i++) {
+ if (!doneChilds.item(i).getNodeType() == Node_base::ELEMENT_NODE)
+ continue;
+ if (boost::iequals(TAGNAME(doneChilds.item(i)), "param")) {
+ if (!HAS_ATTR(doneChilds.item(i), "name")) {
+ LOG(ERROR) << "param element is missing name attribut";
+ continue;
+ }
+ std::string paramValue;
+ if (HAS_ATTR(doneChilds.item(i), "expr") && _dataModel) {
+ std::string location = _dataModel->evalAsString(ATTR(doneChilds.item(i), "expr"));
+ paramValue = _dataModel->evalAsString(location);
+ } else if(HAS_ATTR(doneChilds.item(i), "location") && _dataModel) {
+ paramValue = _dataModel->evalAsString(ATTR(doneChilds.item(i), "location"));
+ } else {
+ LOG(ERROR) << "param element is missing expr or location or no datamodel is specified";
+ continue;
+ }
+ event.compound[ATTR(doneChilds.item(i), "name")] = paramValue;
+ }
+ if (boost::iequals(TAGNAME(doneChilds.item(i)), "content")) {
+ if (HAS_ATTR(doneChilds.item(i), "expr")) {
+ if (_dataModel) {
+ event.compound["content"] = Data(_dataModel->evalAsString(ATTR(doneChilds.item(i), "expr")), Data::VERBATIM);
+ } else {
+ LOG(ERROR) << "content element has expr attribute but no datamodel is specified.";
+ }
+ } else if (doneChilds.item(i).hasChildNodes()) {
+ event.compound["content"] = Data(doneChilds.item(i).getFirstChild().getNodeValue(), Data::VERBATIM);
+ } else {
+ LOG(ERROR) << "content element does not specify any content.";
+ }
+
+ }
+ }
+ }
+
+ event.name = "done.state." + parent.getAttribute("id");
+ _internalQueue.push_back(event);
+
+}
+
void Interpreter::send(const Arabica::DOM::Node<std::string>& element) {
SendRequest sendReq;
try {
@@ -627,9 +701,8 @@ void Interpreter::invoke(const Arabica::DOM::Node<std::string>& element) {
} catch (Event e) {
LOG(ERROR) << "Syntax error in invoke element:" << std::endl << e << std::endl;
}
-
}
-
+
void Interpreter::cancelInvoke(const Arabica::DOM::Node<std::string>& element) {
std::string invokeId;
if (HAS_ATTR(element, "idlocation") && _dataModel) {
@@ -780,13 +853,13 @@ bool Interpreter::isPreemptingTransition(const Arabica::DOM::Node<std::string>&
}
void Interpreter::microstep(const Arabica::XPath::NodeSet<std::string>& enabledTransitions) {
-#if 0
+#if 1
std::cout << "Transitions: ";
for (int i = 0; i < enabledTransitions.size(); i++) {
std::cout << ((Arabica::DOM::Element<std::string>)getSourceState(enabledTransitions[i])).getAttribute("id") << " -> " << std::endl;
NodeSet<std::string> targetSet = getTargetStates(enabledTransitions[i]);
for (int j = 0; j < targetSet.size(); j++) {
- std::cout << " " << ((Arabica::DOM::Element<std::string>)targetSet[i]).getAttribute("id") << std::endl;
+ std::cout << " " << ((Arabica::DOM::Element<std::string>)targetSet[j]).getAttribute("id") << std::endl;
}
}
std::cout << std::endl;
@@ -1186,16 +1259,9 @@ void Interpreter::enterStates(const Arabica::XPath::NodeSet<std::string>& enable
}
if (isFinal(stateElem)) {
+ internalDoneSend(stateElem);
Arabica::DOM::Element<std::string> parent = (Arabica::DOM::Element<std::string>)stateElem.getParentNode();
- Event event;
- event.name = "done.state." + parent.getAttribute("id");
- Arabica::XPath::NodeSet<std::string> doneData = _xpath.evaluate("" + _nsPrefix + "donedata", stateElem).asNodeSet();
- if (doneData.size() > 0) {
- event.dom = doneData[0];
- }
- _internalQueue.push_back(event);
-
if (isParallel(parent.getParentNode())) {
Arabica::DOM::Element<std::string> grandParent = (Arabica::DOM::Element<std::string>)parent.getParentNode();
@@ -1208,9 +1274,7 @@ void Interpreter::enterStates(const Arabica::XPath::NodeSet<std::string>& enable
}
}
if (inFinalState) {
- Event event;
- event.name = "done.state." + grandParent.getAttribute("id");
- _internalQueue.push_back(event);
+ internalDoneSend(parent);
}
}
}
@@ -1231,6 +1295,7 @@ bool Interpreter::parentIsScxmlState(Arabica::DOM::Node<std::string> state) {
}
bool Interpreter::isInFinalState(const Arabica::DOM::Node<std::string>& state) {
+// std::cout << ATTR(state, "id") << std::endl;
if (isCompound(state)) {
Arabica::XPath::NodeSet<std::string> childs = getChildStates(state);
for (int i = 0; i < childs.size(); i++) {
@@ -1283,10 +1348,15 @@ void Interpreter::addStatesToEnter(const Arabica::DOM::Node<std::string>& state,
statesToEnter.push_back(state);
if (isCompound(state)) {
statesForDefaultEntry.push_back(state);
+#if 0
NodeSet<std::string> tStates = getTargetStates(getInitialState(state));
for (int i = 0; i < tStates.size(); i++) {
addStatesToEnter(tStates[i], statesToEnter, statesForDefaultEntry);
}
+#endif
+ addStatesToEnter(getInitialState(state), statesToEnter, statesForDefaultEntry);
+// NodeSet<std::string> tStates = getTargetStates(getInitialState(state));
+
} else if(isParallel(state)) {
NodeSet<std::string> childStates = getChildStates(state);
for (int i = 0; i < childStates.size(); i++) {
@@ -1300,9 +1370,11 @@ Arabica::XPath::NodeSet<std::string> Interpreter::getChildStates(const Arabica::
Arabica::XPath::NodeSet<std::string> childs;
Arabica::XPath::NodeSet<std::string> stateChilds = _xpath.evaluate("" + _nsPrefix + "state", state).asNodeSet();
Arabica::XPath::NodeSet<std::string> parallelChilds = _xpath.evaluate("" + _nsPrefix + "parallel", state).asNodeSet();
+ Arabica::XPath::NodeSet<std::string> finalChilds = _xpath.evaluate("" + _nsPrefix + "final", state).asNodeSet();
childs.insert(childs.begin(), stateChilds.begin(), stateChilds.end());
childs.insert(childs.begin(), parallelChilds.begin(), parallelChilds.end());
+ childs.insert(childs.begin(), finalChilds.begin(), finalChilds.end());
return childs;
}
@@ -1406,7 +1478,9 @@ NodeSet<std::string> Interpreter::getTargetStates(const Arabica::DOM::Node<std::
std::vector<std::string> targetIds = Interpreter::tokenizeIdRefs(ATTR(transition, "target"));
for (int i = 0; i < targetIds.size(); i++) {
- targetStates.push_back(getState(targetIds[i]));
+ Arabica::DOM::Node<std::string> state = getState(targetIds[i]);
+ assert(HAS_ATTR(state, "id"));
+ targetStates.push_back(state);
}
return targetStates;
}
@@ -1567,7 +1641,7 @@ void Interpreter::setupIOProcessors() {
try {
// _dataModel->setData("_ioprocessors", ioProcIter->first, _ioProcessors[ioProcIter->first]->getDataModelVariables());
_dataModel->assign("_ioprocessors['" + ioProcIter->first + "']", _ioProcessors[ioProcIter->first]->getDataModelVariables());
- std::cout << _dataModel->evalAsString("_ioprocessors['basichttp'].location") << std::endl;
+// std::cout << _dataModel->evalAsString("_ioprocessors['basichttp'].location") << std::endl;
} catch (Event e) {
LOG(ERROR) << "Syntax error when setting _ioprocessors:" << std::endl << e << std::endl;
}
diff --git a/src/uscxml/Interpreter.h b/src/uscxml/Interpreter.h
index a60f9f6..9447498 100644
--- a/src/uscxml/Interpreter.h
+++ b/src/uscxml/Interpreter.h
@@ -132,6 +132,7 @@ namespace uscxml {
void invoke(const Arabica::DOM::Node<std::string>& element);
void cancelInvoke(const Arabica::DOM::Node<std::string>& element);
void returnDoneEvent(const Arabica::DOM::Node<std::string>& state);
+ void internalDoneSend(const Arabica::DOM::Node<std::string>& state);
static void delayedSend(void* userdata, std::string eventName);
static bool nameMatch(const std::string& transitionEvent, const std::string& event);
diff --git a/src/uscxml/Message.cpp b/src/uscxml/Message.cpp
index f7e7a5a..9b713ca 100644
--- a/src/uscxml/Message.cpp
+++ b/src/uscxml/Message.cpp
@@ -101,6 +101,7 @@ Arabica::DOM::Document<std::string> Event::toDocument() {
Arabica::DOM::Document<std::string> document = Data::toDocument();
Arabica::DOM::Element<std::string> scxmlMsg = document.getDocumentElement();
+
scxmlMsg.setAttribute("source", origin);
scxmlMsg.setAttribute("name", name);
@@ -112,6 +113,40 @@ Arabica::DOM::Document<std::string> SendRequest::toDocument() {
Arabica::DOM::Document<std::string> document = Event::toDocument();
Arabica::DOM::Element<std::string> scxmlMsg = document.getDocumentElement();
+ // add params and namelist
+ if (params.size() > 0 || namelist.size() > 0) {
+ Arabica::DOM::NodeList<std::string> payload = scxmlMsg.getElementsByTagName("scxml:payload");
+ if (payload.getLength() == 0) {
+ Arabica::DOM::Element<std::string> payloadElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "scxml:payload");
+ scxmlMsg.appendChild(payloadElem);
+ }
+ Arabica::DOM::Node<std::string> payloadElem = scxmlMsg.getElementsByTagName("scxml:payload").item(0);
+
+ // add parameters
+ std::map<std::string, std::string>::iterator paramIter = params.begin();
+ while(paramIter != params.end()) {
+ Arabica::DOM::Element<std::string> propertyElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "scxml:property");
+ propertyElem.setAttribute("name", paramIter->first);
+ Arabica::DOM::Text<std::string> textElem = document.createTextNode(paramIter->second);
+ propertyElem.appendChild(textElem);
+ payloadElem.appendChild(propertyElem);
+ paramIter++;
+ }
+
+ // add namelist elements
+ std::map<std::string, std::string>::iterator namelistIter = namelist.begin();
+ while(namelistIter != namelist.end()) {
+ Arabica::DOM::Element<std::string> propertyElem = document.createElementNS("http://www.w3.org/2005/07/scxml", "scxml:property");
+ propertyElem.setAttribute("name", namelistIter->first);
+ Arabica::DOM::Text<std::string> textElem = document.createTextNode(namelistIter->second);
+ propertyElem.appendChild(textElem);
+ payloadElem.appendChild(propertyElem);
+ namelistIter++;
+ }
+
+ }
+
+
scxmlMsg.setAttribute("sendid", sendid);
return document;
@@ -146,6 +181,31 @@ Event Event::fromXML(const std::string& xmlString) {
event.name = ATTR(scxmlMsg, "name");
if (HAS_ATTR(scxmlMsg, "sendid"))
event.sendid = ATTR(scxmlMsg, "sendid");
+
+ Arabica::DOM::NodeList<std::string> payloads = scxmlMsg.getElementsByTagName("scxml:payload");
+ if (payloads.getLength() > 0) {
+ Arabica::DOM::Node<std::string> payload = payloads.item(0);
+ if (payload.getNodeType() == Arabica::DOM::Node_base::ELEMENT_NODE) {
+ Arabica::DOM::Element<std::string> payloadElem = (Arabica::DOM::Element<std::string>)payload;
+ Arabica::DOM::NodeList<std::string> properties = payloadElem.getElementsByTagName("scxml:property");
+ if (properties.getLength() > 0) {
+ for (int i = 0; i < properties.getLength(); i++) {
+ if (HAS_ATTR(properties.item(i), "name")) {
+ std::string key = ATTR(properties.item(i), "name");
+ std::string value;
+ Arabica::DOM::NodeList<std::string> childs = properties.item(i).getChildNodes();
+ for (int j = 0; j < childs.getLength(); j++) {
+ if (childs.item(j).getNodeType() == Arabica::DOM::Node_base::TEXT_NODE) {
+ value = childs.item(j).getNodeValue();
+ break;
+ }
+ }
+ event.compound[key] = Data(value, VERBATIM);
+ }
+ }
+ }
+ }
+ }
}
return event;
}
@@ -160,7 +220,7 @@ InvokeRequest InvokeRequest::fromXML(const std::string& xmlString) {
#ifndef SWIGJAVA
std::ostream& operator<< (std::ostream& os, const Event& event) {
- os << (event.type == Event::EXTERNAL ? "External" : "Internal") << " Event " << (event.dom ? "with DOM attached" : "") << std::endl;
+ os << (event.type == Event::EXTERNAL ? "External" : "Internal") << " Event " /* << (event.dom ? "with DOM attached" : "")*/ << std::endl;
if (event.name.size() > 0)
os << " name: " << event.name << std::endl;
diff --git a/src/uscxml/Message.h b/src/uscxml/Message.h
index cd10c05..34b85e1 100644
--- a/src/uscxml/Message.h
+++ b/src/uscxml/Message.h
@@ -57,12 +57,13 @@ public:
};
Event() : type(INTERNAL) {}
-
+ Event(const Arabica::DOM::Node<std::string>& xmlString) : type(INTERNAL) {};
+
std::string name;
Type type;
std::string origin;
std::string origintype;
- Arabica::DOM::Node<std::string> dom;
+// Arabica::DOM::Node<std::string> dom;
std::string sendid;
std::string invokeid;
@@ -85,7 +86,6 @@ public:
std::string src;
std::string namelist;
bool autoForward;
- Arabica::DOM::Node<std::string> finalize;
std::map<std::string, std::string> params;
std::string content;
@@ -113,6 +113,7 @@ public:
std::string toXMLString() {
std::stringstream ss;
ss << toDocument();
+// std::cout << ss.str() << std::endl;
return ss.str();
}
diff --git a/src/uscxml/concurrency/eventqueue/libevent/DelayedEventQueue.cpp b/src/uscxml/concurrency/eventqueue/libevent/DelayedEventQueue.cpp
index 647380e..c5e7c3b 100644
--- a/src/uscxml/concurrency/eventqueue/libevent/DelayedEventQueue.cpp
+++ b/src/uscxml/concurrency/eventqueue/libevent/DelayedEventQueue.cpp
@@ -11,7 +11,7 @@ namespace uscxml {
}
DelayedEventQueue::~DelayedEventQueue() {
- std::cout << "Deleting DelayedEventQueue" << std::endl;
+// std::cout << "Deleting DelayedEventQueue" << std::endl;
stop();
if (_thread)
_thread->join();
diff --git a/src/uscxml/invoker/scxml/USCXMLInvoker.cpp b/src/uscxml/invoker/scxml/USCXMLInvoker.cpp
index 2f5a0b6..1403d99 100644
--- a/src/uscxml/invoker/scxml/USCXMLInvoker.cpp
+++ b/src/uscxml/invoker/scxml/USCXMLInvoker.cpp
@@ -3,8 +3,7 @@
namespace uscxml {
-USCXMLInvoker::USCXMLInvoker() {
-
+USCXMLInvoker::USCXMLInvoker() {
}
@@ -24,18 +23,20 @@ Data USCXMLInvoker::getDataModelVariables() {
}
void USCXMLInvoker::send(SendRequest& req) {
-
+ assert(false);
}
void USCXMLInvoker::cancel(const std::string sendId) {
-
+ assert(false);
}
void USCXMLInvoker::sendToParent(SendRequest& req) {
+ req.invokeid = _invokeId;
_parentInterpreter->receive(req);
}
void USCXMLInvoker::invoke(InvokeRequest& req) {
+ _invokeId = req.invokeid;
_invokedInterpreter = Interpreter::fromURI(req.src);
DataModel* dataModel = _invokedInterpreter->getDataModel();
if (dataModel != NULL) {
diff --git a/src/uscxml/invoker/scxml/USCXMLInvoker.h b/src/uscxml/invoker/scxml/USCXMLInvoker.h
index 2fc9d25..76657d8 100644
--- a/src/uscxml/invoker/scxml/USCXMLInvoker.h
+++ b/src/uscxml/invoker/scxml/USCXMLInvoker.h
@@ -20,6 +20,7 @@ public:
virtual void sendToParent(SendRequest& req);
protected:
+ std::string _invokeId;
Interpreter* _invokedInterpreter;
Interpreter* _parentInterpreter;
};
diff --git a/src/uscxml/ioprocessor/basichttp/libevent/EventIOProcessor.cpp b/src/uscxml/ioprocessor/basichttp/libevent/EventIOProcessor.cpp
index 4daf179..d0adcb3 100644
--- a/src/uscxml/ioprocessor/basichttp/libevent/EventIOProcessor.cpp
+++ b/src/uscxml/ioprocessor/basichttp/libevent/EventIOProcessor.cpp
@@ -159,7 +159,8 @@ void EventIOProcessor::httpRecvReq(struct evhttp_request *req, void *arg) {
Event reqEvent;
reqEvent.type = Event::EXTERNAL;
-
+ bool scxmlStructFound = false;
+
// map headers to event structure
headers = evhttp_request_get_input_headers(req);
for (header = headers->tqh_first; header;
@@ -168,6 +169,7 @@ void EventIOProcessor::httpRecvReq(struct evhttp_request *req, void *arg) {
// std::cout << "Value: " << evhttp_decode_uri(header->value) << std::endl;
if (boost::iequals("_scxmleventstruct", header->key)) {
reqEvent = Event::fromXML(evhttp_decode_uri(header->value));
+ scxmlStructFound = true;
break;
} else if (boost::iequals("_scxmleventname", header->key)) {
reqEvent.name = evhttp_decode_uri(header->value);
@@ -176,18 +178,20 @@ void EventIOProcessor::httpRecvReq(struct evhttp_request *req, void *arg) {
}
}
- // get content into event
- std::string content;
- buf = evhttp_request_get_input_buffer(req);
- while (evbuffer_get_length(buf)) {
- int n;
- char cbuf[128];
- n = evbuffer_remove(buf, cbuf, sizeof(buf)-1);
- if (n > 0) {
- content.append(cbuf, n);
+ if (!scxmlStructFound) {
+ // get content into event
+ std::string content;
+ buf = evhttp_request_get_input_buffer(req);
+ while (evbuffer_get_length(buf)) {
+ int n;
+ char cbuf[128];
+ n = evbuffer_remove(buf, cbuf, sizeof(buf)-1);
+ if (n > 0) {
+ content.append(cbuf, n);
+ }
}
- }
- reqEvent.compound["content"] = Data(content, Data::VERBATIM);
+ reqEvent.compound["content"] = Data(content, Data::VERBATIM);
+ }
EventIOProcessor* THIS = (EventIOProcessor*)arg;
THIS->_interpreter->receive(reqEvent);
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 297428c..bea3b53 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -27,3 +27,8 @@ add_executable(test-eventdelay src/test-eventdelay.cpp)
target_link_libraries(test-eventdelay uscxml)
add_test(test-eventdelay test-eventdelay)
set_target_properties(test-eventdelay PROPERTIES FOLDER "Tests")
+
+add_executable(test-completion src/test-completion.cpp)
+target_link_libraries(test-completion uscxml)
+add_test(test-completion ${CMAKE_SOURCE_DIR}/test/src/test-donedata.scxml)
+set_target_properties(test-completion PROPERTIES FOLDER "Tests")
diff --git a/test/src/test-communication.scxml b/test/src/test-communication.scxml
index bd3c00d..c1c1f65 100644
--- a/test/src/test-communication.scxml
+++ b/test/src/test-communication.scxml
@@ -1,5 +1,8 @@
<scxml datamodel="ecmascript" initial="start" binding="late" name="foo">
<state id="start">
+
+ <!-- Setup datamodel, print environment and send ourself an event to transition to next state -->
+
<datamodel>
<data id="invokeconfig">
<invoker id="scxml" name="http://www.w3.org/TR/scxml/" location="_runtime" />
@@ -10,7 +13,7 @@
<onentry>
<log expr="'basichttp listening as ' + _ioprocessors['basichttp'].location" />
<log expr="'Entered step1'" />
- <log expr="'Sending ourself an event'" />
+ <log expr="'Sending ourself an event with data via basichttp'" />
<send targetexpr="_ioprocessors['basichttp'].location" namelist="foo" type="basichttp" event="transitionToNext">
<param name="bar" expr="'b' + 'ar'" />
<content>
@@ -20,7 +23,7 @@ This is some content you got there dude!
</content>
</send>
</onentry>
- <transition event="transitionToNext" target="step1" />
+ <transition event="transitionToNext" target="step1" cond="_event.data.bar == 'this is the bar data'" />
</state>
<state id="step1">
<onentry>
@@ -35,7 +38,11 @@ This is some content you got there dude!
<log expr="'Entered step2'" />
<log expr="'Invoking scxml interpreter'" />
</onentry>
- <invoke type="http://www.w3.org/TR/scxml/" src="test-invoked.scxml" />
+ <invoke type="http://www.w3.org/TR/scxml/" src="test-invoked.scxml">
+ <finalize>
+ <log expr="'Calling finalize on returned event'" />
+ </finalize>
+ </invoke>
<transition event="transitionToNext" target="step2" />
</state>
<final id="final">
diff --git a/test/src/test-completion.cpp b/test/src/test-completion.cpp
new file mode 100644
index 0000000..33056f3
--- /dev/null
+++ b/test/src/test-completion.cpp
@@ -0,0 +1,16 @@
+#include "uscxml/Interpreter.h"
+#include <DOM/io/Stream.hpp>
+
+int main(int argc, char** argv) {
+ if (argc != 2) {
+ std::cerr << "Expected path to scxml document" << std::endl;
+ exit(EXIT_FAILURE);
+ }
+
+ using namespace uscxml;
+
+ Interpreter* interpreter = Interpreter::fromURI(argv[1]);
+ interpreter->interpret();
+
+ return EXIT_SUCCESS;
+} \ No newline at end of file
diff --git a/test/src/test-donedata.scxml b/test/src/test-donedata.scxml
new file mode 100644
index 0000000..c48b6de
--- /dev/null
+++ b/test/src/test-donedata.scxml
@@ -0,0 +1,37 @@
+<scxml datamodel="ecmascript" initial="start" binding="late" name="test-donedata">
+ <parallel id="start">
+ <onentry>
+ <raise event="e1" />
+ <raise event="e2" />
+ <raise event="e4" />
+ <raise event="e1" />
+ </onentry>
+ <transition event="done.state.start" target="final"/>
+
+ <state id="S1" initial="S11">
+ <state id="S11">
+ <transition event="e4" target="S12"/>
+ </state>
+ <state id="S12">
+ <transition event="e1" target="S1Final"/>
+ </state>
+ <final id="S1Final"/>
+ </state>
+
+ <state id="S2" initial="S21">
+ <state id="S21">
+ <transition event="e1" target="S22"/>
+ </state>
+ <state id="S22">
+ <transition event="e2" target="S2Final" />
+ </state>
+ <final id="S2Final"/>
+ </state>
+ </parallel>
+
+ <state id="final" final="true">
+ <onentry>
+ <log expr="'Finished!'"/>
+ </onentry>
+ </state>
+</scxml> \ No newline at end of file