]> pilppa.com Git - libplpdevicebus.git/commitdiff
initial implementation of libplpdevicebus client and server library
authorMika Laitio <mika.laitio@nokia.com>
Mon, 23 Jul 2012 15:18:35 +0000 (18:18 +0300)
committerMika Laitio <lamikr@pilppa.org>
Mon, 23 Jul 2012 15:23:40 +0000 (18:23 +0300)
Signed-off-by: Mika Laitio <lamikr@pilppa.org>
33 files changed:
.cproject [new file with mode: 0644]
.gitignore [new file with mode: 0644]
.project [new file with mode: 0644]
.settings/language.settings.xml [new file with mode: 0644]
.settings/org.eclipse.ltk.core.refactoring.prefs [new file with mode: 0644]
AUTHORS [new file with mode: 0644]
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0644]
INSTALL [new file with mode: 0644]
LICENSE.txt [new file with mode: 0644]
Makefile.am [new file with mode: 0644]
NEWS [new file with mode: 0644]
README [new file with mode: 0644]
autobuild.sh [new file with mode: 0755]
configure.ac [new file with mode: 0644]
libplpdevicebus_client.pc.in [new file with mode: 0644]
libplpdevicebus_server.pc.in [new file with mode: 0644]
src/Makefile.am [new file with mode: 0644]
src/Makefile.in [new file with mode: 0644]
src/plp/devicebus/DeviceBusMessageId.hh [new file with mode: 0644]
src_client/ClientListenerImpl.cc [new file with mode: 0644]
src_client/ClientListenerImpl.hh [new file with mode: 0644]
src_client/DeviceManagerClient.cc [new file with mode: 0644]
src_client/DeviceManagerClient.hh [new file with mode: 0644]
src_client/DeviceManagerController.cc [new file with mode: 0644]
src_client/DeviceManagerController.hh [new file with mode: 0644]
src_client/Makefile.am [new file with mode: 0644]
src_client/libplpdevicebus.la [new file with mode: 0644]
src_server/DeviceManagerServer.cc [new file with mode: 0644]
src_server/DeviceManagerServer.hh [new file with mode: 0644]
src_server/Makefile.am [new file with mode: 0644]
src_server/ServerListenerImpl.cc [new file with mode: 0644]
src_server/ServerListenerImpl.hh [new file with mode: 0644]

diff --git a/.cproject b/.cproject
new file mode 100644 (file)
index 0000000..67d81f7
--- /dev/null
+++ b/.cproject
@@ -0,0 +1,473 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+       <storageModule moduleId="org.eclipse.cdt.core.settings">
+               <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1197314700">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1197314700" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1197314700" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
+                                       <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1197314700." name="/" resourcePath="">
+                                               <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1864928771" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
+                                                       <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.693951810" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
+                                                       <builder buildPath="${workspace_loc:/libplpdevicebus}" enableAutoBuild="false" enableCleanBuild="true" enabledIncrementalBuild="true" id="cdt.managedbuild.target.gnu.builder.exe.debug.75526737" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
+                                                       <tool id="cdt.managedbuild.tool.gnu.archiver.base.532459675" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
+                                                       <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1103546535" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
+                                                               <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.2116807624" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+                                                               <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.818770153" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.617172525" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.941137148" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
+                                                               <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1635527309" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="gnu.c.compiler.exe.debug.option.debugging.level.1174881886" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.2085730901" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.2134309318" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
+                                                       <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1670710263" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1905544494" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.61232757" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.63739431" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                               </toolChain>
+                                       </folderInfo>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+                       <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+                       <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+               </cconfiguration>
+       </storageModule>
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+               <project id="nws-1wire.cdt.managedbuild.target.gnu.exe.1068375922" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
+       </storageModule>
+       <storageModule moduleId="scannerConfiguration">
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+                       <buildOutputProvider>
+                               <openAction enabled="true" filePath=""/>
+                               <parser enabled="true"/>
+                       </buildOutputProvider>
+                       <scannerInfoProvider id="specsFile">
+                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                               <parser enabled="true"/>
+                       </scannerInfoProvider>
+               </profile>
+               <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                       <buildOutputProvider>
+                               <openAction enabled="true" filePath=""/>
+                               <parser enabled="true"/>
+                       </buildOutputProvider>
+                       <scannerInfoProvider id="makefileGenerator">
+                               <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
+                               <parser enabled="true"/>
+                       </scannerInfoProvider>
+               </profile>
+               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+                       <buildOutputProvider>
+                               <openAction enabled="true" filePath=""/>
+                               <parser enabled="true"/>
+                       </buildOutputProvider>
+                       <scannerInfoProvider id="specsFile">
+                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                               <parser enabled="true"/>
+                       </scannerInfoProvider>
+               </profile>
+               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+                       <buildOutputProvider>
+                               <openAction enabled="true" filePath=""/>
+                               <parser enabled="true"/>
+                       </buildOutputProvider>
+                       <scannerInfoProvider id="specsFile">
+                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+                               <parser enabled="true"/>
+                       </scannerInfoProvider>
+               </profile>
+               <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+                       <buildOutputProvider>
+                               <openAction enabled="true" filePath=""/>
+                               <parser enabled="true"/>
+                       </buildOutputProvider>
+                       <scannerInfoProvider id="specsFile">
+                               <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+                               <parser enabled="true"/>
+                       </scannerInfoProvider>
+               </profile>
+               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+                       <buildOutputProvider>
+                               <openAction enabled="true" filePath=""/>
+                               <parser enabled="true"/>
+                       </buildOutputProvider>
+                       <scannerInfoProvider id="specsFile">
+                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
+                               <parser enabled="true"/>
+                       </scannerInfoProvider>
+               </profile>
+               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+                       <buildOutputProvider>
+                               <openAction enabled="true" filePath=""/>
+                               <parser enabled="true"/>
+                       </buildOutputProvider>
+                       <scannerInfoProvider id="specsFile">
+                               <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
+                               <parser enabled="true"/>
+                       </scannerInfoProvider>
+               </profile>
+               <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+                       <buildOutputProvider>
+                               <openAction enabled="true" filePath=""/>
+                               <parser enabled="true"/>
+                       </buildOutputProvider>
+                       <scannerInfoProvider id="specsFile">
+                               <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
+                               <parser enabled="true"/>
+                       </scannerInfoProvider>
+               </profile>
+               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1622260442;cdt.managedbuild.config.gnu.exe.release.1622260442.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.1185874448;cdt.managedbuild.tool.gnu.cpp.compiler.input.541154833">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="makefileGenerator">
+                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1197314700;cdt.managedbuild.config.gnu.exe.debug.1197314700.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.941137148;cdt.managedbuild.tool.gnu.c.compiler.input.2085730901">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"/>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="makefileGenerator">
+                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1197314700;cdt.managedbuild.config.gnu.exe.debug.1197314700.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1103546535;cdt.managedbuild.tool.gnu.cpp.compiler.input.617172525">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"/>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="makefileGenerator">
+                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1622260442;cdt.managedbuild.config.gnu.exe.release.1622260442.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.524603195;cdt.managedbuild.tool.gnu.c.compiler.input.573451085">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="makefileGenerator">
+                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+                               <buildOutputProvider>
+                                       <openAction enabled="true" filePath=""/>
+                                       <parser enabled="true"/>
+                               </buildOutputProvider>
+                               <scannerInfoProvider id="specsFile">
+                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
+                                       <parser enabled="true"/>
+                               </scannerInfoProvider>
+                       </profile>
+               </scannerConfigBuildInfo>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+</cproject>
diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..1eb556f
--- /dev/null
@@ -0,0 +1,3 @@
+*~
+m4
+autom4te.cache
diff --git a/.project b/.project
new file mode 100644 (file)
index 0000000..a2856ee
--- /dev/null
+++ b/.project
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>libplpdevicebus</name>
+       <comment></comment>
+       <projects>
+               <project>libplp</project>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <triggers>clean,full,incremental,</triggers>
+                       <arguments>
+                               <dictionary>
+                                       <key>?name?</key>
+                                       <value></value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.append_environment</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+                                       <value>all</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.buildArguments</key>
+                                       <value></value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.buildCommand</key>
+                                       <value>make</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.buildLocation</key>
+                                       <value>${workspace_loc:/nws-1wire}</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+                                       <value>clean</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.contents</key>
+                                       <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+                                       <value>false</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+                                       <value>all</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.stopOnError</key>
+                                       <value>true</value>
+                               </dictionary>
+                               <dictionary>
+                                       <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+                                       <value>true</value>
+                               </dictionary>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.core.ccnature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+       </natures>
+</projectDescription>
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
new file mode 100644 (file)
index 0000000..8d76e84
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project>
+       <configuration id="cdt.managedbuild.config.gnu.exe.debug.1197314700" name="Debug">
+               <extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
+                       <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
+                       <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
+               </extension>
+       </configuration>
+</project>
diff --git a/.settings/org.eclipse.ltk.core.refactoring.prefs b/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644 (file)
index 0000000..6e68364
--- /dev/null
@@ -0,0 +1,3 @@
+#Mon Nov 22 23:52:54 EET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..0af34e6
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+Mika Laitio <lamikr at pilppa dot org>
diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..b2f02dd
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,165 @@
+               GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..7d1c323
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,365 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+   Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+   The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package, generally using the just-built uninstalled binaries.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+   By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS
+     KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
+
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644 (file)
index 0000000..89e7b35
--- /dev/null
@@ -0,0 +1,5 @@
+lib1wire is library for communication between processes in one or many different devices
+Copyright (C) 2010 Mika Laitio <lamikr@pilppa.org>
+You can redistribute it and/or modify it under either the terms of the LGPL version 3
+(see COPYING.txt file), or by obtaining the license from the author.
+
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..18f2cd7
--- /dev/null
@@ -0,0 +1,30 @@
+SUBDIRS = src \
+               src_client \
+               src_server
+pkgconfigdir = $(libdir)/pkgconfig
+EXTRA_DIST = libplpdevicebus_client.pc.in \
+                       libplpdevicebus_server.pc.in
+pkgconfig_DATA = libplpdevicebus_client.pc \
+                       libplpdevicebus_server.pc 
+DISTCLEANFILES = \
+       aclocal.m4 \
+       config.h \
+       config.h.in \
+       config.log \
+       config.status \
+       config.cache \
+       config.guess \
+       config.sub \
+       configure \
+       depcomp \
+       install-sh \
+       libtool \
+       ltmain.sh \
+       Makefile.in \
+       Makefile \
+       missing \
+       stamp-h \
+       stamp-h1 \
+       compile \
+       autom4te.cache \
+       $(pkgconfig_DATA)
diff --git a/NEWS b/NEWS
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..1005216
--- /dev/null
+++ b/README
@@ -0,0 +1,20 @@
+License
+-------
+GNU LESSER GENERAL PUBLIC LICENSE (lgpl) version 3, for details see the COPYING file
+
+Introduction
+------------
+libplpdevicebus provides an client library for connecting to 
+
+Requirements
+------------
+- install omniORB and omniORB development libraries (version 4.1.4 used while developing the initial version)
+- install libplpbus
+- start omniNames name server (if problems try to edit /etc/omniorb/omniORB.cfg
+
+Build, install and clean-up
+---------------------------
+- build with command: ./autobuild.sh (generates required autoconf files)
+- install with command: make install
+- remove all generated build files before creating a new commit or patch: make maintainer-clean
+
diff --git a/autobuild.sh b/autobuild.sh
new file mode 100755 (executable)
index 0000000..81ccb79
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+PREFIX=${PREFIX:=/usr/local}
+
+if ! [ -d /lib64 ] ;
+then
+       LIBDIR=${LIBDIR:=$PREFIX/lib}
+else
+       LIBDIR=${LIBDIR:=$PREFIX/lib64}
+fi
+export PKG_CONFIG_PATH=$LIBDIR/pkgconfig:$PKG_CONFIG_PATH
+
+if ! [ -e Makefile ] ;
+then
+       echo "No Makefile available, generating it."
+       libtoolize --automake --force --copy
+       autoreconf --install
+        ./configure --prefix=$PREFIX --libdir=$LIBDIR
+else
+       echo "Makefile found, no need to generate it."
+fi
+make
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..83f04b2
--- /dev/null
@@ -0,0 +1,41 @@
+AC_INIT(src_client/ClientListenerImpl.cc)
+AM_CONFIG_HEADER(config.h)
+AC_CONFIG_MACRO_DIR([m4])
+
+PACKAGE=nws-1wire
+VERSION=0.1.0
+
+CFLAGS="$CFLAGS -ggdb -Wall -Werror"
+LDFLAGS="$LDFLAGS"
+AC_SUBST(CFLAGS)
+AC_SUBST(LDFLAGS)
+CXXFLAGS="$CXXFLAGS -ggdb -Wall -Werror"
+AC_SUBST(CXXFLAGS)
+AC_MSG_NOTICE([nws-1wire Makefile])
+
+AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+
+AC_PROG_CXX
+AC_STDC_HEADERS
+AC_PROG_LIBTOOL
+AC_PROG_INSTALL
+AM_PROG_CC_C_O
+
+PKG_PROG_PKG_CONFIG()
+
+PKG_CHECK_MODULES(SRC_SERVER, libplpbus lib1wire)
+AC_SUBST(SRC_SERVER_CFLAGS)
+AC_SUBST(SRC_SERVER_LIBS)
+
+PKG_CHECK_MODULES(SRC_CLIENT, libplpbus lib1wire)
+AC_SUBST(SRC_CLIENT_CFLAGS)
+AC_SUBST(SRC_CLIENT_LIBS)
+
+AC_OUTPUT([
+libplpdevicebus_client.pc
+libplpdevicebus_server.pc
+Makefile
+src/Makefile
+src_client/Makefile
+src_server/Makefile
+])
diff --git a/libplpdevicebus_client.pc.in b/libplpdevicebus_client.pc.in
new file mode 100644 (file)
index 0000000..36539ec
--- /dev/null
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libplpdevicebus_client
+Description: pilppa communication bus client library for devices
+Version: @VERSION@
+Requires: libplpbus
+Cflags: -I${includedir} -I${includedir}/plp/devicebus -I${includedir}/plp/devicebus/client
+Libs: -L${libdir} -lplpdevicebus_client
diff --git a/libplpdevicebus_server.pc.in b/libplpdevicebus_server.pc.in
new file mode 100644 (file)
index 0000000..bfb768a
--- /dev/null
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libplpdevicebus_server
+Description: pilppa communication bus server library for devices
+Version: @VERSION@
+Requires: libplpbus
+Cflags: -I${includedir} -I${includedir}/plp/devicebus -I${includedir}/plp/devicebus/server
+Libs: -L${libdir} -lplpdevicebus_server
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644 (file)
index 0000000..42b1e8b
--- /dev/null
@@ -0,0 +1 @@
+nobase_include_HEADERS = plp/devicebus/DeviceBusMessageId.hh
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644 (file)
index 0000000..d12e1cd
--- /dev/null
@@ -0,0 +1,472 @@
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = src
+DIST_COMMON = $(nobase_include_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(includedir)"
+HEADERS = $(nobase_include_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SRC_CLIENT_CFLAGS = @SRC_CLIENT_CFLAGS@
+SRC_CLIENT_LIBS = @SRC_CLIENT_LIBS@
+SRC_SERVER_CFLAGS = @SRC_SERVER_CFLAGS@
+SRC_SERVER_LIBS = @SRC_SERVER_LIBS@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+nobase_include_HEADERS = plp/devicebus/DeviceBusMessageId.hh
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu src/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-nobase_includeHEADERS: $(nobase_include_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
+       @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+       $(am__nobase_list) | while read dir files; do \
+         xfiles=; for file in $$files; do \
+           if test -f "$$file"; then xfiles="$$xfiles $$file"; \
+           else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
+         test -z "$$xfiles" || { \
+           test "x$$dir" = x. || { \
+             echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+             $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
+           echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
+           $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
+       done
+
+uninstall-nobase_includeHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+       $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+       dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(includedir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-nobase_includeHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-nobase_includeHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-nobase_includeHEADERS \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags uninstall uninstall-am uninstall-nobase_includeHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/plp/devicebus/DeviceBusMessageId.hh b/src/plp/devicebus/DeviceBusMessageId.hh
new file mode 100644 (file)
index 0000000..e7be23d
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * 1wire_messages.hh
+ *
+ *  Created on: Mar 2, 2011
+ *      Author: lamikr
+ */
+
+#ifndef DEVICEBUSMESSAGEID_HH_
+#define DEVICEBUSMESSAGEID_HH_
+
+#define W1_SERVER_NAME                         "nws_w1"
+#define MSG_TYPE_ID__GET_DEVICE_LIST           1
+#define MSG_TYPE_ID__GET_LATEST_DATA           2
+
+#define RSP__DEVICE_LIST__DEVICE_COUNT         "devcount"
+#define RSP__DEVICE_LIST__ID                   "id_"
+#define RSP__DEVICE_LIST__TYPE                 "type_"
+#define RSP__DEVICE_LIST__NAME                 "name_"
+#define RSP__DEVICE_LIST__LF_STATE             "lifecycle_state_"
+#define RSP__DEVICE_LIST__DATA                 "data_"
+
+#define REQ__GET_LATEST_DATA__ID               "id"
+
+#define RSP__GET_LATEST_DATA__DATE             "date"
+#define RSP__GET_LATEST_DATA__VALUE_COUNT      "count"
+#define RSP__GET_LATEST_DATA__VALUE            "value_"
+#define RSP__GET_LATEST_DATA__MIN_VALUE                "minvalue_"
+#define RSP__GET_LATEST_DATA__MAX_VALUE                "maxvalue_"
+
+#endif /* DEVICEBUSMESSAGEID_HH_ */
diff --git a/src_client/ClientListenerImpl.cc b/src_client/ClientListenerImpl.cc
new file mode 100644 (file)
index 0000000..5d83a0a
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * ClientListenerImpl.cc
+ *
+ *  Created on: Mar 4, 2011
+ *      Author: lamikr
+ */
+#include <plp/log.h>
+#include <plp/retval.h>
+
+#include "ClientListenerImpl.hh"
+#include "DeviceManagerClient.hh"
+#include "../src/plp/devicebus/DeviceBusMessageId.hh"
+
+using namespace plp;
+using namespace plpdevicebus;
+
+ClientListenerImpl::ClientListenerImpl(DeviceManagerClient *devman_param) {
+       _dev_man        = devman_param;
+}
+
+int ClientListenerImpl::response_received(const char *msg_rsp_param) {
+       log_debug("response_received(char *): %s\n", msg_rsp_param);
+       return 0;
+}
+
+int ClientListenerImpl::response_received(const BusMessage *msg_rsp_param) {
+       long    type;
+       int     err_flg;
+
+       log_debug("response_received()\n");
+       type    = ((BusMessage *)msg_rsp_param)->get_type(&err_flg);
+       if (err_flg == PLP_OK) {
+               switch(type) {
+                       default:
+                               log_warning("unhandled message received\n");
+                               ((BusMessage *)msg_rsp_param)->printout();
+                               break;
+               }
+       }
+       return 0;
+}
+
+int ClientListenerImpl::event_received(const char *event_param) {
+       log_debug("message: %s\n", event_param);
+       return 0;
+}
+
+int ClientListenerImpl::event_received(const BusMessage *event_param) {
+       log_debug("%lu\n", ((BusMessage *)event_param)->get_parameter_count());
+       return 0;
+}
diff --git a/src_client/ClientListenerImpl.hh b/src_client/ClientListenerImpl.hh
new file mode 100644 (file)
index 0000000..e0e4afa
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * ClientListenerImpl.hh
+ *
+ *  Created on: Mar 4, 2011
+ *      Author: lamikr
+ */
+
+#ifndef CLIENTLISTENERIMPL_HH_
+#define CLIENTLISTENERIMPL_HH_
+
+#include <plp/bus/BusMessage.hh>
+#include <plp/bus/BusClient.hh>
+
+#include "DeviceManagerClient.hh"
+
+using namespace plpbus;
+
+namespace plpdevicebus {
+       class ClientListenerImpl : public IClientListener
+       {
+               public:
+                       ClientListenerImpl(DeviceManagerClient *devman_param);
+                       virtual ~ClientListenerImpl() {}
+                       virtual int response_received(const char *msg_rsp_param);
+                       virtual int response_received(const BusMessage *msg_rsp_param);
+                       virtual int event_received(const char *event_param);
+                       virtual int event_received(const BusMessage *event_param);
+               private:
+                       DeviceManagerClient     *_dev_man;
+       };
+}
+
+#endif /* CLIENTLISTENERIMPL_HH_ */
diff --git a/src_client/DeviceManagerClient.cc b/src_client/DeviceManagerClient.cc
new file mode 100644 (file)
index 0000000..6fabbd5
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * DeviceManagerClient.cc
+ *
+ *  Created on: Mar 4, 2011
+ *      Author: lamikr
+ */
+#include <sstream>
+#include <string>
+
+#include <plp/log.h>
+#include <plp/retval.h>
+
+#include <plp/DeviceData.hh>
+
+#include "DeviceManagerClient.hh"
+#include "../src/plp/devicebus/DeviceBusMessageId.hh"
+
+using namespace std;
+using namespace plp;
+using namespace plpbus;
+using namespace plpdevicebus;
+
+DeviceManagerClient::DeviceManagerClient() {
+       _device_list    = NULL;
+}
+
+static void clean_device_list(list<Device *> *dev_lst) {
+       Device  *dev;
+
+       if (dev_lst != NULL) {
+               while (dev_lst->empty() == false) {
+                       dev     = dev_lst->back();
+                       dev_lst->pop_back();
+                       delete(dev);
+               }
+               delete(dev_lst);
+               dev_lst = NULL;
+       }
+}
+
+DeviceManagerClient::~DeviceManagerClient() {
+       clean_device_list(_device_list);
+}
+
+const std::list<plp::Device *> *DeviceManagerClient::get_device_list(BusClient *client_param) {
+       send_request__get_device_list(client_param);
+       return _device_list;
+}
+
+void DeviceManagerClient::send_request__get_device_list(BusClient *client_param) {
+       BusMessage      *msg_req;
+       BusMessage      *msg_rsp;
+
+       msg_rsp = NULL;
+       msg_req = new BusMessage(MSG_TYPE_ID__GET_DEVICE_LIST);
+       client_param->send_message_and_wait_response(msg_req, &msg_rsp);
+       clean_device_list(_device_list);
+       _device_list    = parse_device_list_msg(msg_rsp);
+       delete(msg_req);
+       delete(msg_rsp);
+}
+
+BusMessage *DeviceManagerClient::get_latest_data(BusClient *client_param, string device_id_param) {
+       BusMessage      *msg_req;
+       BusMessage      *msg_rsp;
+
+       msg_rsp = NULL;
+       msg_req = new BusMessage(MSG_TYPE_ID__GET_LATEST_DATA);
+       msg_req->add_string_parameter(REQ__GET_LATEST_DATA__ID, device_id_param.c_str());
+       client_param->send_message_and_wait_response(msg_req, &msg_rsp);
+       delete(msg_req);
+       return msg_rsp;
+}
+
+list<Device *> *DeviceManagerClient::parse_device_list_msg(BusMessage *msg_param) {
+       int                             ii;
+       long                            count;
+       int                             err_flg;
+       ostringstream                   key;
+       string                          id;
+       string                          name;
+       string                          type;
+       EnumDeviceLifeCycleStatus       state;
+       int                             state_i;
+       Device                          *dev;
+       list<Device *>                  *ret_val;
+
+       log_debug("parse_device_list_msg() started\n");
+       count   = msg_param->get_long_parameter(RSP__DEVICE_LIST__DEVICE_COUNT, &err_flg);
+       log_debug("count: %ld\n", count);
+       ret_val = new list<Device *>;
+       if (err_flg == PLP_OK) {
+               for (ii = 0; ii < count; ii++) {
+                       key.str("");
+                       key << RSP__DEVICE_LIST__ID << ii;
+                       id      = msg_param->get_string_parameter(key.str(), &err_flg);
+
+                       key.str("");
+                       key << RSP__DEVICE_LIST__NAME << ii;
+                       name    = msg_param->get_string_parameter(key.str(), &err_flg);
+
+                       key.str("");
+                       key << RSP__DEVICE_LIST__TYPE << ii;
+                       type    = msg_param->get_string_parameter(key.str(), &err_flg);
+
+                       key.str("");
+                       key << RSP__DEVICE_LIST__LF_STATE << ii;
+                       state_i = msg_param->get_int_parameter(key.str(), &err_flg);
+                       state   = (EnumDeviceLifeCycleStatus)state_i;
+
+                       dev     = new DeviceData(id, type, name, state);
+                       ret_val->push_back(dev);
+               }
+       }
+       return ret_val;
+}
diff --git a/src_client/DeviceManagerClient.hh b/src_client/DeviceManagerClient.hh
new file mode 100644 (file)
index 0000000..6eb0e0d
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * DeviceManagerClient.hh
+ *
+ *  Created on: Mar 4, 2011
+ *      Author: lamikr
+ */
+
+#ifndef W1DEVICEMANAGERCLIENT_HH_
+#define W1DEVICEMANAGERCLIENT_HH_
+
+#include <list>
+#include <string>
+
+#include <plp/bus/BusMessage.hh>
+#include <plp/bus/BusClient.hh>
+#include <plp/Device.hh>
+
+namespace plpdevicebus {
+       class DeviceManagerClient {
+               public:
+                       DeviceManagerClient();
+                       virtual ~DeviceManagerClient();
+                       const std::list<plp::Device *> *get_device_list(plpbus::BusClient *client_param);
+                       plpbus::BusMessage *get_latest_data(plpbus::BusClient *client_param, std::string device_id_param);
+               private:
+                       std::list<plp::Device *>        *_device_list;
+                       void send_request__get_device_list(plpbus::BusClient *client_param);
+                       list<plp::Device *> *parse_device_list_msg(plpbus::BusMessage *dev_list_msg_param);
+       };
+}
+
+#endif /* W1DEVICEMANAGERCLIENT_HH_ */
diff --git a/src_client/DeviceManagerController.cc b/src_client/DeviceManagerController.cc
new file mode 100644 (file)
index 0000000..c28712d
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * DeviceManagerController.cc
+ *
+ *  Created on: Mar 7, 2011
+ *      Author: lamikr
+ */
+#include <sstream>
+
+#include <plp/log.h>
+#include <plp/retval.h>
+#include <plp/bus/BusClient.hh>
+#include <plp/bus/BusMessage.hh>
+
+#include "DeviceManagerController.hh"
+#include "../src/plp/devicebus/DeviceBusMessageId.hh"
+
+using namespace std;
+using namespace plp;
+using namespace plpbus;
+using namespace plpdevicebus;
+
+DeviceManagerController::DeviceManagerController() {
+       int     err_flg;
+       string  server_name;
+
+       server_name     = W1_SERVER_NAME;
+       _dev_man        = NULL;
+       _lstnr          = NULL;
+       try {
+               _bus_client     = new BusClient();
+               err_flg         = _bus_client->init(server_name.c_str());
+               if (err_flg == 0) {
+                       _dev_man        = new DeviceManagerClient();
+                       _lstnr          = new ClientListenerImpl(_dev_man);
+                       err_flg         = _bus_client->add_client_listener(_lstnr);
+               }
+       }
+       catch(...) {
+               log_error("Exception catched\n");
+               _dev_man        = NULL;
+               _lstnr          = NULL;
+       }
+}
+
+DeviceManagerController::~DeviceManagerController() {
+       if (_dev_man != NULL) {
+               delete(_dev_man);
+       }
+       if (_bus_client != NULL) {
+               delete(_bus_client);
+       }
+       if (_lstnr != NULL) {
+               delete(_lstnr);
+       }
+}
+
+const std::list<plp::Device *> *DeviceManagerController::get_device_list() {
+       const list<Device *>    *ret_val;
+
+       try {
+               if (_dev_man != NULL) {
+                       ret_val = _dev_man->get_device_list(_bus_client);
+               }
+               else {
+                       ret_val = new list<Device *>;
+               }
+       }
+       catch(...) {
+               log_error("Could not get a device list\n");
+               ret_val = new list<Device *>;
+       }
+       return ret_val;
+}
+
+
+BusMessage *DeviceManagerController::get_latest_data(string device_id_param) {
+       BusMessage      *ret_val;
+
+       ret_val = NULL;
+       try {
+               if (_dev_man != NULL) {
+                       ret_val =_dev_man->get_latest_data(_bus_client, device_id_param);
+               }
+       }
+       catch(...) {
+               log_error("Could not get latest data\n");
+       }
+       return ret_val;
+}
diff --git a/src_client/DeviceManagerController.hh b/src_client/DeviceManagerController.hh
new file mode 100644 (file)
index 0000000..a147810
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * DeviceManagerController.hh
+ *
+ *  Created on: Mar 7, 2011
+ *      Author: lamikr
+ */
+
+#ifndef W1DEVICEMANAGERCONTROLLER_HH_
+#define W1DEVICEMANAGERCONTROLLER_HH_
+
+#include <plp/Device.hh>
+
+#include "DeviceManagerClient.hh"
+#include "ClientListenerImpl.hh"
+
+using namespace plpbus;
+
+namespace plpdevicebus {
+       class DeviceManagerController {
+               public:
+                       DeviceManagerController();
+                       virtual ~DeviceManagerController();
+                       const std::list<plp::Device *> *get_device_list();
+                       BusMessage *get_latest_data(std::string device_id_param);
+               private:
+                       DeviceManagerClient     *_dev_man;
+                       BusClient               *_bus_client;
+                       ClientListenerImpl      *_lstnr;
+       };
+}
+
+#endif /* W1DEVICEMANAGERCONTROLLER_HH_ */
diff --git a/src_client/Makefile.am b/src_client/Makefile.am
new file mode 100644 (file)
index 0000000..71b90d3
--- /dev/null
@@ -0,0 +1,19 @@
+lib_LTLIBRARIES = libplpdevicebus_client.la
+               
+libplpdevicebus_client_la_SOURCES = \
+               DeviceManagerClient.cc DeviceManagerClient.hh \
+               DeviceManagerController.cc DeviceManagerController.hh \
+               ClientListenerImpl.cc ClientListenerImpl.hh \
+               ../src/plp/devicebus/DeviceBusMessageId.hh
+libplpdevicebus_client_la_LDFLAGS = $(SRC_CLIENT_LIBS) $(all_libraries) -version-info 1:0:0 -no-undefined
+
+AM_CPPFLAGS = $(SRC_CLIENT_CFLAGS) \
+               -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\"
+
+DISTCLEANFILES = Makefile.in
+
+libplpdevicebus_clientincludedir=$(includedir)/plp/devicebus/client
+libplpdevicebus_clientinclude_HEADERS = \
+       DeviceManagerController.hh \
+       DeviceManagerClient.hh \
+       ClientListenerImpl.hh
diff --git a/src_client/libplpdevicebus.la b/src_client/libplpdevicebus.la
new file mode 100644 (file)
index 0000000..6026baa
--- /dev/null
@@ -0,0 +1,41 @@
+# libplpdevicebus.la - a libtool library file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libplpdevicebus.so.1'
+
+# Names of this library.
+library_names='libplpdevicebus.so.1.0.0 libplpdevicebus.so.1 libplpdevicebus.so'
+
+# The name of the static archive.
+old_library='libplpdevicebus.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -L/usr/local/lib64 /usr/local/lib64/libplpbus.la -lomniDynamic4 -lomniORB4 -lomnithread /usr/local/lib64/lib1wire.la /usr/local/lib64/libplp.la -lpthread -luci'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libplpdevicebus.
+current=1
+age=0
+revision=0
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/local/lib64'
diff --git a/src_server/DeviceManagerServer.cc b/src_server/DeviceManagerServer.cc
new file mode 100644 (file)
index 0000000..ffa688e
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * DeviceManager.cc
+ *
+ *  Created on: Mar 3, 2011
+ *      Author: lamikr
+ */
+#include <sstream>
+#include <typeinfo>
+
+#include <plp/log.h>
+#include <plp/retval.h>
+
+#include <plp/Data.hh>
+#include <plp/Device.hh>
+#include <plp/SensorDevice.hh>
+#include <plp/DeviceConfig.hh>
+
+#include "DeviceManagerServer.hh"
+#include "../src/plp/devicebus/DeviceBusMessageId.hh"
+
+using namespace plpdevicebus;
+
+static void *device_data_reader_thread(void *thread_args_pointer) {
+       list<Device *>                  *_dev_lst;
+       list<Device *>::iterator        list_iter;
+       Device                          *device;
+       SensorDevice                    *sensor;
+
+       _dev_lst        = (list<Device *> *)thread_args_pointer;
+       while(1) {
+               for (list_iter = _dev_lst->begin(); list_iter != _dev_lst->end(); list_iter++) {
+                       device  = (Device *)*list_iter;
+                       sensor = dynamic_cast<SensorDevice *>(device);
+                       if (sensor != NULL) {
+                               sensor->get_data();
+                               sleep(60);
+                       }
+               }
+       }
+       pthread_exit(NULL);
+}
+
+DeviceManagerServer::DeviceManagerServer(list<Device *> dev_lst_param) {
+       //DeviceConfig::set_base_dir_name(storage_dir_param);
+       //_dev_lst      = Factory::get_device_list();
+       _dev_lst        = dev_lst_param;
+       log_info("device count: %lu\n", _dev_lst.size());
+       _lstnr_thrd     = 0;
+       pthread_create(&_lstnr_thrd,
+                       NULL,
+                       device_data_reader_thread,
+                       (void *)&_dev_lst);
+}
+
+DeviceManagerServer::~DeviceManagerServer() {
+}
+
+void DeviceManagerServer::get_device_list(const BusMessage *ret_val) {
+       Data                            *data;
+       list<Device *>::iterator        list_iter;
+       Device                          *device;
+       SensorDevice                    *sensor;
+       int                             indx;
+       ostringstream                   key;
+
+       indx    = 0;
+       ((BusMessage *)ret_val)->add_int_parameter(RSP__DEVICE_LIST__DEVICE_COUNT, _dev_lst.size());
+       for (list_iter = _dev_lst.begin(); list_iter != _dev_lst.end(); list_iter++) {
+               device  = (Device *)*list_iter;
+               if (device != NULL) {
+                       key.str("");
+                       key << RSP__DEVICE_LIST__ID << indx;
+                       ((BusMessage *)ret_val)->add_string_parameter(key.str(), device->get_id());
+
+                       key.str("");
+                       key << RSP__DEVICE_LIST__NAME << indx;
+                       ((BusMessage *)ret_val)->add_string_parameter(key.str(), device->get_name());
+
+                       key.str("");
+                       key << RSP__DEVICE_LIST__TYPE << indx;
+                       ((BusMessage *)ret_val)->add_string_parameter(key.str(), device->get_type());
+
+                       key.str("");
+                       key << RSP__DEVICE_LIST__LF_STATE << indx;
+                       ((BusMessage *)ret_val)->add_int_parameter(key.str(), device->get_lifecycle_state());
+                       sensor = dynamic_cast<SensorDevice *>(device);
+                       if (sensor != NULL) {
+                               key.str("");
+                               key << RSP__DEVICE_LIST__DATA << indx;
+                               data    = sensor->get_data();
+                               if (data != NULL) {
+                                       log_debug("returning data: %s\n", data->to_string().c_str());
+                                       ((BusMessage *)ret_val)->add_string_parameter(key.str(), data->to_string());
+                               }
+                       }
+                       indx++;
+               }
+       }
+}
+
+const Device *DeviceManagerServer::get_device_by_id(string id_param) {
+       Device                  *ret_val;
+       Device                  *device;
+       list<Device *>::iterator list_iter;
+
+       ret_val = NULL;
+       for(list_iter = _dev_lst.begin(); list_iter != _dev_lst.end(); list_iter++) {
+               device  = (Device *)*list_iter;
+               if (device != NULL) {
+                       if (device->get_id().compare(id_param) == 0) {
+                               ret_val = device;
+                               break;
+                       }
+               }
+       }
+       return ret_val;
+}
+
+static void add_data_values_to_bus_message(const BusMessage *msg_rsp_param, Data *data, string key_name_base_param) {
+       int             ii;
+       int             cnt;
+       double          val;
+       ostringstream   key;
+
+       cnt     = data->get_value_count();
+       for (ii = 0; ii < cnt; ii++) {
+               key.str("");
+               key << key_name_base_param.c_str() << ii;
+               val     = data->get(ii);
+               ((BusMessage *)msg_rsp_param)->add_double_parameter(key.str(), val);
+       }
+}
+
+void DeviceManagerServer::get_latest_data(BusMessage *msg_req_param, const BusMessage *ret_val) {
+       string                  id;
+       int                     err_flg;
+       Device                  *dev;
+       SensorDevice            *sensor;
+       Data                    *data;
+       ostringstream           key;
+       int                     cnt;
+       const DataReader        *reader;
+       DataRange               *dr;
+
+       id      = msg_req_param->get_string_parameter(REQ__GET_LATEST_DATA__ID, &err_flg);
+       if (err_flg == PLP_OK) {
+               dev     = (Device *)get_device_by_id(id);
+               if (dev != NULL) {
+                       sensor  = dynamic_cast<SensorDevice *>(dev);
+                       if (sensor != NULL) {
+                               reader  = sensor->get_device_data();
+                               data    = ((DataReader *)reader)->get_latest_data();
+                               if (data != NULL) {
+                                       cnt     = data->get_value_count();
+                                       ((BusMessage *)ret_val)->add_int_parameter(RSP__GET_LATEST_DATA__VALUE_COUNT, cnt);
+                                       ((BusMessage *)ret_val)->add_string_parameter(RSP__GET_LATEST_DATA__DATE, data->get_date().to_string());
+                                       add_data_values_to_bus_message(ret_val, data, RSP__GET_LATEST_DATA__VALUE);
+                                       ((BusMessage *)ret_val)->printout();
+                                       dr      = ((DataReader *)reader)->get_daily_summary(MIN);
+                                       if (dr != NULL) {
+                                               if (dr->get_count() > 0) {
+                                                       data    = dr->get_first()->clone();;
+                                                       add_data_values_to_bus_message(ret_val, data, RSP__GET_LATEST_DATA__MIN_VALUE);
+                                               }
+                                               delete(dr);
+                                       }
+                                       dr      = ((DataReader *)reader)->get_daily_summary(MAX);
+                                       if (dr != NULL) {
+                                               if (dr->get_count() > 0) {
+                                                       data    = dr->get_first()->clone();
+                                                       add_data_values_to_bus_message(ret_val, data, RSP__GET_LATEST_DATA__MAX_VALUE);
+                                               }
+                                               delete(dr);
+                                       }
+                               }
+                       }
+               }
+       }
+}
diff --git a/src_server/DeviceManagerServer.hh b/src_server/DeviceManagerServer.hh
new file mode 100644 (file)
index 0000000..057432b
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * W1DeviceManager.hh
+ *
+ *  Created on: Mar 3, 2011
+ *      Author: lamikr
+ */
+
+#ifndef DEVICEMANAGERSERVER_HH_
+#define DEVICEMANAGERSERVER_HH_
+
+#include <list>
+
+#include <sys/wait.h>
+#include <pthread.h>
+
+#include <plp/Device.hh>
+#include <plp/bus/BusMessage.hh>
+#include <plp/DeviceConfig.hh>
+
+using namespace plp;
+using namespace plpbus;
+
+namespace plpdevicebus {
+       class DeviceManagerServer {
+               public:
+                       DeviceManagerServer(list<Device *> dev_lst_param);
+                       virtual ~DeviceManagerServer();
+                       void get_device_list(const BusMessage *msq_rsp_param);
+                       void get_latest_data(BusMessage *msg_req_param, const BusMessage *msq_rsp_param);
+                       //void *device_data_reader_thread(void *thread_args_pointer);
+               private:
+                       std::list<plp::Device *>        _dev_lst;
+                       pthread_t       _lstnr_thrd;
+                       const Device *get_device_by_id(std::string id_param);
+
+       };
+}
+
+#endif /* DEVICEMANAGERSERVER_HH_ */
diff --git a/src_server/Makefile.am b/src_server/Makefile.am
new file mode 100644 (file)
index 0000000..d68af69
--- /dev/null
@@ -0,0 +1,17 @@
+lib_LTLIBRARIES = libplpdevicebus_server.la
+               
+libplpdevicebus_server_la_SOURCES = \
+               DeviceManagerServer.cc DeviceManagerServer.hh \
+               ServerListenerImpl.cc ServerListenerImpl.hh \
+               ../src/plp/devicebus/DeviceBusMessageId.hh
+libplpdevicebus_server_la_LDFLAGS = $(SRC_CLIENT_LIBS) $(all_libraries) -version-info 1:0:0 -no-undefined
+
+AM_CPPFLAGS = $(SRC_CLIENT_CFLAGS) \
+               -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\"
+
+DISTCLEANFILES = Makefile.in
+
+libplpdevicebus_serverincludedir=$(includedir)/plp/devicebus/server
+libplpdevicebus_serverinclude_HEADERS = \
+       DeviceManagerServer.hh \
+       ServerListenerImpl.hh
diff --git a/src_server/ServerListenerImpl.cc b/src_server/ServerListenerImpl.cc
new file mode 100644 (file)
index 0000000..a63a7af
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * ServerListenerImpl.cc
+ *
+ *  Created on: Mar 3, 2011
+ *      Author: lamikr
+ */
+#include <string.h>
+
+#include <plp/log.h>
+#include <plp/retval.h>
+#include "ServerListenerImpl.hh"
+#include "../src/plp/devicebus/DeviceBusMessageId.hh"
+
+using namespace plpdevicebus;
+
+ServerListenerImpl::ServerListenerImpl(DeviceManagerServer *dev_man_param) {
+       _dev_man        = dev_man_param;
+}
+
+int ServerListenerImpl::request_received(const char *msg_req_param, const char **msg_rsp_param) {
+       log_debug("request_received(char *%s)\n", msg_req_param);
+       *msg_rsp_param = strdup("jee");
+       return 0;
+}
+
+int ServerListenerImpl::request_received(const BusMessage *msg_req_param, const BusMessage *msg_rsp_param) {
+       int     err_flg;
+       long    type_id;
+       int     ret_val;
+
+       ret_val         = -1;
+       type_id         = ((BusMessage *)msg_req_param)->get_type(&err_flg);
+       if (err_flg == PLP_OK) {
+               log_debug("request_received, type_id: %ld\n", type_id);
+               switch(type_id) {
+                       case MSG_TYPE_ID__GET_DEVICE_LIST:
+                               log_debug("get device list request handling started\n");
+                               _dev_man->get_device_list(msg_rsp_param);
+                               ret_val         = 0;
+                               break;
+                       case MSG_TYPE_ID__GET_LATEST_DATA:
+                               log_debug("get latest data request handling started\n");
+                               _dev_man->get_latest_data((BusMessage *)msg_req_param, msg_rsp_param);
+                               ret_val         = 0;
+                               break;
+                       default:
+                               log_debug("unknown message type-id received: %ld\n", type_id);
+                               break;
+               }
+       }
+       return ret_val;
+}
diff --git a/src_server/ServerListenerImpl.hh b/src_server/ServerListenerImpl.hh
new file mode 100644 (file)
index 0000000..0c06ee4
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * ServerListenerImpl.hh
+ *
+ *  Created on: Mar 3, 2011
+ *      Author: lamikr
+ */
+
+#ifndef SERVERLISTENERIMPL_HH_
+#define SERVERLISTENERIMPL_HH_
+
+#include <plp/bus/IServerListener.hh>
+#include <plp/bus/BusMessage.hh>
+
+#include "DeviceManagerServer.hh"
+
+namespace plpdevicebus {
+       class ServerListenerImpl : public plpbus::IServerListener
+       {
+               public:
+                       ServerListenerImpl(DeviceManagerServer *dev_man_param);
+                       virtual ~ServerListenerImpl() {}
+                       virtual int request_received(const char *msg_req, const char **msg_rsp);
+                       virtual int request_received(const plpbus::BusMessage *msg_req, const plpbus::BusMessage *msg_rsp);
+               private:
+                       DeviceManagerServer     *_dev_man;
+       };
+}
+
+#endif /* SERVERLISTENERIMPL_HH_ */