updated examples
authorKevron Rees <kevron.m.rees@intel.com>
Mon, 6 Jan 2014 22:31:49 +0000 (14:31 -0800)
committerKevron Rees <kevron.m.rees@intel.com>
Mon, 6 Jan 2014 22:32:10 +0000 (14:32 -0800)
21 files changed:
build/plugins/websocketsource/CMakeFiles/CMakeDirectoryInformation.cmake [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/progress.marks [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/CXX.includecache [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/DependInfo.cmake [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/build.make [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/cmake_clean.cmake [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/depend.internal [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/depend.make [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/flags.make [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/link.txt [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/progress.make [new file with mode: 0644]
build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o [new file with mode: 0644]
build/plugins/websocketsource/Makefile [new file with mode: 0644]
build/plugins/websocketsource/cmake_install.cmake [new file with mode: 0644]
build/plugins/websocketsource/websocketsourceplugin.so [new file with mode: 0755]
examples/configwebsocketsink
examples/configwebsocketsource
examples/websocketsink2 [new file with mode: 0644]
examples/websocketsource2 [new file with mode: 0644]
plugins/CMakeLists.txt
plugins/websocketsourceplugin/websocketsource.cpp.orig [new file with mode: 0644]

diff --git a/build/plugins/websocketsource/CMakeFiles/CMakeDirectoryInformation.cmake b/build/plugins/websocketsource/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644 (file)
index 0000000..7243053
--- /dev/null
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.8
+
+# Relative path conversion top directories.
+SET(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/tripzero/src/automotive-message-broker")
+SET(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/tripzero/src/automotive-message-broker/build")
+
+# Force unix paths in dependencies.
+SET(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+SET(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+SET(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+SET(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+SET(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/build/plugins/websocketsource/CMakeFiles/progress.marks b/build/plugins/websocketsource/CMakeFiles/progress.marks
new file mode 100644 (file)
index 0000000..f599e28
--- /dev/null
@@ -0,0 +1 @@
+10
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/CXX.includecache b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/CXX.includecache
new file mode 100644 (file)
index 0000000..7913a0b
--- /dev/null
@@ -0,0 +1,732 @@
+#IncludeRegexLine: ^[  ]*#[    ]*(include|import)[     ]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+../lib/abstractpropertytype.h
+string
+-
+sstream
+-
+stdexcept
+-
+vector
+-
+iostream
+-
+boost/any.hpp
+-
+boost/lexical_cast.hpp
+-
+boost/utility.hpp
+-
+type_traits
+-
+glib.h
+-
+list
+-
+timestamp.h
+../lib/timestamp.h
+debugout.h
+-
+boost/algorithm/string.hpp
+-
+
+../lib/abstractroutingengine.h
+sys/types.h
+-
+stdlib.h
+-
+boost/any.hpp
+-
+functional
+-
+string
+-
+time.h
+-
+vehicleproperty.h
+../lib/vehicleproperty.h
+abstractpropertytype.h
+../lib/abstractpropertytype.h
+propertyinfo.hpp
+../lib/propertyinfo.hpp
+
+../lib/abstractsink.h
+string
+-
+list
+-
+map
+-
+functional
+-
+boost/any.hpp
+-
+vehicleproperty.h
+../lib/vehicleproperty.h
+abstractpropertytype.h
+../lib/abstractpropertytype.h
+
+../lib/abstractsource.h
+string
+-
+list
+-
+boost/any.hpp
+-
+abstractsink.h
+../lib/abstractsink.h
+vehicleproperty.h
+../lib/vehicleproperty.h
+abstractroutingengine.h
+../lib/abstractroutingengine.h
+abstractpropertytype.h
+../lib/abstractpropertytype.h
+propertyinfo.hpp
+../lib/propertyinfo.hpp
+
+../lib/debugout.h
+string
+-
+iostream
+-
+fstream
+-
+sstream
+-
+stdexcept
+-
+timestamp.h
+../lib/timestamp.h
+
+../lib/listplusplus.h
+list
+-
+algorithm
+-
+
+../lib/mappropertytype.hpp
+abstractpropertytype.h
+../lib/abstractpropertytype.h
+map
+-
+debugout.h
+-
+json/json.h
+-
+
+../lib/nullptr.h
+
+../lib/propertyinfo.hpp
+abstractpropertytype.h
+../lib/abstractpropertytype.h
+list
+-
+
+../lib/timestamp.h
+
+../lib/uuidhelper.h
+uuid/uuid.h
+-
+string
+-
+
+../lib/vehicleproperty.h
+nullptr.h
+../lib/nullptr.h
+string
+-
+list
+-
+set
+-
+sstream
+-
+map
+-
+functional
+-
+abstractpropertytype.h
+../lib/abstractpropertytype.h
+mappropertytype.hpp
+../lib/mappropertytype.hpp
+boost/preprocessor/comma.hpp
+-
+
+/home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/websocketsource.cpp
+websocketsource.h
+/home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/websocketsource.h
+iostream
+-
+boost/assert.hpp
+-
+boost/lexical_cast.hpp
+-
+glib.h
+-
+sstream
+-
+listplusplus.h
+-
+timestamp.h
+-
+uuidhelper.h
+/home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/uuidhelper.h
+debugout.h
+/home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/debugout.h
+
+/home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/websocketsource.h
+abstractsource.h
+-
+string
+-
+libwebsockets.h
+-
+
+/usr/include/glib-2.0/glib.h
+glib/galloca.h
+-
+glib/garray.h
+-
+glib/gasyncqueue.h
+-
+glib/gatomic.h
+-
+glib/gbacktrace.h
+-
+glib/gbase64.h
+-
+glib/gbitlock.h
+-
+glib/gbookmarkfile.h
+-
+glib/gbytes.h
+-
+glib/gcharset.h
+-
+glib/gchecksum.h
+-
+glib/gconvert.h
+-
+glib/gdataset.h
+-
+glib/gdate.h
+-
+glib/gdatetime.h
+-
+glib/gdir.h
+-
+glib/genviron.h
+-
+glib/gerror.h
+-
+glib/gfileutils.h
+-
+glib/ggettext.h
+-
+glib/ghash.h
+-
+glib/ghmac.h
+-
+glib/ghook.h
+-
+glib/ghostutils.h
+-
+glib/giochannel.h
+-
+glib/gkeyfile.h
+-
+glib/glist.h
+-
+glib/gmacros.h
+-
+glib/gmain.h
+-
+glib/gmappedfile.h
+-
+glib/gmarkup.h
+-
+glib/gmem.h
+-
+glib/gmessages.h
+-
+glib/gnode.h
+-
+glib/goption.h
+-
+glib/gpattern.h
+-
+glib/gpoll.h
+-
+glib/gprimes.h
+-
+glib/gqsort.h
+-
+glib/gquark.h
+-
+glib/gqueue.h
+-
+glib/grand.h
+-
+glib/gregex.h
+-
+glib/gscanner.h
+-
+glib/gsequence.h
+-
+glib/gshell.h
+-
+glib/gslice.h
+-
+glib/gslist.h
+-
+glib/gspawn.h
+-
+glib/gstrfuncs.h
+-
+glib/gstring.h
+-
+glib/gstringchunk.h
+-
+glib/gtestutils.h
+-
+glib/gthread.h
+-
+glib/gthreadpool.h
+-
+glib/gtimer.h
+-
+glib/gtimezone.h
+-
+glib/gtrashstack.h
+-
+glib/gtree.h
+-
+glib/gtypes.h
+-
+glib/gunicode.h
+-
+glib/gurifuncs.h
+-
+glib/gutils.h
+-
+glib/gvarianttype.h
+-
+glib/gvariant.h
+-
+glib/gversion.h
+-
+glib/gversionmacros.h
+-
+glib/gwin32.h
+-
+glib/deprecated/gallocator.h
+-
+glib/deprecated/gcache.h
+-
+glib/deprecated/gcompletion.h
+-
+glib/deprecated/gmain.h
+-
+glib/deprecated/grel.h
+-
+glib/deprecated/gthread.h
+-
+
+/usr/include/glib-2.0/glib/deprecated/gallocator.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/deprecated/gcache.h
+glib/glist.h
+-
+
+/usr/include/glib-2.0/glib/deprecated/gcompletion.h
+glib/glist.h
+-
+
+/usr/include/glib-2.0/glib/deprecated/gmain.h
+glib/gmain.h
+-
+
+/usr/include/glib-2.0/glib/deprecated/grel.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/deprecated/gthread.h
+glib/gthread.h
+-
+pthread.h
+-
+
+/usr/include/glib-2.0/glib/galloca.h
+glib/gtypes.h
+-
+alloca.h
+-
+alloca.h
+-
+malloc.h
+-
+
+/usr/include/glib-2.0/glib/garray.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gasyncqueue.h
+glib/gthread.h
+-
+
+/usr/include/glib-2.0/glib/gatomic.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gbacktrace.h
+glib/gtypes.h
+-
+signal.h
+-
+
+/usr/include/glib-2.0/glib/gbase64.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gbitlock.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gbookmarkfile.h
+glib/gerror.h
+-
+time.h
+-
+
+/usr/include/glib-2.0/glib/gbytes.h
+glib/gtypes.h
+-
+glib/garray.h
+-
+
+/usr/include/glib-2.0/glib/gcharset.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gchecksum.h
+glib/gtypes.h
+-
+glib/gbytes.h
+-
+
+/usr/include/glib-2.0/glib/gconvert.h
+glib/gerror.h
+-
+
+/usr/include/glib-2.0/glib/gdataset.h
+glib/gquark.h
+-
+
+/usr/include/glib-2.0/glib/gdate.h
+time.h
+-
+glib/gtypes.h
+-
+glib/gquark.h
+-
+
+/usr/include/glib-2.0/glib/gdatetime.h
+glib/gtimezone.h
+-
+
+/usr/include/glib-2.0/glib/gdir.h
+glib/gerror.h
+-
+dirent.h
+-
+
+/usr/include/glib-2.0/glib/genviron.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gerror.h
+stdarg.h
+-
+glib/gquark.h
+-
+
+/usr/include/glib-2.0/glib/gfileutils.h
+glib/gerror.h
+-
+
+/usr/include/glib-2.0/glib/ggettext.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/ghash.h
+glib/gtypes.h
+-
+glib/glist.h
+-
+
+/usr/include/glib-2.0/glib/ghmac.h
+glib/gtypes.h
+-
+gchecksum.h
+/usr/include/glib-2.0/glib/gchecksum.h
+
+/usr/include/glib-2.0/glib/ghook.h
+glib/gmem.h
+-
+
+/usr/include/glib-2.0/glib/ghostutils.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/giochannel.h
+glib/gconvert.h
+-
+glib/gmain.h
+-
+glib/gstring.h
+-
+
+/usr/include/glib-2.0/glib/gkeyfile.h
+glib/gerror.h
+-
+
+/usr/include/glib-2.0/glib/glist.h
+glib/gmem.h
+-
+glib/gnode.h
+-
+
+/usr/include/glib-2.0/glib/gmacros.h
+stddef.h
+-
+
+/usr/include/glib-2.0/glib/gmain.h
+glib/gpoll.h
+-
+glib/gslist.h
+-
+glib/gthread.h
+-
+
+/usr/include/glib-2.0/glib/gmappedfile.h
+glib/gbytes.h
+-
+glib/gerror.h
+-
+
+/usr/include/glib-2.0/glib/gmarkup.h
+stdarg.h
+-
+glib/gerror.h
+-
+glib/gslist.h
+-
+
+/usr/include/glib-2.0/glib/gmem.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gmessages.h
+stdarg.h
+-
+glib/gtypes.h
+-
+glib/gmacros.h
+-
+
+/usr/include/glib-2.0/glib/gnode.h
+glib/gmem.h
+-
+
+/usr/include/glib-2.0/glib/goption.h
+glib/gerror.h
+-
+glib/gquark.h
+-
+
+/usr/include/glib-2.0/glib/gpattern.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gpoll.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gprimes.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gqsort.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gquark.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gqueue.h
+glib/glist.h
+-
+
+/usr/include/glib-2.0/glib/grand.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gregex.h
+glib/gerror.h
+-
+glib/gstring.h
+-
+
+/usr/include/glib-2.0/glib/gscanner.h
+glib/gdataset.h
+-
+glib/ghash.h
+-
+
+/usr/include/glib-2.0/glib/gsequence.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gshell.h
+glib/gerror.h
+-
+
+/usr/include/glib-2.0/glib/gslice.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gslist.h
+glib/gmem.h
+-
+glib/gnode.h
+-
+
+/usr/include/glib-2.0/glib/gspawn.h
+glib/gerror.h
+-
+
+/usr/include/glib-2.0/glib/gstrfuncs.h
+stdarg.h
+-
+glib/gmacros.h
+-
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gstring.h
+glib/gtypes.h
+-
+glib/gunicode.h
+-
+glib/gbytes.h
+-
+glib/gutils.h
+-
+
+/usr/include/glib-2.0/glib/gstringchunk.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gtestutils.h
+glib/gmessages.h
+-
+glib/gstring.h
+-
+glib/gerror.h
+-
+glib/gslist.h
+-
+
+/usr/include/glib-2.0/glib/gthread.h
+glib/gatomic.h
+-
+glib/gerror.h
+-
+
+/usr/include/glib-2.0/glib/gthreadpool.h
+glib/gthread.h
+-
+
+/usr/include/glib-2.0/glib/gtimer.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gtimezone.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gtrashstack.h
+glib/gutils.h
+-
+
+/usr/include/glib-2.0/glib/gtree.h
+glib/gnode.h
+-
+
+/usr/include/glib-2.0/glib/gtypes.h
+glibconfig.h
+-
+glib/gmacros.h
+-
+glib/gversionmacros.h
+-
+time.h
+-
+
+/usr/include/glib-2.0/glib/gunicode.h
+glib/gerror.h
+-
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gurifuncs.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gutils.h
+glib/gtypes.h
+-
+stdarg.h
+-
+
+/usr/include/glib-2.0/glib/gvariant.h
+glib/gvarianttype.h
+-
+glib/gstring.h
+-
+glib/gbytes.h
+-
+
+/usr/include/glib-2.0/glib/gvarianttype.h
+glib/gmessages.h
+-
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gversion.h
+glib/gtypes.h
+-
+
+/usr/include/glib-2.0/glib/gversionmacros.h
+
+/usr/include/glib-2.0/glib/gwin32.h
+glib/gtypes.h
+-
+
+/usr/lib/i386-linux-gnu/glib-2.0/include/glibconfig.h
+glib/gmacros.h
+-
+limits.h
+-
+float.h
+-
+
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/DependInfo.cmake b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/DependInfo.cmake
new file mode 100644 (file)
index 0000000..cf2c7e7
--- /dev/null
@@ -0,0 +1,34 @@
+# The set of languages for which implicit dependencies are needed:
+SET(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+SET(CMAKE_DEPENDS_CHECK_CXX
+  "/home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/websocketsource.cpp" "/home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o"
+  )
+SET(CMAKE_CXX_COMPILER_ID "icecc")
+
+# Preprocessor definitions for this target.
+SET(CMAKE_TARGET_DEFINITIONS
+  "DBusServiceName=\"org.automotive.message.broker\""
+  "PROJECT_CODENAME=\"veyron\""
+  "PROJECT_NAME=\"automotive-message-broker\""
+  "PROJECT_QUALITY=\"alpha\""
+  "PROJECT_VERSION=\"0.11.800\""
+  )
+
+# Targets to which this target links.
+SET(CMAKE_TARGET_LINKED_INFO_FILES
+  "/home/tripzero/src/automotive-message-broker/build/lib/CMakeFiles/amb.dir/DependInfo.cmake"
+  )
+
+# The include file search paths:
+SET(CMAKE_C_TARGET_INCLUDE_PATH
+  "../lib"
+  "/usr/include/glib-2.0"
+  "/usr/lib/i386-linux-gnu/glib-2.0/include"
+  "/usr/include/json"
+  )
+SET(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})
+SET(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})
+SET(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/build.make b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/build.make
new file mode 100644 (file)
index 0000000..6aae82b
--- /dev/null
@@ -0,0 +1,108 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.8
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The program to use to edit the cache.
+CMAKE_EDIT_COMMAND = /usr/bin/cmake-gui
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/tripzero/src/automotive-message-broker
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/tripzero/src/automotive-message-broker/build
+
+# Include any dependencies generated for this target.
+include plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/depend.make
+
+# Include the progress variables for this target.
+include plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/flags.make
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/flags.make
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../plugins/websocketsourceplugin/websocketsource.cpp
+       $(CMAKE_COMMAND) -E cmake_progress_report /home/tripzero/src/automotive-message-broker/build/CMakeFiles $(CMAKE_PROGRESS_1)
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o"
+       cd /home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin && /usr/lib/icecc/bin/g++   $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o -c /home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/websocketsource.cpp
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.i: cmake_force
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.i"
+       cd /home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin && /usr/lib/icecc/bin/g++  $(CXX_DEFINES) $(CXX_FLAGS) -E /home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/websocketsource.cpp > CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.i
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.s: cmake_force
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.s"
+       cd /home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin && /usr/lib/icecc/bin/g++  $(CXX_DEFINES) $(CXX_FLAGS) -S /home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/websocketsource.cpp -o CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.s
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o.requires:
+.PHONY : plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o.requires
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o.provides: plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o.requires
+       $(MAKE) -f plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/build.make plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o.provides.build
+.PHONY : plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o.provides
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o.provides.build: plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o
+
+# Object files for target websocketsourceplugin
+websocketsourceplugin_OBJECTS = \
+"CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o"
+
+# External object files for target websocketsourceplugin
+websocketsourceplugin_EXTERNAL_OBJECTS =
+
+plugins/websocketsourceplugin/websocketsourceplugin.so: plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o
+plugins/websocketsourceplugin/websocketsourceplugin.so: plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/build.make
+plugins/websocketsourceplugin/websocketsourceplugin.so: lib/libamb.so.0.11.800
+plugins/websocketsourceplugin/websocketsourceplugin.so: /usr/lib/i386-linux-gnu/libltdl.so
+plugins/websocketsourceplugin/websocketsourceplugin.so: /usr/lib/i386-linux-gnu/libuuid.so
+plugins/websocketsourceplugin/websocketsourceplugin.so: plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/link.txt
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking CXX shared module websocketsourceplugin.so"
+       cd /home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/websocketsourceplugin.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/build: plugins/websocketsourceplugin/websocketsourceplugin.so
+.PHONY : plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/build
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/requires: plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o.requires
+.PHONY : plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/requires
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/clean:
+       cd /home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin && $(CMAKE_COMMAND) -P CMakeFiles/websocketsourceplugin.dir/cmake_clean.cmake
+.PHONY : plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/clean
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/depend:
+       cd /home/tripzero/src/automotive-message-broker/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/tripzero/src/automotive-message-broker /home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin /home/tripzero/src/automotive-message-broker/build /home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin /home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/depend
+
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/cmake_clean.cmake b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/cmake_clean.cmake
new file mode 100644 (file)
index 0000000..4b15c55
--- /dev/null
@@ -0,0 +1,10 @@
+FILE(REMOVE_RECURSE
+  "CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o"
+  "websocketsourceplugin.pdb"
+  "websocketsourceplugin.so"
+)
+
+# Per-language clean rules from dependency scanning.
+FOREACH(lang CXX)
+  INCLUDE(CMakeFiles/websocketsourceplugin.dir/cmake_clean_${lang}.cmake OPTIONAL)
+ENDFOREACH(lang)
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/depend.internal b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/depend.internal
new file mode 100644 (file)
index 0000000..d0f1b23
--- /dev/null
@@ -0,0 +1,94 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.8
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o
+ ../lib/abstractpropertytype.h
+ ../lib/abstractroutingengine.h
+ ../lib/abstractsink.h
+ ../lib/abstractsource.h
+ ../lib/debugout.h
+ ../lib/listplusplus.h
+ ../lib/mappropertytype.hpp
+ ../lib/nullptr.h
+ ../lib/propertyinfo.hpp
+ ../lib/timestamp.h
+ ../lib/uuidhelper.h
+ ../lib/vehicleproperty.h
+ /home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/websocketsource.cpp
+ /home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin/websocketsource.h
+ /usr/include/glib-2.0/glib.h
+ /usr/include/glib-2.0/glib/deprecated/gallocator.h
+ /usr/include/glib-2.0/glib/deprecated/gcache.h
+ /usr/include/glib-2.0/glib/deprecated/gcompletion.h
+ /usr/include/glib-2.0/glib/deprecated/gmain.h
+ /usr/include/glib-2.0/glib/deprecated/grel.h
+ /usr/include/glib-2.0/glib/deprecated/gthread.h
+ /usr/include/glib-2.0/glib/galloca.h
+ /usr/include/glib-2.0/glib/garray.h
+ /usr/include/glib-2.0/glib/gasyncqueue.h
+ /usr/include/glib-2.0/glib/gatomic.h
+ /usr/include/glib-2.0/glib/gbacktrace.h
+ /usr/include/glib-2.0/glib/gbase64.h
+ /usr/include/glib-2.0/glib/gbitlock.h
+ /usr/include/glib-2.0/glib/gbookmarkfile.h
+ /usr/include/glib-2.0/glib/gbytes.h
+ /usr/include/glib-2.0/glib/gcharset.h
+ /usr/include/glib-2.0/glib/gchecksum.h
+ /usr/include/glib-2.0/glib/gconvert.h
+ /usr/include/glib-2.0/glib/gdataset.h
+ /usr/include/glib-2.0/glib/gdate.h
+ /usr/include/glib-2.0/glib/gdatetime.h
+ /usr/include/glib-2.0/glib/gdir.h
+ /usr/include/glib-2.0/glib/genviron.h
+ /usr/include/glib-2.0/glib/gerror.h
+ /usr/include/glib-2.0/glib/gfileutils.h
+ /usr/include/glib-2.0/glib/ggettext.h
+ /usr/include/glib-2.0/glib/ghash.h
+ /usr/include/glib-2.0/glib/ghmac.h
+ /usr/include/glib-2.0/glib/ghook.h
+ /usr/include/glib-2.0/glib/ghostutils.h
+ /usr/include/glib-2.0/glib/giochannel.h
+ /usr/include/glib-2.0/glib/gkeyfile.h
+ /usr/include/glib-2.0/glib/glist.h
+ /usr/include/glib-2.0/glib/gmacros.h
+ /usr/include/glib-2.0/glib/gmain.h
+ /usr/include/glib-2.0/glib/gmappedfile.h
+ /usr/include/glib-2.0/glib/gmarkup.h
+ /usr/include/glib-2.0/glib/gmem.h
+ /usr/include/glib-2.0/glib/gmessages.h
+ /usr/include/glib-2.0/glib/gnode.h
+ /usr/include/glib-2.0/glib/goption.h
+ /usr/include/glib-2.0/glib/gpattern.h
+ /usr/include/glib-2.0/glib/gpoll.h
+ /usr/include/glib-2.0/glib/gprimes.h
+ /usr/include/glib-2.0/glib/gqsort.h
+ /usr/include/glib-2.0/glib/gquark.h
+ /usr/include/glib-2.0/glib/gqueue.h
+ /usr/include/glib-2.0/glib/grand.h
+ /usr/include/glib-2.0/glib/gregex.h
+ /usr/include/glib-2.0/glib/gscanner.h
+ /usr/include/glib-2.0/glib/gsequence.h
+ /usr/include/glib-2.0/glib/gshell.h
+ /usr/include/glib-2.0/glib/gslice.h
+ /usr/include/glib-2.0/glib/gslist.h
+ /usr/include/glib-2.0/glib/gspawn.h
+ /usr/include/glib-2.0/glib/gstrfuncs.h
+ /usr/include/glib-2.0/glib/gstring.h
+ /usr/include/glib-2.0/glib/gstringchunk.h
+ /usr/include/glib-2.0/glib/gtestutils.h
+ /usr/include/glib-2.0/glib/gthread.h
+ /usr/include/glib-2.0/glib/gthreadpool.h
+ /usr/include/glib-2.0/glib/gtimer.h
+ /usr/include/glib-2.0/glib/gtimezone.h
+ /usr/include/glib-2.0/glib/gtrashstack.h
+ /usr/include/glib-2.0/glib/gtree.h
+ /usr/include/glib-2.0/glib/gtypes.h
+ /usr/include/glib-2.0/glib/gunicode.h
+ /usr/include/glib-2.0/glib/gurifuncs.h
+ /usr/include/glib-2.0/glib/gutils.h
+ /usr/include/glib-2.0/glib/gvariant.h
+ /usr/include/glib-2.0/glib/gvarianttype.h
+ /usr/include/glib-2.0/glib/gversion.h
+ /usr/include/glib-2.0/glib/gversionmacros.h
+ /usr/include/glib-2.0/glib/gwin32.h
+ /usr/lib/i386-linux-gnu/glib-2.0/include/glibconfig.h
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/depend.make b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/depend.make
new file mode 100644 (file)
index 0000000..259a784
--- /dev/null
@@ -0,0 +1,94 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.8
+
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/abstractpropertytype.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/abstractroutingengine.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/abstractsink.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/abstractsource.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/debugout.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/listplusplus.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/mappropertytype.hpp
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/nullptr.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/propertyinfo.hpp
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/timestamp.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/uuidhelper.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../lib/vehicleproperty.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../plugins/websocketsourceplugin/websocketsource.cpp
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: ../plugins/websocketsourceplugin/websocketsource.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/deprecated/gallocator.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/deprecated/gcache.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/deprecated/gcompletion.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/deprecated/gmain.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/deprecated/grel.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/deprecated/gthread.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/galloca.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/garray.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gasyncqueue.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gatomic.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gbacktrace.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gbase64.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gbitlock.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gbookmarkfile.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gbytes.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gcharset.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gchecksum.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gconvert.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gdataset.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gdate.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gdatetime.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gdir.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/genviron.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gerror.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gfileutils.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/ggettext.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/ghash.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/ghmac.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/ghook.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/ghostutils.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/giochannel.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gkeyfile.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/glist.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gmacros.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gmain.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gmappedfile.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gmarkup.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gmem.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gmessages.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gnode.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/goption.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gpattern.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gpoll.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gprimes.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gqsort.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gquark.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gqueue.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/grand.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gregex.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gscanner.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gsequence.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gshell.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gslice.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gslist.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gspawn.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gstrfuncs.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gstring.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gstringchunk.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gtestutils.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gthread.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gthreadpool.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gtimer.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gtimezone.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gtrashstack.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gtree.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gtypes.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gunicode.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gurifuncs.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gutils.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gvariant.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gvarianttype.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gversion.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gversionmacros.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/include/glib-2.0/glib/gwin32.h
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o: /usr/lib/i386-linux-gnu/glib-2.0/include/glibconfig.h
+
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/flags.make b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/flags.make
new file mode 100644 (file)
index 0000000..4cdea99
--- /dev/null
@@ -0,0 +1,8 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.8
+
+# compile CXX with /usr/lib/icecc/bin/g++
+CXX_FLAGS = -g -fPIC -I/home/tripzero/src/automotive-message-broker/lib -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/json    -std=c++11
+
+CXX_DEFINES = -DDBusServiceName=\"org.automotive.message.broker\" -DPROJECT_CODENAME=\"veyron\" -DPROJECT_NAME=\"automotive-message-broker\" -DPROJECT_QUALITY=\"alpha\" -DPROJECT_VERSION=\"0.11.800\" -Dwebsocketsourceplugin_EXPORTS
+
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/link.txt b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/link.txt
new file mode 100644 (file)
index 0000000..644c738
--- /dev/null
@@ -0,0 +1 @@
+/usr/lib/icecc/bin/g++  -fPIC -g   -shared -Wl,-soname,websocketsourceplugin.so -o websocketsourceplugin.so CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o ../../lib/libamb.so.0.11.800 -lwebsockets -L/home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin/lib -lamb -lltdl -lgobject-2.0 -lglib-2.0 -ljson -L/home/tripzero/src/automotive-message-broker/build/lib -lgio-2.0 -luuid -lgobject-2.0 -lglib-2.0 -ljson -Wl,-rpath,/home/tripzero/src/automotive-message-broker/build/lib: 
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/progress.make b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/progress.make
new file mode 100644 (file)
index 0000000..e11d6f4
--- /dev/null
@@ -0,0 +1,2 @@
+CMAKE_PROGRESS_1 = 55
+
diff --git a/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o
new file mode 100644 (file)
index 0000000..54e5624
Binary files /dev/null and b/build/plugins/websocketsource/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o differ
diff --git a/build/plugins/websocketsource/Makefile b/build/plugins/websocketsource/Makefile
new file mode 100644 (file)
index 0000000..8e8c6f0
--- /dev/null
@@ -0,0 +1,234 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.8
+
+# Default target executed when no arguments are given to make.
+default_target: all
+.PHONY : default_target
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The program to use to edit the cache.
+CMAKE_EDIT_COMMAND = /usr/bin/cmake-gui
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/tripzero/src/automotive-message-broker
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/tripzero/src/automotive-message-broker/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target edit_cache
+edit_cache:
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+       /usr/bin/cmake-gui -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+.PHONY : edit_cache/fast
+
+# Special rule for the target install
+install: preinstall
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+       /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+       /usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+       /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: install/local
+.PHONY : install/local/fast
+
+# Special rule for the target install/strip
+install/strip: preinstall
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+       /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: install/strip
+.PHONY : install/strip/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Devel\" \"Docs\" \"Unspecified\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+.PHONY : list_install_components/fast
+
+# Special rule for the target package
+package: preinstall
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..."
+       cd /home/tripzero/src/automotive-message-broker/build && /usr/bin/cpack --config ./CPackConfig.cmake
+.PHONY : package
+
+# Special rule for the target package
+package/fast: package
+.PHONY : package/fast
+
+# Special rule for the target package_source
+package_source:
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..."
+       cd /home/tripzero/src/automotive-message-broker/build && /usr/bin/cpack --config ./CPackSourceConfig.cmake /home/tripzero/src/automotive-message-broker/build/CPackSourceConfig.cmake
+.PHONY : package_source
+
+# Special rule for the target package_source
+package_source/fast: package_source
+.PHONY : package_source/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+       @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+       /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+.PHONY : rebuild_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+       cd /home/tripzero/src/automotive-message-broker/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/tripzero/src/automotive-message-broker/build/CMakeFiles /home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin/CMakeFiles/progress.marks
+       cd /home/tripzero/src/automotive-message-broker/build && $(MAKE) -f CMakeFiles/Makefile2 plugins/websocketsourceplugin/all
+       $(CMAKE_COMMAND) -E cmake_progress_start /home/tripzero/src/automotive-message-broker/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+       cd /home/tripzero/src/automotive-message-broker/build && $(MAKE) -f CMakeFiles/Makefile2 plugins/websocketsourceplugin/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+       cd /home/tripzero/src/automotive-message-broker/build && $(MAKE) -f CMakeFiles/Makefile2 plugins/websocketsourceplugin/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+       cd /home/tripzero/src/automotive-message-broker/build && $(MAKE) -f CMakeFiles/Makefile2 plugins/websocketsourceplugin/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+       cd /home/tripzero/src/automotive-message-broker/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/rule:
+       cd /home/tripzero/src/automotive-message-broker/build && $(MAKE) -f CMakeFiles/Makefile2 plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/rule
+.PHONY : plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/rule
+
+# Convenience name for target.
+websocketsourceplugin: plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/rule
+.PHONY : websocketsourceplugin
+
+# fast build rule for target.
+websocketsourceplugin/fast:
+       cd /home/tripzero/src/automotive-message-broker/build && $(MAKE) -f plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/build.make plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/build
+.PHONY : websocketsourceplugin/fast
+
+websocketsource.o: websocketsource.cpp.o
+.PHONY : websocketsource.o
+
+# target to build an object file
+websocketsource.cpp.o:
+       cd /home/tripzero/src/automotive-message-broker/build && $(MAKE) -f plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/build.make plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.o
+.PHONY : websocketsource.cpp.o
+
+websocketsource.i: websocketsource.cpp.i
+.PHONY : websocketsource.i
+
+# target to preprocess a source file
+websocketsource.cpp.i:
+       cd /home/tripzero/src/automotive-message-broker/build && $(MAKE) -f plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/build.make plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.i
+.PHONY : websocketsource.cpp.i
+
+websocketsource.s: websocketsource.cpp.s
+.PHONY : websocketsource.s
+
+# target to generate assembly for a file
+websocketsource.cpp.s:
+       cd /home/tripzero/src/automotive-message-broker/build && $(MAKE) -f plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/build.make plugins/websocketsourceplugin/CMakeFiles/websocketsourceplugin.dir/websocketsource.cpp.s
+.PHONY : websocketsource.cpp.s
+
+# Help Target
+help:
+       @echo "The following are some of the valid targets for this Makefile:"
+       @echo "... all (the default if no target is provided)"
+       @echo "... clean"
+       @echo "... depend"
+       @echo "... edit_cache"
+       @echo "... install"
+       @echo "... install/local"
+       @echo "... install/strip"
+       @echo "... list_install_components"
+       @echo "... package"
+       @echo "... package_source"
+       @echo "... rebuild_cache"
+       @echo "... websocketsourceplugin"
+       @echo "... websocketsource.o"
+       @echo "... websocketsource.i"
+       @echo "... websocketsource.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+       cd /home/tripzero/src/automotive-message-broker/build && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/build/plugins/websocketsource/cmake_install.cmake b/build/plugins/websocketsource/cmake_install.cmake
new file mode 100644 (file)
index 0000000..5d48633
--- /dev/null
@@ -0,0 +1,52 @@
+# Install script for directory: /home/tripzero/src/automotive-message-broker/plugins/websocketsourceplugin
+
+# Set the install prefix
+IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  SET(CMAKE_INSTALL_PREFIX "/usr")
+ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
+STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  IF(BUILD_TYPE)
+    STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  ELSE(BUILD_TYPE)
+    SET(CMAKE_INSTALL_CONFIG_NAME "Debug")
+  ENDIF(BUILD_TYPE)
+  MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+
+# Set the component getting installed.
+IF(NOT CMAKE_INSTALL_COMPONENT)
+  IF(COMPONENT)
+    MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
+    SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  ELSE(COMPONENT)
+    SET(CMAKE_INSTALL_COMPONENT)
+  ENDIF(COMPONENT)
+ENDIF(NOT CMAKE_INSTALL_COMPONENT)
+
+# Install shared libraries without execute permission?
+IF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  SET(CMAKE_INSTALL_SO_NO_EXE "1")
+ENDIF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+
+IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL "Unspecified")
+  IF(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/automotive-message-broker/websocketsourceplugin.so" AND
+     NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/automotive-message-broker/websocketsourceplugin.so")
+    FILE(RPATH_CHECK
+         FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/automotive-message-broker/websocketsourceplugin.so"
+         RPATH "")
+  ENDIF()
+  FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/automotive-message-broker" TYPE MODULE FILES "/home/tripzero/src/automotive-message-broker/build/plugins/websocketsourceplugin/websocketsourceplugin.so")
+  IF(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/automotive-message-broker/websocketsourceplugin.so" AND
+     NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/automotive-message-broker/websocketsourceplugin.so")
+    FILE(RPATH_REMOVE
+         FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/automotive-message-broker/websocketsourceplugin.so")
+    IF(CMAKE_INSTALL_DO_STRIP)
+      EXECUTE_PROCESS(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/automotive-message-broker/websocketsourceplugin.so")
+    ENDIF(CMAKE_INSTALL_DO_STRIP)
+  ENDIF()
+ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL "Unspecified")
+
diff --git a/build/plugins/websocketsource/websocketsourceplugin.so b/build/plugins/websocketsource/websocketsourceplugin.so
new file mode 100755 (executable)
index 0000000..087f8bc
Binary files /dev/null and b/build/plugins/websocketsource/websocketsourceplugin.so differ
index 2f95e47..9f55d20 100644 (file)
@@ -12,8 +12,7 @@
                        "path" : "/usr/lib/automotive-message-broker/websocketsinkplugin.so",
                        "interface" : "lo",
                        "ssl" : "false",
-                       "port" : "23000",
-                       "binaryProtocol" : "true"
+                       "port" : "23000"
                } 
        ]
 }
index 25a8088..5ead5d1 100644 (file)
@@ -5,8 +5,7 @@
                        "path" : "/usr/lib/automotive-message-broker/websocketsourceplugin.so",
                        "port" : "23000",
                        "ssl" : "false",
-                       "ip" : "127.0.0.1",
-                       "binaryProtocol" : "true"
+                       "ip" : "127.0.0.1"
                }
        ],
        "sinks": [
diff --git a/examples/websocketsink2 b/examples/websocketsink2
new file mode 100644 (file)
index 0000000..2f95e47
--- /dev/null
@@ -0,0 +1,20 @@
+{
+       "sources" : [ 
+               {
+                       "name" : "ExampleSouce",
+                       "path" : "/usr/lib/automotive-message-broker/examplesourceplugin.so",
+                       "delay" : "6"
+               }
+       ],
+       "sinks": [
+               {
+                       "name" : "WebSocketSink",
+                       "path" : "/usr/lib/automotive-message-broker/websocketsinkplugin.so",
+                       "interface" : "lo",
+                       "ssl" : "false",
+                       "port" : "23000",
+                       "binaryProtocol" : "true"
+               } 
+       ]
+}
+
diff --git a/examples/websocketsource2 b/examples/websocketsource2
new file mode 100644 (file)
index 0000000..25a8088
--- /dev/null
@@ -0,0 +1,19 @@
+{
+       "sources" : [ 
+               {
+                       "name" : "WebsocketSource",
+                       "path" : "/usr/lib/automotive-message-broker/websocketsourceplugin.so",
+                       "port" : "23000",
+                       "ssl" : "false",
+                       "ip" : "127.0.0.1",
+                       "binaryProtocol" : "true"
+               }
+       ],
+       "sinks": [
+               {
+                        "name" : "ExampleSink",
+                        "path" : "/usr/lib/automotive-message-broker/examplesinkplugin.so"
+               } 
+       ]
+}
+
index 3dcbbe4..61d7a3c 100644 (file)
@@ -25,6 +25,7 @@ add_subdirectory(wheel)
 add_subdirectory(dbus)
 add_subdirectory(websocket)
 add_subdirectory(websocketsink)
+add_subdirectory(websocketsourceplugin)
 add_subdirectory(obd2plugin)
 add_subdirectory(demosink)
 add_subdirectory(tpms)
diff --git a/plugins/websocketsourceplugin/websocketsource.cpp.orig b/plugins/websocketsourceplugin/websocketsource.cpp.orig
new file mode 100644 (file)
index 0000000..918055b
--- /dev/null
@@ -0,0 +1,603 @@
+/*
+       Copyright (C) 2012  Intel Corporation
+
+       This library is free software; you can redistribute it and/or
+       modify it under the terms of the GNU Lesser General Public
+       License as published by the Free Software Foundation; either
+       version 2.1 of the License, or (at your option) any later version.
+
+       This library is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+       Lesser General Public License for more details.
+
+       You should have received a copy of the GNU Lesser General Public
+       License along with this library; if not, write to the Free Software
+       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+
+#include "websocketsource.h"
+#include <iostream>
+#include <boost/assert.hpp>
+#include <boost/lexical_cast.hpp>
+#include <glib.h>
+#include <sstream>
+#include <json-glib/json-glib.h>
+#include <listplusplus.h>
+#include <timestamp.h>
+#include "uuidhelper.h"
+
+#include "debugout.h"
+#define __SMALLFILE__ std::string(__FILE__).substr(std::string(__FILE__).rfind("/")+1)
+libwebsocket_context *context;
+WebSocketSource *source;
+AbstractRoutingEngine *m_re;
+
+static int callback_http_only(libwebsocket_context *context,struct libwebsocket *wsi,enum libwebsocket_callback_reasons reason,void *user, void *in, size_t len);
+static struct libwebsocket_protocols protocols[] = {
+       {
+               "http-only",
+               callback_http_only,
+               0,
+       },
+       {  /* end of list */
+               NULL,
+               NULL,
+               0
+       }
+};
+
+//Called when a client connects, subscribes, or unsubscribes.
+void WebSocketSource::checkSubscriptions()
+{
+       PropertyList notSupportedList;
+       while (queuedRequests.size() > 0)
+       {
+               VehicleProperty::Property prop = queuedRequests.front();
+               queuedRequests.pop_front();
+               if (ListPlusPlus<VehicleProperty::Property>(&activeRequests).contains(prop))
+               {
+                       return;
+               }
+               activeRequests.push_back(prop);
+               stringstream s;
+               ///TODO: fix transid here:
+               s << "{\"type\":\"method\",\"name\":\"subscribe\",\"data\":[\"" << prop << "\"],\"transactionid\":\"" << "d293f670-f0b3-11e1-aff1-0800200c9a66" << "\"}";
+
+               string replystr = s.str();
+               DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Reply:" << replystr << "\n";
+               //printf("Reply: %s\n",replystr.c_str());
+
+               char *new_response = new char[LWS_SEND_BUFFER_PRE_PADDING + strlen(replystr.c_str()) + LWS_SEND_BUFFER_POST_PADDING];
+               new_response+=LWS_SEND_BUFFER_PRE_PADDING;
+               strcpy(new_response,replystr.c_str());
+               libwebsocket_write(clientsocket, (unsigned char*)new_response, strlen(new_response), LWS_WRITE_TEXT);
+               delete (char*)(new_response-LWS_SEND_BUFFER_PRE_PADDING);
+       }
+}
+void WebSocketSource::setConfiguration(map<string, string> config)
+{
+       //printf("WebSocketSource::setConfiguration has been called\n");
+       std::string ip;
+       int port;
+       configuration = config;
+       for (map<string,string>::iterator i=configuration.begin();i!=configuration.end();i++)
+       {
+               DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Incoming setting for WebSocketSource:" << (*i).first << ":" << (*i).second << "\n";
+               //printf("Incoming setting: %s:%s\n",(*i).first.c_str(),(*i).second.c_str());
+               if ((*i).first == "ip")
+               {
+                       ip = (*i).second;
+               }
+               if ((*i).first == "port")
+               {
+                       port = boost::lexical_cast<int>((*i).second);
+               }
+       }
+       //printf("Connecting to websocket server at %s port %i\n",ip.c_str(),port);
+       DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Connecting to websocket server at" << ip << ":" << port << "\n";
+       clientsocket = libwebsocket_client_connect(context, ip.c_str(), port, 0,"/", "localhost", "websocket",protocols[0].name, -1);
+
+}
+bool gioPollingFunc(GIOChannel *source,GIOCondition condition,gpointer data)
+{
+       //This is the polling function. If it return false, glib will stop polling this FD.
+       //printf("Polling...%i\n",condition);
+       lws_tokens token;
+       struct pollfd pollstruct;
+       int newfd = g_io_channel_unix_get_fd(source);
+       pollstruct.fd = newfd;
+       pollstruct.events = condition;
+       pollstruct.revents = condition;
+       libwebsocket_service_fd(context,&pollstruct);
+       if (condition == G_IO_HUP)
+       {
+               //Hang up. Returning false closes out the GIOChannel.
+               //printf("Callback on G_IO_HUP\n");
+               return false;
+       }
+       if (condition == G_IO_IN)
+       {
+       }
+
+       return true;
+}
+
+static int checkTimeouts(gpointer data)
+{
+       WebSocketSource *src = (WebSocketSource*)data;
+       for (auto i=src->uuidTimeoutMap.begin();i!= src->uuidTimeoutMap.end();i++)
+       {
+               if (src->uuidRangedReplyMap.find((*i).first) != src->uuidRangedReplyMap.end())
+               {
+                       //A source exists!
+                       if (amb::currentTime() > (*i).second)
+                       {
+                               //We've reached timeout
+                               DebugOut() << "Timeout reached for request ID:" << (*i).first << "\n";
+                               src->uuidRangedReplyMap[(*i).first]->success = false;
+                               src->uuidRangedReplyMap[(*i).first]->completed(src->uuidRangedReplyMap[(*i).first]);
+                               src->uuidRangedReplyMap.erase((*i).first);
+                               src->uuidTimeoutMap.erase((*i).first);
+                               i--;
+<<<<<<< HEAD
+=======
+                               if (src->uuidTimeoutMap.size() == 0)
+                               {
+                                       return 0;
+                               }
+>>>>>>> 5ccd6906c4dbc222df07456232eec58058dd1e1b
+                       }
+                       else
+                       {
+                               //No timeout yet, keep waiting.
+                       }
+               }
+               else
+               {
+                       //Reply has already come back, ignore and erase from list.
+                       src->uuidTimeoutMap.erase((*i).first);
+                       i--;
+<<<<<<< HEAD
+               }
+
+       }
+=======
+                       if (src->uuidTimeoutMap.size() == 0)
+                       {
+                               return 0;
+                       }
+               }
+
+       }
+       return 0;
+>>>>>>> 5ccd6906c4dbc222df07456232eec58058dd1e1b
+}
+
+static int callback_http_only(libwebsocket_context *context,struct libwebsocket *wsi,enum libwebsocket_callback_reasons reason,void *user, void *in, size_t len)
+{
+       unsigned char buf[LWS_SEND_BUFFER_PRE_PADDING + 4096 + LWS_SEND_BUFFER_POST_PADDING];
+       int l;
+       switch (reason)
+       {
+               case LWS_CALLBACK_CLOSED:
+                       //fprintf(stderr, "mirror: LWS_CALLBACK_CLOSED\n");
+                       //wsi_mirror = NULL;
+                       //printf("Connection closed!\n");
+                       break;
+
+               case LWS_CALLBACK_CLIENT_ESTABLISHED:
+               {
+                       //This happens when a client initally connects. We need to request the support event types.
+                       source->clientConnected = true;
+                       source->checkSubscriptions();
+                       //printf("Incoming connection!\n");
+                       DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Incoming connection" << "\n";
+                       stringstream s;
+                       s << "{\"type\":\"method\",\"name\":\"getSupportedEventTypes\",\"data\":[],\"transactionid\":\"" << "d293f670-f0b3-11e1-aff1-0800200c9a66" << "\"}";
+
+                       string replystr = s.str();
+                       DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Reply:" << replystr << "\n";
+                       char *new_response = new char[LWS_SEND_BUFFER_PRE_PADDING + strlen(replystr.c_str()) + LWS_SEND_BUFFER_POST_PADDING];
+                       new_response+=LWS_SEND_BUFFER_PRE_PADDING;
+                       strcpy(new_response,replystr.c_str());
+                       libwebsocket_write(wsi, (unsigned char*)(new_response), strlen(new_response), LWS_WRITE_TEXT);  
+                       delete (char*)(new_response-LWS_SEND_BUFFER_PRE_PADDING);
+
+                       break;
+               }
+               case LWS_CALLBACK_CLIENT_RECEIVE:
+               {
+                       //Incoming JSON reqest.
+                       GError* error = nullptr;
+                       JsonParser* parser = json_parser_new();
+                       if (!json_parser_load_from_data(parser,(char*)in,len,&error))
+                       {
+                               DebugOut(0) << __SMALLFILE__ <<":"<< __LINE__ << "Error loading JSON"<<endl;
+                               DebugOut(0) << (char*)in <<endl;
+                               DebugOut(0) <<error->message<<endl;
+                               return 0;
+                       }
+
+                       JsonNode* node = json_parser_get_root(parser);
+                       if(node == nullptr)
+                       {
+                               DebugOut(0) << __SMALLFILE__ <<":"<< __LINE__ << "Error getting root node of json"<<endl;
+                               //throw std::runtime_error("Unable to get JSON root object");
+                               return 0;
+                       }
+
+                       JsonReader* reader = json_reader_new(node);
+                       if(reader == nullptr)
+                       {
+                               DebugOut(0) << __SMALLFILE__ <<":"<< __LINE__ << "json_reader is null!"<<endl;
+                               //throw std::runtime_error("Unable to create JSON reader");
+                               return 0;
+                       }
+
+
+                       DebugOut(5)<<"source received: "<<string((char*)in)<<endl;
+
+
+                       string type;
+                       json_reader_read_member(reader,"type");
+                       type = json_reader_get_string_value(reader);
+                       json_reader_end_member(reader);
+
+                       string  name;
+                       json_reader_read_member(reader,"name");
+                       name = json_reader_get_string_value(reader);
+                       json_reader_end_member(reader);
+                       
+                       
+                       string id;
+                       json_reader_read_member(reader,"transactionid");
+                       if (strcmp("gchararray",g_type_name(json_node_get_value_type(json_reader_get_value(reader)))) == 0)
+                       {
+                               //Type is a string
+                               id = json_reader_get_string_value(reader);
+                       }
+                       else
+                       {
+                               //Type is an integer
+                               stringstream strstr;
+                               strstr << json_reader_get_int_value(reader);
+                               id = strstr.str();
+                       }
+                       json_reader_end_member(reader);
+                       
+                       list<pair<string,string> > pairdata;
+                       if (type == "valuechanged")
+                       {
+                               json_reader_read_member(reader,"data");
+                               if (json_reader_is_object(reader))
+                               {
+                                       //Proper object.
+                                       json_reader_read_member(reader,"value");
+                                       std::string value = json_reader_get_string_value(reader);
+                                       json_reader_end_member(reader);
+                                       
+                                       json_reader_read_member(reader,"timestamp");
+                                       std::string timestamp = json_reader_get_string_value(reader);
+                                       json_reader_end_member(reader);
+                                       
+                                       json_reader_read_member(reader,"sequence");
+                                       std::string sequence= json_reader_get_string_value(reader);
+                                       json_reader_end_member(reader);
+                                       //printf("Value changed: %s, %s\n",name.c_str(),data.front().c_str());
+                                       DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Value changed:" << name << value << "\n";
+                                       //Name should be a valid property
+                                       //      routingEngine->updateProperty(VehicleProperty::VehicleSpeed, velocity);
+                                       //data.front()
+                                       try
+                                       {
+                                               AbstractPropertyType* type = VehicleProperty::getPropertyTypeForPropertyNameValue(name,value);
+                                               type->timestamp = boost::lexical_cast<double,std::string>(timestamp);
+                                               type->sequence = boost::lexical_cast<double,std::string>(sequence);
+                                               m_re->updateProperty(name, type, source->uuid());
+
+                                               double currenttime = amb::currentTime();
+
+                                               DebugOut(2)<<"websocket source latency: "<<(currenttime - type->timestamp)*1000<<"ms"<<endl;
+
+                                               delete type;
+                                       }
+                                       catch (exception ex)
+                                       {
+                                               //printf("Exception %s\n",ex.what());
+                                               DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Exception:" << ex.what() << "\n";
+                                       }
+                                       //printf("Done\n");
+                                       /*if (name == "get")
+                                       {
+                                               if (data.size() > 0)
+                                               {
+                                               }
+                                       }*/
+                               }
+                       }
+                       else if (type == "methodReply")
+                       {
+                               if (name == "getSupportedEventTypes")
+                               {
+                                       json_reader_read_member(reader,"data");
+                                       //printf("Got supported events!\n");
+                                       DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Got getSupportedEventTypes request"<<endl;
+                                       PropertyList props;
+                                       if (json_reader_is_array(reader))
+                                       {
+                                               for(int i=0; i < json_reader_count_elements(reader); i++)
+                                               {
+                                                       json_reader_read_element(reader,i);
+                                                       string path = json_reader_get_string_value(reader);
+                                                       props.push_back(path);
+                                                       json_reader_end_element(reader);
+                                               }
+                                       }
+                                       else
+                                       {
+                                               string path = json_reader_get_string_value(reader);
+                                               if (path != "")
+                                               {
+                                                       props.push_back(path);;
+                                               }
+                                       }
+                                       json_reader_end_member(reader);
+                                       source->setSupported(props);
+                                       //m_re->updateSupported(m_supportedProperties,PropertyList());
+                               }
+                               else if (name == "getRanged")
+                               {
+                                       json_reader_read_member(reader,"data");
+                                       if (json_reader_is_array(reader))
+                                       {
+                                               std::list<AbstractPropertyType*> propertylist;
+                                               for(int i=0; i < json_reader_count_elements(reader); i++)
+                                               {
+                                                       json_reader_read_member(reader,"value");
+                                                       std::string value = json_reader_get_string_value(reader);
+                                                       json_reader_end_member(reader);
+                                               
+                                                       json_reader_read_member(reader,"timestamp");
+                                                       std::string timestamp = json_reader_get_string_value(reader);
+                                                       json_reader_end_member(reader);
+                                                       
+                                                       json_reader_read_member(reader,"sequence");
+                                                       std::string sequence = json_reader_get_string_value(reader);
+                                                       json_reader_end_member(reader);
+                                                       
+                                                       AbstractPropertyType* type = VehicleProperty::getPropertyTypeForPropertyNameValue(source->uuidRangedReplyMap[id]->property,value);
+                                                       propertylist.push_back(type);
+                                                       
+                                               }
+                                               if (source->uuidRangedReplyMap.find(id) != source->uuidRangedReplyMap.end())
+                                               {
+                                                       source->uuidRangedReplyMap[id]->values = propertylist;
+                                                       source->uuidRangedReplyMap[id]->success = true;
+                                                       source->uuidRangedReplyMap[id]->completed(source->uuidRangedReplyMap[id]);
+                                                       source->uuidRangedReplyMap.erase(id);
+                                               }
+                                               else
+                                               {
+                                                       DebugOut() << "getRanged methodReply has been recieved, without a request being in!. This is likely due to a request coming in after the timeout has elapsed.\n";
+                                               }
+                                               while (propertylist.size() > 0)
+                                               {
+                                                       
+                                                       AbstractPropertyType *type = propertylist.front();
+                                                       delete type;
+                                                       propertylist.pop_front();
+                                               }
+                                       }
+                                       json_reader_end_member(reader);
+                               }
+                               else if (name == "get")
+                               {
+                                       json_reader_read_member(reader,"data");
+                                       if (json_reader_is_object(reader))
+                                       {
+                                               DebugOut() << __SMALLFILE__ << ":" << __LINE__ << "Got \"GET\" event:" << pairdata.size()<<endl;
+                                               if (source->uuidReplyMap.find(id) != source->uuidReplyMap.end())
+                                               {
+                                                       json_reader_read_member(reader,"property");
+                                                       std::string property = json_reader_get_string_value(reader);
+                                                       json_reader_end_member(reader);
+                                                             
+                                                       json_reader_read_member(reader,"value");
+                                                       std::string value = json_reader_get_string_value(reader);
+                                                       json_reader_end_member(reader);
+                                                       
+                                                       json_reader_read_member(reader,"timestamp");
+                                                       std::string timestamp = json_reader_get_string_value(reader);
+                                                       json_reader_end_member(reader);
+                                                       
+                                                       
+                                                       json_reader_read_member(reader,"sequence");
+                                                       std::string sequence = json_reader_get_string_value(reader);
+                                                       json_reader_end_member(reader);
+                                                     
+                                                       AbstractPropertyType* v = VehicleProperty::getPropertyTypeForPropertyNameValue(property,value);
+                                                       v->timestamp = boost::lexical_cast<double,std::string>(timestamp);
+                                                       v->sequence = boost::lexical_cast<double,std::string>(sequence);
+                                                       if (source->uuidReplyMap.find(id) != source->uuidReplyMap.end())
+                                                       {
+                                                               source->uuidReplyMap[id]->value = v;
+                                                               source->uuidReplyMap[id]->success = true;
+                                                               source->uuidReplyMap[id]->completed(source->uuidReplyMap[id]);
+                                                               source->uuidReplyMap.erase(id);
+                                                               delete v;
+                                                       }
+                                                       else
+                                                       {
+                                                               DebugOut() << "get methodReply has been recieved, without a request being in!. This is likely due to a request coming in after the timeout has elapsed.\n";
+                                                       }
+                                               }
+                                       }
+                                       else
+                                       {
+                                               DebugOut() << __SMALLFILE__ << ":" << __LINE__ << "GET Method Reply INVALID! Multiple properties detected, only single are supported!!!" << "\n";
+                                       }
+                                       json_reader_end_member(reader);
+                                       //data will contain a property/value map.
+                               }
+                       }
+
+                       ///TODO: this will probably explode:
+                       //mlc: I agree with Kevron here, it does explode.
+                       //if(error) g_error_free(error);
+
+                       g_object_unref(reader);
+                       g_object_unref(parser);
+
+                       break;
+               }
+               case LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED:
+               {
+                       //printf("Requested extension: %s\n",(char*)in);
+                       return 0;
+                       break;
+               }
+               case LWS_CALLBACK_ADD_POLL_FD:
+               {
+                       //Add a FD to the poll list.
+                       GIOChannel *chan = g_io_channel_unix_new((int)(long)user);
+                       g_io_add_watch(chan,G_IO_IN,(GIOFunc)gioPollingFunc,0);
+                       g_io_add_watch(chan,G_IO_PRI,(GIOFunc)gioPollingFunc,0);
+                       break;
+               }
+               return 0;
+       }
+}
+void WebSocketSource::setSupported(PropertyList list)
+{
+       m_supportedProperties = list;
+       m_re->updateSupported(list,PropertyList());
+}
+
+WebSocketSource::WebSocketSource(AbstractRoutingEngine *re, map<string, string> config) : AbstractSource(re, config)
+{
+       clientConnected = false;
+       source = this;
+       m_re = re;  
+       context = libwebsocket_create_context(CONTEXT_PORT_NO_LISTEN, NULL,protocols, libwebsocket_internal_extensions,NULL, NULL, -1, -1, 0);
+
+       setConfiguration(config);
+       re->setSupported(supported(), this);
+
+       //printf("websocketsource loaded!!!\n");
+       g_timeout_add(1000,checkTimeouts,this); //Do this once per second, check for functions that have timed out and reply with success = false;
+
+}
+PropertyList WebSocketSource::supported()
+{
+       return m_supportedProperties;
+}
+
+int WebSocketSource::supportedOperations()
+{
+       /// TODO: need to do this correctly based on what the host supports.
+       return Get | Set;
+}
+
+string WebSocketSource::uuid()
+{
+       return "d293f670-f0b3-11e1-aff1-0800200c9a66";
+}
+
+void WebSocketSource::subscribeToPropertyChanges(VehicleProperty::Property property)
+{
+       //printf("Subscribed to property: %s\n",property.c_str());
+       queuedRequests.push_back(property);
+       if (clientConnected)
+       {
+               checkSubscriptions();
+       }
+}
+
+
+void WebSocketSource::unsubscribeToPropertyChanges(VehicleProperty::Property property)
+{
+       removeRequests.push_back(property);
+       if (clientConnected)
+       {
+               checkSubscriptions();
+       }
+}
+
+
+void WebSocketSource::getPropertyAsync(AsyncPropertyReply *reply)
+{
+       ///TODO: fill in
+       //s << "{\"type\":\"method\",\"name\":\"getSupportedEventTypes\",\"data\":[],\"transactionid\":\"" << "d293f670-f0b3-11e1-aff1-0800200c9a66" << "\"}";
+       //m_re->getPropertyAsync();
+       /*reply.value = 1;
+         reply->completed(reply);
+         reply->completed = [](AsyncPropertyReply* reply) {
+         DebugOut()<<"Velocity Async request completed: "<<reply->value->toString()<<endl;
+         delete reply;
+       };*/
+       //propertyReplyMap[reply->property] = reply;
+       std::string uuid = amb::createUuid();
+       uuidReplyMap[uuid] = reply;
+       uuidTimeoutMap[uuid] = amb::currentTime() + 10.0; ///TODO: 10 second timeout, make this configurable?
+       stringstream s;  
+       
+       s << "{\"type\":\"method\",\"name\":\"get\",\"data\":[\"" << reply->property << "\"],\"transactionid\":\"" << uuid << "\"}";
+       string replystr = s.str();
+       DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Reply:" << replystr <<endl;
+       //printf("Reply: %s\n",replystr.c_str());
+       char *new_response = new char[LWS_SEND_BUFFER_PRE_PADDING + strlen(replystr.c_str()) + LWS_SEND_BUFFER_POST_PADDING];
+       new_response+=LWS_SEND_BUFFER_PRE_PADDING;
+       strcpy(new_response,replystr.c_str());
+       libwebsocket_write(clientsocket, (unsigned char*)new_response, strlen(new_response), LWS_WRITE_TEXT);
+       delete (char*)(new_response-LWS_SEND_BUFFER_PRE_PADDING);
+}
+
+void WebSocketSource::getRangePropertyAsync(AsyncRangePropertyReply *reply)
+{
+       ///TODO: fill in
+       std::string uuid = amb::createUuid();
+       uuidRangedReplyMap[uuid] = reply;
+       uuidTimeoutMap[uuid] = amb::currentTime() + 60; ///TODO: 60 second timeout, make this configurable?
+       stringstream s;  
+       s << "{\"type\":\"method\",\"name\":\"getRange\",\"data\": {";
+       s << "\"timeBegin\":\"" << reply->timeBegin << "\",";
+       s << "\"timeEnd\":\"" << reply->timeEnd << "\",";
+       s << "\"sequenceBegin\":\"" << reply->sequenceBegin<< "\",";
+       s << "\"sequenceEnd\":\"" << reply->sequenceEnd << "\"}";
+       s<< ",\"transactionid\":\"" << uuid << "\"}";
+       string replystr = s.str();
+       DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Reply:" << replystr <<endl;
+       //printf("Reply: %s\n",replystr.c_str());
+       char *new_response = new char[LWS_SEND_BUFFER_PRE_PADDING + strlen(replystr.c_str()) + LWS_SEND_BUFFER_POST_PADDING];
+       new_response+=LWS_SEND_BUFFER_PRE_PADDING;
+       strcpy(new_response,replystr.c_str());
+       libwebsocket_write(clientsocket, (unsigned char*)new_response, strlen(new_response), LWS_WRITE_TEXT);
+       delete (char*)(new_response-LWS_SEND_BUFFER_PRE_PADDING);
+}
+
+AsyncPropertyReply * WebSocketSource::setProperty( AsyncSetPropertyRequest request )
+{
+       ///TODO: fill in
+               AsyncPropertyReply* reply = new AsyncPropertyReply(request);
+       reply->success = true;
+       stringstream s;
+       s << "{\"type\":\"method\",\"name\":\"set\",\"data\":[\"property\" : \"" << request.property << "\",\"value\" : \"" << request.value << "\"],\"transactionid\":\"" << "d293f670-f0b3-11e1-aff1-0800200c9a66" << "\"}";
+       string replystr = s.str();
+       DebugOut() << __SMALLFILE__ <<":"<< __LINE__ << "Reply:" << replystr << "\n";
+       //printf("Reply: %s\n",replystr.c_str());
+       char *new_response = new char[LWS_SEND_BUFFER_PRE_PADDING + strlen(replystr.c_str()) + LWS_SEND_BUFFER_POST_PADDING];
+       new_response+=LWS_SEND_BUFFER_PRE_PADDING;
+       strcpy(new_response,replystr.c_str());
+       libwebsocket_write(clientsocket, (unsigned char*)new_response, strlen(new_response), LWS_WRITE_TEXT);
+       delete (char*)(new_response-LWS_SEND_BUFFER_PRE_PADDING);
+       reply->completed(reply);
+       return reply;
+}
+
+extern "C" AbstractSource * create(AbstractRoutingEngine* routingengine, map<string, string> config)
+{
+       return new WebSocketSource(routingengine, config);
+
+}