From: Mika Laitio Date: Mon, 23 Jul 2012 15:18:35 +0000 (+0300) Subject: initial implementation of libplpdevicebus client and server library X-Git-Url: http://pilppa.org/gitweb/?p=libplpdevicebus.git;a=commitdiff_plain;h=6337d32449f861d5ef8c23779ca919e0c14603c5 initial implementation of libplpdevicebus client and server library Signed-off-by: Mika Laitio --- 6337d32449f861d5ef8c23779ca919e0c14603c5 diff --git a/.cproject b/.cproject new file mode 100644 index 0000000..67d81f7 --- /dev/null +++ b/.cproject @@ -0,0 +1,473 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1eb556f --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*~ +m4 +autom4te.cache diff --git a/.project b/.project new file mode 100644 index 0000000..a2856ee --- /dev/null +++ b/.project @@ -0,0 +1,84 @@ + + + libplpdevicebus + + + libplp + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/nws-1wire} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml new file mode 100644 index 0000000..8d76e84 --- /dev/null +++ b/.settings/language.settings.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.settings/org.eclipse.ltk.core.refactoring.prefs b/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000..6e68364 --- /dev/null +++ b/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -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 index 0000000..0af34e6 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Mika Laitio diff --git a/COPYING b/COPYING new file mode 100644 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. + 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 index 0000000..e69de29 diff --git a/INSTALL b/INSTALL new file mode 100644 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 `' 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 index 0000000..89e7b35 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,5 @@ +lib1wire is library for communication between processes in one or many different devices +Copyright (C) 2010 Mika Laitio +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 index 0000000..18f2cd7 --- /dev/null +++ b/Makefile.am @@ -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 index 0000000..e69de29 diff --git a/README b/README new file mode 100644 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 index 0000000..81ccb79 --- /dev/null +++ b/autobuild.sh @@ -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 index 0000000..83f04b2 --- /dev/null +++ b/configure.ac @@ -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 index 0000000..36539ec --- /dev/null +++ b/libplpdevicebus_client.pc.in @@ -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 index 0000000..bfb768a --- /dev/null +++ b/libplpdevicebus_server.pc.in @@ -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 index 0000000..42b1e8b --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1 @@ +nobase_include_HEADERS = plp/devicebus/DeviceBusMessageId.hh diff --git a/src/Makefile.in b/src/Makefile.in new file mode 100644 index 0000000..d12e1cd --- /dev/null +++ b/src/Makefile.in @@ -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 index 0000000..e7be23d --- /dev/null +++ b/src/plp/devicebus/DeviceBusMessageId.hh @@ -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 index 0000000..5d83a0a --- /dev/null +++ b/src_client/ClientListenerImpl.cc @@ -0,0 +1,51 @@ +/* + * ClientListenerImpl.cc + * + * Created on: Mar 4, 2011 + * Author: lamikr + */ +#include +#include + +#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 index 0000000..e0e4afa --- /dev/null +++ b/src_client/ClientListenerImpl.hh @@ -0,0 +1,33 @@ +/* + * ClientListenerImpl.hh + * + * Created on: Mar 4, 2011 + * Author: lamikr + */ + +#ifndef CLIENTLISTENERIMPL_HH_ +#define CLIENTLISTENERIMPL_HH_ + +#include +#include + +#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 index 0000000..6fabbd5 --- /dev/null +++ b/src_client/DeviceManagerClient.cc @@ -0,0 +1,116 @@ +/* + * DeviceManagerClient.cc + * + * Created on: Mar 4, 2011 + * Author: lamikr + */ +#include +#include + +#include +#include + +#include + +#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 *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 *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 *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 *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; + 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 index 0000000..6eb0e0d --- /dev/null +++ b/src_client/DeviceManagerClient.hh @@ -0,0 +1,32 @@ +/* + * DeviceManagerClient.hh + * + * Created on: Mar 4, 2011 + * Author: lamikr + */ + +#ifndef W1DEVICEMANAGERCLIENT_HH_ +#define W1DEVICEMANAGERCLIENT_HH_ + +#include +#include + +#include +#include +#include + +namespace plpdevicebus { + class DeviceManagerClient { + public: + DeviceManagerClient(); + virtual ~DeviceManagerClient(); + const std::list *get_device_list(plpbus::BusClient *client_param); + plpbus::BusMessage *get_latest_data(plpbus::BusClient *client_param, std::string device_id_param); + private: + std::list *_device_list; + void send_request__get_device_list(plpbus::BusClient *client_param); + list *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 index 0000000..c28712d --- /dev/null +++ b/src_client/DeviceManagerController.cc @@ -0,0 +1,89 @@ +/* + * DeviceManagerController.cc + * + * Created on: Mar 7, 2011 + * Author: lamikr + */ +#include + +#include +#include +#include +#include + +#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 *DeviceManagerController::get_device_list() { + const list *ret_val; + + try { + if (_dev_man != NULL) { + ret_val = _dev_man->get_device_list(_bus_client); + } + else { + ret_val = new list; + } + } + catch(...) { + log_error("Could not get a device list\n"); + ret_val = new list; + } + 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 index 0000000..a147810 --- /dev/null +++ b/src_client/DeviceManagerController.hh @@ -0,0 +1,32 @@ +/* + * DeviceManagerController.hh + * + * Created on: Mar 7, 2011 + * Author: lamikr + */ + +#ifndef W1DEVICEMANAGERCONTROLLER_HH_ +#define W1DEVICEMANAGERCONTROLLER_HH_ + +#include + +#include "DeviceManagerClient.hh" +#include "ClientListenerImpl.hh" + +using namespace plpbus; + +namespace plpdevicebus { + class DeviceManagerController { + public: + DeviceManagerController(); + virtual ~DeviceManagerController(); + const std::list *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 index 0000000..71b90d3 --- /dev/null +++ b/src_client/Makefile.am @@ -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 index 0000000..6026baa --- /dev/null +++ b/src_client/libplpdevicebus.la @@ -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 index 0000000..ffa688e --- /dev/null +++ b/src_server/DeviceManagerServer.cc @@ -0,0 +1,179 @@ +/* + * DeviceManager.cc + * + * Created on: Mar 3, 2011 + * Author: lamikr + */ +#include +#include + +#include +#include + +#include +#include +#include +#include + +#include "DeviceManagerServer.hh" +#include "../src/plp/devicebus/DeviceBusMessageId.hh" + +using namespace plpdevicebus; + +static void *device_data_reader_thread(void *thread_args_pointer) { + list *_dev_lst; + list::iterator list_iter; + Device *device; + SensorDevice *sensor; + + _dev_lst = (list *)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(device); + if (sensor != NULL) { + sensor->get_data(); + sleep(60); + } + } + } + pthread_exit(NULL); +} + +DeviceManagerServer::DeviceManagerServer(list 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::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(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::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(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 index 0000000..057432b --- /dev/null +++ b/src_server/DeviceManagerServer.hh @@ -0,0 +1,39 @@ +/* + * W1DeviceManager.hh + * + * Created on: Mar 3, 2011 + * Author: lamikr + */ + +#ifndef DEVICEMANAGERSERVER_HH_ +#define DEVICEMANAGERSERVER_HH_ + +#include + +#include +#include + +#include +#include +#include + +using namespace plp; +using namespace plpbus; + +namespace plpdevicebus { + class DeviceManagerServer { + public: + DeviceManagerServer(list 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 _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 index 0000000..d68af69 --- /dev/null +++ b/src_server/Makefile.am @@ -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 index 0000000..a63a7af --- /dev/null +++ b/src_server/ServerListenerImpl.cc @@ -0,0 +1,52 @@ +/* + * ServerListenerImpl.cc + * + * Created on: Mar 3, 2011 + * Author: lamikr + */ +#include + +#include +#include +#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 index 0000000..0c06ee4 --- /dev/null +++ b/src_server/ServerListenerImpl.hh @@ -0,0 +1,29 @@ +/* + * ServerListenerImpl.hh + * + * Created on: Mar 3, 2011 + * Author: lamikr + */ + +#ifndef SERVERLISTENERIMPL_HH_ +#define SERVERLISTENERIMPL_HH_ + +#include +#include + +#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_ */