10 Commits

85 changed files with 1173332 additions and 412455 deletions

276
+ Normal file
View File

@@ -0,0 +1,276 @@
### psi specific - select compiler
#source <this_autogen_file> <facility> <target_language>
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/7.3.0
### psi specific - end
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
/opt/gfa/python-3.7/latest/bin/libtoolize --force --copy #select libtools 2.4.6
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#autoreconf not wanted
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.14.1"
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
RETURN_ON_WRONG_INPUT=true
RETURN_FLAG=false
EPICS_BASE=$(readlink ${EPICS}/base)
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
if [ -z "$EPICS_BASE" ]
then
EPICS_BASE='base-7.4.1' #7.0 = 7+0 = 7 for major release
fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
FACILITY=$(echo "$1" | tr '[:upper:]' '[:lower:]')
CACLIENT=$(echo "$2" | tr '[:upper:]' '[:lower:]')
FACILITY_DEFAULT="sf"
CACLIENT_DEFAULT="python"
FACILITY_TEMP=""
CACLIENT_TEMP=""
echo 'input arg. facility/target' $FACILITY $CACLIENT
if [ -n "$FACILITY" ]
then
if [ "$FACILITY" = "matlab" ] || [ "$FACILITY" = "python" ] || \
[ "$FACILITY" = "py37" ] || [ "$FACILITY" = "py35" ] || \
[ "$FACILITY" = "julia" ] || [ "$FACILITY" = "cpp" ] || \
[ "$FACILITY" = "cc" ]
then
CACLIENT_TEMP=$FACILITY
FACILITY_TEMP=$2
fi
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "sls" ] || [ "$CACLIENT" = "sls2" ] || \
[ "$CACLIENT" = "sf" ] || [ "$CACLIENT" = "swissfel" ] || \
[ "$CACLIENT" = "sfel" ] || [ "$CACLIENT" = "hipa" ]
then
if [ -z $FACILITY_TEMP ]
then
FACILITY_TEMP=$CACLIENT
CACLIENT_TEMP=$1
fi
fi
fi
if [ -z "$FACILITY" ]
then
FACILITY="sf"
echo "FACILITY = " $FACILITY
if [ -z $CACLIENT ]
then
CACLIENT=$CACLIENT_DEFAULT
fi
elif [ "$FACILITY" = "sls" ] || [ "$FACILITY" = "sls2" ] || \
[ "$FACILITY" = "sf" ] || [ "$FACILITY" = "swissfel" ] || \
[ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "hipa" ]
then
echo "FACILITY = " $FACILITY
elif [ -n "$FACILITY_TEMP" ]
then
if [ "$FACILITY_TEMP" = "sls" ] || [ "$FACILITY_TEMP" = "sls2" ] || \
[ "$FACILITY_TEMP" = "sf" ] || [ "$FACILITY_TEMP" = "swissfel" ] || \
[ "$FACILITY_TEMP" = "sfel" ] || [ "$FACILITY_TEMP" = "hipa" ]
then
FACILITY=$FACILITY_TEMP
else
if [ -n "$2" ]
then
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
fi
echo "***OTHERWISE THE DEFAULT FACILITY IS:" $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT FACILITY IS: " $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "matlab" ] || [ "$CACLIENT" = "python" ] || \
[ "$CACLIENT" = "py37" ] || [ "$CACLIENT" = "py35" ] || \
[ "$CACLIENT" = "julia" ] || [ "$CACLIENT" = "cpp" ] || \
[ "$CACLIENT" = "cc" ]
then
echo "CA TARGET = " $CACLIENT
else
if [ -n "$CACLIENT_TEMP" ]
then
if [ "$CACLIENT_TEMP" = "matlab" ] || [ "$CACLIENT_TEMP" = "python" ] || \
[ "$CACLIENT_TEMP" = "py37" ] || [ "$CACLIENT_TEMP" = "py35" ] || \
[ "$CACLIENT_TEMP" = "julia" ] || [ "$CACLIENT_TEMP" = "cpp" ] || \
[ "$CACLIENT_TEMP" = "cc" ]
then
CACLIENT=$CACLIENT_TEMP
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
fi
else
CACLIENT=$CACLIENT_DEFAULT
fi
if [ $RETURN_ON_WRONG_INPUT = true ] ; then
if [ $RETURN_FLAG = true ] ; then
return 1 2>/dev/null
exit 1
fi
fi
echo "FACILITY SELECTED = " $FACILITY
echo "CA TARGET SELECTED = " $CACLIENT
ENABLE_OPTIONS="--enable-boost-inc"
if [ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "swissfel" ]
then
FACILITY="sf"
fi
if [ "$CACLIENT" = "python" ] || [ "$CACLIENT" = "julia" ]
then
CACLIENT="py37"
fi
if [ "$FACILITY" = "sls2" ]
then
ENABLE_OPTIONS+=" --enable-epics7"
CAFE_V+="-sls2"
else
ENABLE_OPTIONS+=" --enable-epics3"
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-sf"
fi
fi
if [ "$CACLIENT" = "py35" ]
then
ENABLE_OPTIONS+=" --enable-python35"
ENABLE_OPTIONS+=" --enable-qt4"
CAFE_V+="-py35"
elif [ "$CACLIENT" = "py37" ]
then
ENABLE_OPTIONS+=" --enable-python37"
ENABLE_OPTIONS+=" --enable-qt5"
CAFE_V+="-py37"
#else
#ENABLE_OPTIONS+=" --enable-qt5"
fi
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
#rm -f src/PyCafe.cpp
#ln -s PyCafe3.cpp src/PyCafe.cpp
ENABLE_OPTIONS+=" --enable-json"
ENABLE_OPTIONS+=" --enable-zeromq"
ENABLE_OPTIONS+=" --enable-curl"
ENABLE_OPTIONS+=" --enable-lz4"
#else
#rm -f src/PyCafe.cpp
#ln -s PyCafe_sls.cpp src/PyCafe.cpp
fi
CAFE_V+="-gcc-"$GCC_VERSION
echo "CAFE VERSION: $CAFE_V"
#echo 'EPICS BASE IS='$EPICS_BASE
#echo 'EPICS BASE DIR='${EPICS}/base-7.0.4.1
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-epics7=${EPICS}/base-7.0.4.1 \
--with-epics3=${EPICS}/base \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-json=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/opt/gfa/zmq/curl-7.55.1 \
--with-lz4=/opt/gfa/zmq/lz4/lib
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

15
INSTALL
View File

@@ -1,8 +1,8 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
@@ -226,6 +226,11 @@ order to use an ANSI C compiler:
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
HP-UX `make' updates targets which have the same time stamps as
their prerequisites, which makes it generally unusable when shipped
generated files such as `configure' are involved. Use GNU `make'
instead.
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
@@ -304,9 +309,10 @@ 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:
an Autoconf limitation. Until the limitation is lifted, you can use
this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
@@ -362,4 +368,3 @@ operates.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.

30
README
View File

@@ -4,8 +4,17 @@ autogen_rel_py3_noqt.sh ==> generates library for use from within python and C
autogen_rel_noqt.sh ==> generates library for building a mex file (remove Qt4 dependence as matlab requires Qt5)
autogen_rel.sh ==> normal c++ release
##
Libraries are only made available when the appropriate is enabld
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
##
## --------------------------------------------------------------------------
## autogen.sh
##
@@ -16,18 +25,21 @@ autogen_rel.sh ==> normal c++ release
## installed
## --with-boost: base directory for the boost header files
## --with-epics: epics top level directory
## Note that configure.ac assume that the architecture is
## base/lib/${EPICS_HOST_ARCH}
## --with-qt-inc Qt include directory (optional)
## --with-qt-lib Qt lib directory (optional)
## --with-python-inc Python include directory, if building PyCafe
## --with-python-lib Python lib directory, if bulding PyCafe
## --with-epics7: epics7 top level directory
## --with-epics3: epics3 top level directory
## Note that configure.ac assume that the architecture is
## base/lib/${EPICS_HOST_ARCH}
## --with-qt5: Qt5 base directory (optional)
## --with-python37: Python 3.7 directory, if building PyCafe
## --with-python35: Python 3.5 directory, if bulding PyCafe
## Remaining libraries are specific to swissfel zmq streams
## --------------------------------------------------------------------------
1) Modify autogen.sh according to above
2) 'source autogen.sh'
3) 'make install' This installs cafe headers/libraries to the directories
3) 'make'
4) 'make install' This installs cafe headers/libraries to the directories
specified by --prefix/--libdir in the above

86
autogen.sh Normal file
View File

@@ -0,0 +1,86 @@
### psi specific - select compiler
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f src/PyCafe.cpp
ln -s PyCafe_sls.cpp src/PyCafe.cpp
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
/opt/gfa/python-3.7/latest/bin/libtoolize --force --copy #select libtools 2.4.6
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.13.0"
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
echo 'darwin' $CAFE_HOST_FLAG_DARWIN
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
EPICS_BASE=$(readlink ${EPICS}/base)
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
if [ -z "$EPICS_BASE" ]
then
EPICS_BASE='base-7.4.1' #7.0 = 7+0 = 7 for major release
fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
ENABLE_OPTIONS="--enable-boost-inc"
ENABLE_OPTIONS+=" --enable-epics3"
#ENABLE_OPTIONS+=" --enable-epics7"
ENABLE_OPTIONS+=" --enable-qt5"
#ENABLE_OPTIONS+=" --enable-qt4"
ENABLE_OPTIONS+=" --enable-python37"
#ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-epics7=${EPICS}/base-7.0.4.1 \
--with-epics3=${EPICS}/base \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-json=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/opt/gfa/zmq/curl-7.55.1 \
--with-lz4=/opt/gfa/zmq/lz4/lib
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

293
autogen_psi.sh Normal file
View File

@@ -0,0 +1,293 @@
### psi specific - select compiler
#source <this_autogen_file> <facility> <target_language>
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/9.3.0
### psi specific - end
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
/opt/gfa/python-3.7/latest/bin/libtoolize --force --copy #select libtools 2.4.6
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#autoreconf not wanted
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.14.4"
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
RETURN_ON_WRONG_INPUT=true
RETURN_FLAG=false
EPICS_BASE=$(readlink ${EPICS}/base)
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
if [ -z "$EPICS_BASE" ]
then
EPICS_BASE='base-7' #7.0 = 7+0 = 7 for major release
fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
FACILITY=$(echo "$1" | tr '[:upper:]' '[:lower:]')
CACLIENT=$(echo "$2" | tr '[:upper:]' '[:lower:]')
FACILITY_DEFAULT="sf"
CACLIENT_DEFAULT="python"
FACILITY_TEMP=""
CACLIENT_TEMP=""
echo 'input arg. facility/target' $FACILITY $CACLIENT
if [ -n "$FACILITY" ]
then
if [ "$FACILITY" = "matlab" ] || [ "$FACILITY" = "python" ] || \
[ "$FACILITY" = "py310" ] || [ "$FACILITY" = "py38" ] || \
[ "$FACILITY" = "py37" ] || [ "$FACILITY" = "py35" ] || \
[ "$FACILITY" = "julia" ] || [ "$FACILITY" = "cpp" ] || \
[ "$FACILITY" = "cc" ]
then
CACLIENT_TEMP=$FACILITY
FACILITY_TEMP=$2
fi
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "sls" ] || [ "$CACLIENT" = "sls2" ] || \
[ "$CACLIENT" = "sf" ] || [ "$CACLIENT" = "swissfel" ] || \
[ "$CACLIENT" = "sfel" ] || [ "$CACLIENT" = "hipa" ]
then
if [ -z $FACILITY_TEMP ]
then
FACILITY_TEMP=$CACLIENT
CACLIENT_TEMP=$1
fi
fi
fi
if [ -z "$FACILITY" ]
then
FACILITY="sf"
echo "FACILITY = " $FACILITY
if [ -z $CACLIENT ]
then
CACLIENT=$CACLIENT_DEFAULT
fi
elif [ "$FACILITY" = "sls" ] || [ "$FACILITY" = "sls2" ] || \
[ "$FACILITY" = "sf" ] || [ "$FACILITY" = "swissfel" ] || \
[ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "hipa" ]
then
echo "FACILITY = " $FACILITY
elif [ -n "$FACILITY_TEMP" ]
then
if [ "$FACILITY_TEMP" = "sls" ] || [ "$FACILITY_TEMP" = "sls2" ] || \
[ "$FACILITY_TEMP" = "sf" ] || [ "$FACILITY_TEMP" = "swissfel" ] || \
[ "$FACILITY_TEMP" = "sfel" ] || [ "$FACILITY_TEMP" = "hipa" ]
then
FACILITY=$FACILITY_TEMP
else
if [ -n "$2" ]
then
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
fi
echo "***OTHERWISE THE DEFAULT FACILITY IS:" $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT FACILITY IS: " $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "matlab" ] || [ "$CACLIENT" = "python" ] || \
[ "$CACLIENT" = "py310" ] || [ "$CACLIENT" = "py38" ] || \
[ "$CACLIENT" = "py37" ] || [ "$CACLIENT" = "py35" ] || \
[ "$CACLIENT" = "julia" ] || [ "$CACLIENT" = "cpp" ] || \
[ "$CACLIENT" = "cc" ]
then
echo "CA TARGET = " $CACLIENT
else
if [ -n "$CACLIENT_TEMP" ]
then
if [ "$CACLIENT_TEMP" = "matlab" ] || [ "$CACLIENT_TEMP" = "python" ] || \
[ "$CACLIENT_TEMP" = "py310" ] || [ "$CACLIENT_TEMP" = "py38" ] || \
[ "$CACLIENT_TEMP" = "py37" ] || [ "$CACLIENT_TEMP" = "py35" ] || \
[ "$CACLIENT_TEMP" = "julia" ] || [ "$CACLIENT_TEMP" = "cpp" ] || \
[ "$CACLIENT_TEMP" = "cc" ]
then
CACLIENT=$CACLIENT_TEMP
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
fi
else
CACLIENT=$CACLIENT_DEFAULT
fi
if [ $RETURN_ON_WRONG_INPUT = true ] ; then
if [ $RETURN_FLAG = true ] ; then
return 1 2>/dev/null
exit 1
fi
fi
echo "FACILITY SELECTED = " $FACILITY
echo "CA TARGET SELECTED = " $CACLIENT
ENABLE_OPTIONS="--enable-boost-inc"
if [ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "swissfel" ]
then
FACILITY="sf"
fi
if [ "$CACLIENT" = "python" ] || [ "$CACLIENT" = "julia" ]
then
CACLIENT="py37"
fi
if [ "$FACILITY" = "sls2" ]
then
ENABLE_OPTIONS+=" --enable-epics7"
CAFE_V+="-sls2"
else
ENABLE_OPTIONS+=" --enable-epics3"
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-sf"
fi
fi
if [ "$CACLIENT" = "py35" ]
then
ENABLE_OPTIONS+=" --enable-python35"
ENABLE_OPTIONS+=" --enable-qt4"
CAFE_V+="-py35"
elif [ "$CACLIENT" = "py37" ]
then
ENABLE_OPTIONS+=" --enable-python37"
ENABLE_OPTIONS+=" --enable-qt5"
CAFE_V+="-py37"
elif [ "$CACLIENT" = "py38" ]
then
ENABLE_OPTIONS+=" --enable-python38"
ENABLE_OPTIONS+=" --enable-qt5py38"
CAFE_V+="-py38"
elif [ "$CACLIENT" = "py310" ]
then
ENABLE_OPTIONS+=" --enable-python310"
#ENABLE_OPTIONS+=" --enable-qt5py310"
CAFE_V+="-py310"
else
ENABLE_OPTIONS+=" --enable-qt5"
fi
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
#rm -f src/PyCafe.cpp
#ln -s PyCafe3.cpp src/PyCafe.cpp
ENABLE_OPTIONS+=" --enable-json"
ENABLE_OPTIONS+=" --enable-zeromq"
ENABLE_OPTIONS+=" --enable-curl"
ENABLE_OPTIONS+=" --enable-lz4"
#else
#rm -f src/PyCafe.cpp
#ln -s PyCafe_sls.cpp src/PyCafe.cpp
fi
CAFE_V+="-gcc-"$GCC_VERSION
echo "$CAFE_V"
#echo 'EPICS BASE IS='$EPICS_BASE
#echo 'EPICS BASE DIR='${EPICS}/base-7.0.4.1
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-epics3=${EPICS}/base \
--with-python310=/ioc/python/latest \
--with-python38=/opt/gfa/python-3.8/latest \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-qt5py310=/ioc/python/latest \
--with-qt5py38=/opt/gfa/python-3.8/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-json=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/opt/gfa/zmq/curl-7.55.1 \
--with-lz4=/opt/gfa/zmq/lz4/lib \
--with-epics7=${EPICS}/base-7.0.6
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

286
autogen_psi.sh- Normal file
View File

@@ -0,0 +1,286 @@
### psi specific - select compiler
#source <this_autogen_file> <facility> <target_language>
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/9.4.0
### psi specific - end
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
/opt/gfa/python-3.7/latest/bin/libtoolize --force --copy #select libtools 2.4.6
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#autoreconf not wanted
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.14.4"
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
RETURN_ON_WRONG_INPUT=true
RETURN_FLAG=false
EPICS_BASE=$(readlink ${EPICS}/base)
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
if [ -z "$EPICS_BASE" ]
then
EPICS_BASE='base-7' #7.0 = 7+0 = 7 for major release
fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
FACILITY=$(echo "$1" | tr '[:upper:]' '[:lower:]')
CACLIENT=$(echo "$2" | tr '[:upper:]' '[:lower:]')
FACILITY_DEFAULT="sf"
CACLIENT_DEFAULT="python"
FACILITY_TEMP=""
CACLIENT_TEMP=""
echo 'input arg. facility/target' $FACILITY $CACLIENT
if [ -n "$FACILITY" ]
then
if [ "$FACILITY" = "matlab" ] || [ "$FACILITY" = "python" ] || \
[ "$FACILITY" = "py38" ] ||
[ "$FACILITY" = "py37" ] || [ "$FACILITY" = "py35" ] || \
[ "$FACILITY" = "julia" ] || [ "$FACILITY" = "cpp" ] || \
[ "$FACILITY" = "cc" ]
then
CACLIENT_TEMP=$FACILITY
FACILITY_TEMP=$2
fi
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "sls" ] || [ "$CACLIENT" = "sls2" ] || \
[ "$CACLIENT" = "sf" ] || [ "$CACLIENT" = "swissfel" ] || \
[ "$CACLIENT" = "sfel" ] || [ "$CACLIENT" = "hipa" ]
then
if [ -z $FACILITY_TEMP ]
then
FACILITY_TEMP=$CACLIENT
CACLIENT_TEMP=$1
fi
fi
fi
if [ -z "$FACILITY" ]
then
FACILITY="sf"
echo "FACILITY = " $FACILITY
if [ -z $CACLIENT ]
then
CACLIENT=$CACLIENT_DEFAULT
fi
elif [ "$FACILITY" = "sls" ] || [ "$FACILITY" = "sls2" ] || \
[ "$FACILITY" = "sf" ] || [ "$FACILITY" = "swissfel" ] || \
[ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "hipa" ]
then
echo "FACILITY = " $FACILITY
elif [ -n "$FACILITY_TEMP" ]
then
if [ "$FACILITY_TEMP" = "sls" ] || [ "$FACILITY_TEMP" = "sls2" ] || \
[ "$FACILITY_TEMP" = "sf" ] || [ "$FACILITY_TEMP" = "swissfel" ] || \
[ "$FACILITY_TEMP" = "sfel" ] || [ "$FACILITY_TEMP" = "hipa" ]
then
FACILITY=$FACILITY_TEMP
else
if [ -n "$2" ]
then
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
fi
echo "***OTHERWISE THE DEFAULT FACILITY IS:" $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT FACILITY IS: " $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "matlab" ] || [ "$CACLIENT" = "python" ] || \
[ "$CACLIENT" = "py38" ] || \
[ "$CACLIENT" = "py37" ] || [ "$CACLIENT" = "py35" ] || \
[ "$CACLIENT" = "julia" ] || [ "$CACLIENT" = "cpp" ] || \
[ "$CACLIENT" = "cc" ]
then
echo "CA TARGET = " $CACLIENT
else
if [ -n "$CACLIENT_TEMP" ]
then
if [ "$CACLIENT_TEMP" = "matlab" ] || [ "$CACLIENT_TEMP" = "python" ] || \
[ "$CACLIENT_TEMP" = "py38" ] || \
[ "$CACLIENT_TEMP" = "py37" ] || [ "$CACLIENT_TEMP" = "py35" ] || \
[ "$CACLIENT_TEMP" = "julia" ] || [ "$CACLIENT_TEMP" = "cpp" ] || \
[ "$CACLIENT_TEMP" = "cc" ]
then
CACLIENT=$CACLIENT_TEMP
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
fi
else
CACLIENT=$CACLIENT_DEFAULT
fi
if [ $RETURN_ON_WRONG_INPUT = true ] ; then
if [ $RETURN_FLAG = true ] ; then
return 1 2>/dev/null
exit 1
fi
fi
echo "FACILITY SELECTED = " $FACILITY
echo "CA TARGET SELECTED = " $CACLIENT
ENABLE_OPTIONS="--enable-boost-inc"
if [ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "swissfel" ]
then
FACILITY="sf"
fi
if [ "$CACLIENT" = "python" ] || [ "$CACLIENT" = "julia" ]
then
CACLIENT="py37"
fi
if [ "$FACILITY" = "sls2" ]
then
ENABLE_OPTIONS+=" --enable-epics7"
CAFE_V+="-sls2"
else
ENABLE_OPTIONS+=" --enable-epics3"
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-sf"
fi
fi
if [ "$CACLIENT" = "py35" ]
then
ENABLE_OPTIONS+=" --enable-python35"
ENABLE_OPTIONS+=" --enable-qt4"
CAFE_V+="-py35"
elif [ "$CACLIENT" = "py37" ]
then
ENABLE_OPTIONS+=" --enable-python37"
ENABLE_OPTIONS+=" --enable-qt5"
CAFE_V+="-py37"
elif [ "$CACLIENT" = "py38" ]
then
ENABLE_OPTIONS+=" --enable-python38"
ENABLE_OPTIONS+=" --enable-qt5py38"
CAFE_V+="-py38"
else
ENABLE_OPTIONS+=" --enable-qt5"
fi
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
#rm -f src/PyCafe.cpp
#ln -s PyCafe3.cpp src/PyCafe.cpp
ENABLE_OPTIONS+=" --enable-json"
ENABLE_OPTIONS+=" --enable-zeromq"
ENABLE_OPTIONS+=" --enable-curl"
ENABLE_OPTIONS+=" --enable-lz4"
#else
#rm -f src/PyCafe.cpp
#ln -s PyCafe_sls.cpp src/PyCafe.cpp
fi
CAFE_V+="-gcc-"$GCC_VERSION
echo "$CAFE_V"
#echo 'EPICS BASE IS='$EPICS_BASE
#echo 'EPICS BASE DIR='${EPICS}/base-7.0.4.1
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-epics3=${EPICS}/base \
--with-python38=/opt/gfa/python-3.8/latest \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-qt5py38=/opt/gfa/python-3.8/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-json=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/opt/gfa/zmq/curl-7.55.1 \
--with-lz4=/opt/gfa/zmq/lz4/lib \
--with-epics7=${EPICS}/base-7.0.6
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

View File

@@ -1,46 +0,0 @@
aclocal --force -I m4
libtoolize --force --copy
autoconf --force
autoheader --force
automake --force --add-missing --copy
autoreconf
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
EB=$(readlink ${EPICS}/base)
echo 'EPICS BASE IS=' $EB
EB1=$(echo $EB | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
CAFE_VERSION=cafe-1.8.0-gcc-6.3.0
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_VERSION} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_VERSION}/lib \
--enable-boost-inc --with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--enable-epics --with-epics=${EPICS}/base \
--enable-qt4-lib --with-qt4-lib=/usr/lib64 \
--enable-qt4-inc --with-qt4-inc=/usr/include
# --enable-boost-lib --with-boost-lib=/opt/gfa/cafe/boost/boost_1_61_0/lib
unset CAFE_EPICS_V_MAJOR
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_PATCH
cp include/config.h include/os/Linux/cafe/config.h

View File

@@ -1,47 +0,0 @@
rm -f configure.ac
ln -s configureCafe.ac configure.ac
aclocal --force -I m4
libtoolize --force --copy
autoconf --force
autoheader --force
automake --force --add-missing --copy
autoreconf
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
EB=$(readlink ${EPICS}/base)
echo 'EPICS BASE IS=' $EB
EB1=$(echo $EB | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
CAFE_VERSION=cafe-noqt-1.12.5-gcc-6.3.0
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_VERSION} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_VERSION}/lib \
--enable-boost-inc --with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--enable-epics --with-epics=${EPICS}/base
unset CAFE_EPICS_V_MAJOR
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_PATCH
cp include/config.h include/os/Linux/cafe-noqt/config.h

View File

@@ -1,58 +0,0 @@
rm -f configure.ac
ln -s configurezbspy37.ac configure.a
source usePy3
aclocal --force -I m4
libtoolize --force --copy
autoconf --force
autoheader --force
automake --force --add-missing --copy
autoreconf
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
EB=$(readlink ${EPICS}/base)
echo 'EPICS BASE IS=' $EB
EB1=$(echo $EB | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
CYCAFE_VERSION=pycafe-1.12.5
./configure \
--prefix=/opt/gfa/cafe/python/python-3.7/${CYCAFE_VERSION}/ \
--libdir=/opt/gfa/cafe/python/python-3.7/${CYCAFE_VERSION}/lib \
--enable-boost-inc --with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--enable-epics --with-epics=${EPICS}/base \
--enable-qt5-lib --with-qt5-lib=/opt/gfa/python-3.7/latest/lib \
--enable-qt5-inc --with-qt5-inc=/opt/gfa/python-3.7/latest/include/qt \
--enable-python-inc --with-python-inc=/opt/gfa/python-3.7/latest/include/python3.7m \
--enable-python-lib --with-python-lib=/opt/gfa/python-3.7/latest/lib \
--enable-zeromq-inc --with-zeromq-inc=/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/include \
--enable-zeromq-lib --with-zeromq-lib=/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0/lib \
--enable-json-inc --with-json-inc=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/include \
--enable-json-lib --with-json-lib=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2/libs/linux-gcc-6.3.0 \
--enable-curl-inc --with-curl-inc=/opt/gfa/zmq/curl-7.55.1/include \
--enable-curl-lib --with-curl-lib=/opt/gfa/zmq/curl-7.55.1/lib/.libs \
--enable-lz4-inc --with-lz4-inc=/opt/gfa/zmq/lz4/lib \
--enable-lz4-lib --with-lz4-lib=/opt/gfa/zmq/lz4/lib
unset CAFE_EPICS_V_MAJOR
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_PATCH
cp include/config.h include/os/Linux/pycafe37/config.h

View File

@@ -1,48 +0,0 @@
rm -f configure.ac
ln -s configurezbspy37.ac configure.ac
source usePy3
aclocal --force -I m4
libtoolize --force --copy
autoconf --force
autoheader --force
automake --force --add-missing --copy
autoreconf
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
EB=$(readlink ${EPICS}/base)
echo 'EPICS BASE IS=' $EB
EB1=$(echo $EB | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
#--enable-boost --with-boost=/afs/psi.ch/intranet/Controls/BD/deps/boost_1_57_0 \
CAFE_VERSION=cafe-1.12.5
CYCAFE_VERSION=pycafe-noqt-1.12.5
./configure \
--prefix=/opt/gfa/cafe/python/python-3.7/${CYCAFE_VERSION}/ \
--libdir=/opt/gfa/cafe/python/python-3.7/${CYCAFE_VERSION}/lib \
--enable-boost --with-boost=/opt/gfa/cafe/boost/boost_1_61_0 \
--enable-epics --with-epics=${EPICS} \
--enable-python-inc --with-python-inc=/opt/gfa/python-3.7/latest/include/python3.5m \
--enable-python-lib --with-python-lib=/opt/gfa/python-3.57/latest/lib
unset CAFE_EPICS_V_MAJOR
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_PATCH
#--enable-qt4-lib --with-qt4-lib=/usr/lib64 \
#--enable-qt4-inc --with-qt4-inc=/usr/include \

277
autogen_slsbd.sh Normal file
View File

@@ -0,0 +1,277 @@
### psi specific - select compiler
#source <this_autogen_file> <facility> <target_language>
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/7.3.0
### psi specific - end
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
/opt/gfa/python-3.7/latest/bin/libtoolize --force --copy #select libtools 2.4.6
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#autoreconf not wanted
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.14.1"
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
RETURN_ON_WRONG_INPUT=true
RETURN_FLAG=false
EPICS_BASE=$(readlink ${EPICS}/base)
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
if [ -z "$EPICS_BASE" ]
then
EPICS_BASE='base-7.4.1' #7.0 = 7+0 = 7 for major release
fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
FACILITY=$(echo "$1" | tr '[:upper:]' '[:lower:]')
CACLIENT=$(echo "$2" | tr '[:upper:]' '[:lower:]')
FACILITY_DEFAULT="sf"
CACLIENT_DEFAULT="python"
FACILITY_TEMP=""
CACLIENT_TEMP=""
echo 'input arg. facility/target' $FACILITY $CACLIENT
if [ -n "$FACILITY" ]
then
if [ "$FACILITY" = "matlab" ] || [ "$FACILITY" = "python" ] || \
[ "$FACILITY" = "py37" ] || [ "$FACILITY" = "py35" ] || \
[ "$FACILITY" = "julia" ] || [ "$FACILITY" = "cpp" ] || \
[ "$FACILITY" = "cc" ]
then
CACLIENT_TEMP=$FACILITY
FACILITY_TEMP=$2
fi
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "sls" ] || [ "$CACLIENT" = "sls2" ] || \
[ "$CACLIENT" = "sf" ] || [ "$CACLIENT" = "swissfel" ] || \
[ "$CACLIENT" = "sfel" ] || [ "$CACLIENT" = "hipa" ]
then
if [ -z $FACILITY_TEMP ]
then
FACILITY_TEMP=$CACLIENT
CACLIENT_TEMP=$1
fi
fi
fi
if [ -z "$FACILITY" ]
then
FACILITY="sf"
echo "FACILITY = " $FACILITY
if [ -z $CACLIENT ]
then
CACLIENT=$CACLIENT_DEFAULT
fi
elif [ "$FACILITY" = "sls" ] || [ "$FACILITY" = "sls2" ] || \
[ "$FACILITY" = "sf" ] || [ "$FACILITY" = "swissfel" ] || \
[ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "hipa" ]
then
echo "FACILITY = " $FACILITY
elif [ -n "$FACILITY_TEMP" ]
then
if [ "$FACILITY_TEMP" = "sls" ] || [ "$FACILITY_TEMP" = "sls2" ] || \
[ "$FACILITY_TEMP" = "sf" ] || [ "$FACILITY_TEMP" = "swissfel" ] || \
[ "$FACILITY_TEMP" = "sfel" ] || [ "$FACILITY_TEMP" = "hipa" ]
then
FACILITY=$FACILITY_TEMP
else
if [ -n "$2" ]
then
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
fi
echo "***OTHERWISE THE DEFAULT FACILITY IS:" $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT FACILITY IS: " $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "matlab" ] || [ "$CACLIENT" = "python" ] || \
[ "$CACLIENT" = "py37" ] || [ "$CACLIENT" = "py35" ] || \
[ "$CACLIENT" = "julia" ] || [ "$CACLIENT" = "cpp" ] || \
[ "$CACLIENT" = "cc" ]
then
echo "CA TARGET = " $CACLIENT
else
if [ -n "$CACLIENT_TEMP" ]
then
if [ "$CACLIENT_TEMP" = "matlab" ] || [ "$CACLIENT_TEMP" = "python" ] || \
[ "$CACLIENT_TEMP" = "py37" ] || [ "$CACLIENT_TEMP" = "py35" ] || \
[ "$CACLIENT_TEMP" = "julia" ] || [ "$CACLIENT_TEMP" = "cpp" ] || \
[ "$CACLIENT_TEMP" = "cc" ]
then
CACLIENT=$CACLIENT_TEMP
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
fi
else
CACLIENT=$CACLIENT_DEFAULT
fi
if [ $RETURN_ON_WRONG_INPUT = true ] ; then
if [ $RETURN_FLAG = true ] ; then
return 1 2>/dev/null
exit 1
fi
fi
echo "FACILITY SELECTED = " $FACILITY
echo "CA TARGET SELECTED = " $CACLIENT
ENABLE_OPTIONS="--enable-boost-inc"
if [ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "swissfel" ]
then
FACILITY="sf"
fi
if [ "$CACLIENT" = "python" ] || [ "$CACLIENT" = "julia" ]
then
CACLIENT="py37"
fi
if [ "$FACILITY" = "sls2" ]
then
ENABLE_OPTIONS+=" --enable-epics7"
CAFE_V+="-sls2"
else
ENABLE_OPTIONS+=" --enable-epics3"
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-sf"
fi
fi
if [ "$CACLIENT" = "py35" ]
then
ENABLE_OPTIONS+=" --enable-python35"
ENABLE_OPTIONS+=" --enable-qt4"
CAFE_V+="-py35"
elif [ "$CACLIENT" = "py37" ]
then
ENABLE_OPTIONS+=" --enable-python37"
ENABLE_OPTIONS+=" --enable-qt5"
CAFE_V+="-py37"
#else
#ENABLE_OPTIONS+=" --enable-qt5"
fi
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
#rm -f src/PyCafe.cpp
#ln -s PyCafe3.cpp src/PyCafe.cpp
ENABLE_OPTIONS+=" --enable-json"
ENABLE_OPTIONS+=" --enable-zeromq"
ENABLE_OPTIONS+=" --enable-curl"
ENABLE_OPTIONS+=" --enable-lz4"
#else
#rm -f src/PyCafe.cpp
#ln -s PyCafe_sls.cpp src/PyCafe.cpp
fi
CAFE_V+="-gcc-"$GCC_VERSION
echo "CAFE VERSION: $CAFE_V"
#echo 'EPICS BASE IS='$EPICS_BASE
#echo 'EPICS BASE DIR='${EPICS}/base-7.0.4.1
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
echo 'EPICS='${EPICS}
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/afs/psi.ch/project/cafe/gitlab/CAFE/boost/boost_1_61_0/include \
--with-epics7=${EPICS}/base-7.0.4.1 \
--with-epics3=${EPICS}/base \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-json=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/opt/gfa/zmq/curl-7.55.1 \
--with-lz4=/opt/gfa/zmq/lz4/lib
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

View File

@@ -1 +0,0 @@
configureCafe.ac

1189
configure.ac Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,446 +0,0 @@
## CAFE (Channel Access interFacE)
## Author: Jan Chrin, GFA, PSI
##
## configure.ac is processed by autoconf
##
## output: configure.in file for building the cafe library
##
# Standard macros
AC_PREREQ(2.63)
AC_COPYRIGHT([CAFE,Jan Chrin, 2013])
AC_INIT([CAFE], [1.12.5], [Bug reports to: jan.chrin@psi.ch])
AC_CONFIG_AUX_DIR(./)
AC_CONFIG_MACRO_DIR([m4])
m4_pattern_allow([AC_CONFIG_MACRO])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([./include/cafe.h])
AC_LANG_CPLUSPLUS
AC_CONFIG_HEADER([./include/config.h:./include/config.in])
AC_PROG_CXX
LT_PREREQ([2.4.6])
#LT_PREREQ([2.2.6])
LT_INIT
# library creation
AC_PROG_LIBTOOL
AM_PROG_LIBTOOL
AC_LANG([C++])
AC_DEFINE_UNQUOTED(HAVE_LINUX, 1, [linux dependency (sleep)])
#else c++11
CPPFLAGS=" -fexceptions -fPIC -std=c++1z"
# provide include directories
AC_SUBST([CAFE_CPPFLAGS], '-I$(top_srcdir)/include ')
##---------------------------------------------------------------------------
##-- EPICS -- path and options
##
EPICS_PREFIX=""
EPICS_INCL_PATH=""
EPICS_LIB_PATH=""
## Add epics release
EPICS_MAJOR_DEFAULT="3"
EPICS_MINOR_DEFAULT="14"
EPICS_PATCH_DEFAULT="12"
EPICS_MAJOR_REL=${EPICS_MAJOR_DEFAULT}
EPICS_MINOR_REL=${EPICS_MINOR_DEFAULT}
EPICS_PATCH_REL=${EPICS_PATCH_DEFAULT}
#overwrite default with actual if determined
if test "${CAFE_EPICS_V_MAJOR}" != ""; then
EPICS_MAJOR_REL=${CAFE_EPICS_V_MAJOR}
fi
if test "${CAFE_EPICS_V_MINOR}" != ""; then
EPICS_MINOR_REL=${CAFE_EPICS_V_MINOR}
fi
if test "${CAFE_EPICS_V_PATCH}" != ""; then
EPICS_PATCH_REL=${CAFE_EPICS_V_PATCH}
fi
## Host Arch
if test "${HOST_ARCH}" == ""; then
HOST_ARCH=Linux
#echo ${EPICS_HOST_ARCH} | grep -c 'SL6'
#echo ${EPICS_HOST_ARCH} | grep -c 'darwin'
if test ${CAFE_HOST_FLAG_DARWIN} == 1; then
HOST_ARCH=Darwin
fi
echo "HOST_ARCH="${HOST_ARCH}
fi
AC_ARG_ENABLE(
[epics],
AC_HELP_STRING([--enable-epics],
[enable epics use [default=no]]),
[HAVE_EPICS=true],
[HAVE_EPICS=false])
AC_ARG_WITH(
epics,
AC_HELP_STRING(
[--with-epics location of EPICS],
[prefix where the epics libraries and include files are to be found]),
[HAVE_EPICS=true
EPICS_PREFIX=$withval
EPICS_INCL_PATH="-I"${EPICS_PREFIX}"/include/ -I"${EPICS_PREFIX}"/include/os/"${HOST_ARCH}
EPICS_LIB_PATH=${EPICS_PREFIX}"/lib/"${EPICS_HOST_ARCH}])
#echo "TEST ", $EPICS_LIB_PATH
##
##-- end EPICS -- path and options
##---------------------------------------------------------------------------
##===========================================================================
##== Check for header files and libraries.
##===========================================================================
##---------------------------------------------------------------------------
##-- EPICS -- check header files and libs
##
AC_LANG_PUSH([C++])
if test $HAVE_EPICS == true; then
# Change flags: if all tests are successfull, accept these changes; if
# the tests are not successfull, use the old flags.
if test "${EPICS_PREFIX}" != "" ; then
TEMP_CPPFLAGS=${CPPFLAGS}
CPPFLAGS=${CPPFLAGS}" "${EPICS_INCL_PATH}
TEMP_LDFLAGS=${LDFLAGS}
LDFLAGS=${LDFLAGS}" -L"${EPICS_LIB_PATH}" -Wl,-rpath,"${EPICS_LIB_PATH}
fi
if test x$HAVE_EPICS == xtrue ; then
AC_CHECK_HEADERS(
[cadef.h],
[HAVE_EPICS=true],
[HAVE_EPICS=false
AC_MSG_WARN(cadef.h not not found!)],
[])
fi
if test x$HAVE_EPICS == xtrue ; then
AC_CHECK_HEADERS(
[epicsTypes.h],
[HAVE_EPICS=true],
[HAVE_EPICS=false
AC_MSG_WARN(epicsTypes.h not found!)],
[])
fi
if test x$HAVE_EPICS == xtrue ; then
AC_CHECK_LIB(ca,[main],
[HAVE_EPICS=true],
[HAVE_EPICS=false
AC_MSG_WARN(libca either not found or not operational!)])
fi
if test x$HAVE_EPICS == xtrue ; then
AC_CHECK_LIB(Com,[main],
[HAVE_EPICS=true],
[HAVE_EPICS=false
AC_MSG_WARN(libCom either not found or not operational!)])
fi
if test x$HAVE_EPICS == xtrue ; then
AC_CHECK_LIB(dl,[main],
[HAVE_EPICS=true],
[HAVE_EPICS=false
AC_MSG_WARN(libdl either not found or not operational!)])
fi
# If all checks are OK we add rlog to the CXXFLAGS.
if test x$HAVE_EPICS != xtrue ; then
if test "${EPICS_PREFIX}" != "" ; then
CPPFLAGS=${TEMP_CPPFLAGS}
LDFLAGS=${TEMP_LDFLAGS}
fi
fi
echo "LDFLAGS__> $LDFLAGS "
if test x$HAVE_EPICS == xtrue ; then
AC_DEFINE_UNQUOTED(HAVE_EPICS, ${EPICS_MAJOR_REL}.${EPICS_MINOR_REL}.${EPICS_PATCH_REL},[epics version])
AC_DEFINE_UNQUOTED(EPICS_MAJOR,${EPICS_MAJOR_REL}, [epics major release])
AC_DEFINE_UNQUOTED(EPICS_MINOR,${EPICS_MINOR_REL}, [epics minor release])
AC_DEFINE_UNQUOTED(EPICS_PATCH,${EPICS_PATCH_REL}, [epics patch release])
fi
fi
AC_LANG_POP
##
##-- end EPICS -- check header files and libs
##---------------------------------------------------------------------------
##---------------------------------------------------------------------------
##-- BOOST -- path and options -
##-- Boost libraries are mainly header-only, i.e. they consist of header files
##-- containing templates and inline functions, and require no separately-compiled
##-- library binaries or special treatment when linking
##
BOOST_PREFIX=""
BOOST_INCL_PATH=""
BOOST_LIB_PATH=""
BOOST_OPTION=""
AC_ARG_ENABLE(
[boost-inc],
AC_HELP_STRING([--enable-boost-inc],
[enable boost use [default=no]]),
[HAVE_BOOST_=true],
[HAVE_BOOST_=false])
AC_ARG_WITH(
boost-inc,
AC_HELP_STRING([--with-boost-inc = location of BOOST],
[prefix giving the boost base directory]),
[HAVE_BOOST_=true
BOOST_PREFIX=$withval
BOOST_INCL_PATH="-I"${BOOST_PREFIX}"/boost -I"${BOOST_PREFIX}
])
AC_ARG_ENABLE(
[boost-lib],
AC_HELP_STRING([--enable-boost-lib],
[enable boost lib use [default=no]]),
[HAVE_BOOST_LIB_=true],
[HAVE_BOOST_LIB_=false])
AC_ARG_WITH(
boost-lib,
AC_HELP_STRING([--with-boost-lib = location of BOOST],
[prefix giving the boost base directory]),
[HAVE_BOOST_LIB=true
BOOST_LIB_PATH=$withval
])
##
##-- end BOOST -- path and options
##---------------------------------------------------------
##---------------------------------------------------------------------------
##-- BOOST -- check header files (and lib if selected) only
##
AC_LANG_PUSH([C++])
if test $HAVE_BOOST_LIB_ == true ; then
TEMP_LDFLAGS=${LDFLAGS}
LDFLAGS=${LDFLAGS}" -L"${BOOST_LIB_PATH}" -Wl,-rpath,"${BOOST_LIB_PATH}
#echo ${BOOST_LIB_PATH}
#echo ${LDFLAGS}
if test x$HAVE_BOOST_LIB_ == xtrue ; then
AC_CHECK_LIB(boost_thread,[main],
[],
[HAVE_BOOST_LIB=false
AC_MSG_WARN(boost_thread not found!)])
fi
# If all checks are OK we add boost lib version to the FLAGS.
if test x$HAVE_BOOST_LIB_ != xtrue ; then
LDFLAGS=${TEMP_LDFLAGS}
fi
if test x$HAVE_BOOST_LIB_ == xtrue ; then
AC_DEFINE_UNQUOTED(HAVE_BOOST_THREAD, 1, [boost thread library])
fi
fi
if test $HAVE_BOOST_ == true ; then
# Change flags: if all tests are successful, accept these additions,
# else use the old flags.
if test "${BOOST_PREFIX}" != "" ; then
TEMP_CPPFLAGS=${CPPFLAGS}
CPPFLAGS=${CPPFLAGS}" "${BOOST_INCL_PATH}
echo ${BOOST_INCL_PATH}
echo ${CPPFLAGS}
fi
if test x$HAVE_BOOST_ == xtrue ; then
AC_CHECK_HEADERS(
[multi_index_container.hpp],
[HAVE_BOOST_=true],
[HAVE_BOOST_=false
AC_MSG_WARN(multi_index_container.hpp not found!)],
[])
fi
if test x$HAVE_BOOST_ != xtrue ; then
if test "${BOOST_PREFIX}" != "" ; then
CPPFLAGS=${TEMP_CPPFLAGS}
echo ${CPPFLAGS}
fi
fi
if test x$HAVE_BOOST_ == xtrue ; then
AC_DEFINE_UNQUOTED(HAVE_BOOST, 1, [Availability of boost])
fi
fi
AC_LANG_POP
##
##-- end BOOST-- check header files only
##-----------------------------
##---------------------------------------------------------------------------
##-- Qt4 -- path and options
##
QT4_PREFIX=""
QT4_INCL_PATH=""
QT4_LIB_PATH=""
AC_ARG_ENABLE(
[qt4-inc],
AC_HELP_STRING([--enable-qt4-inc],
[enable Qt version 4 use [default=no]]),
[HAVE_QT4_=true],
[HAVE_QT4_=false])
AC_ARG_ENABLE(
[qt4-lib],
AC_HELP_STRING([--enable-qt4-lib],
[enable Qt version 4 use [default=no]]),
[HAVE_QT4_=true],
[HAVE_QT4_=false])
#Only if enable flag is set
if test $HAVE_QT4_ == true ; then
AC_ARG_WITH(
qt4-inc,
AC_HELP_STRING([--with-qt4-inc=PREFIX],
[prefix, parent directory where the Qt version 4 library is installed]),
[HAVE_QT4_=true
QT4_PREFIX=$withval
QT4_INCL_PATH=${QT4_INCL_PATH}" -I"${QT4_PREFIX}
QT4_INCL_PATH=${QT4_INCL_PATH}" -I"${QT4_PREFIX}"/QtCore "
QT4_INCL_PATH=${QT4_INCL_PATH}" -I"${QT4_PREFIX}"/QtXml "
])
AC_ARG_WITH(
qt4-lib,
AC_HELP_STRING([--with-qt4-lib=PREFIX],
[prefix, parent directory where the Qt version 4 library is installed]),
[HAVE_QT4_=true
QT4_LIB_PATH=$withval
QT4_LIB_PATH=${QT4_LIB_PATH}
])
fi
##
##---------------------------------------------------------------------------
##---------------------------------------------------------------------------
##-- Qt version 4 -- check header files and libs
##
AC_LANG_PUSH([C++])
if test $HAVE_QT4_ == true ; then
# Change flags: if all tests are successfull, accept this changes; if
# the tests are not successfull, use the old flags.
if test "${QT4_PREFIX}" != "" ; then
TEMP_CPPFLAGS=${CPPFLAGS}
CPPFLAGS=${CPPFLAGS}" "${QT4_INCL_PATH}
TEMP_LDFLAGS=${LDFLAGS}
LDFLAGS=${LDFLAGS}" -L"${QT4_LIB_PATH}" -Wl,-rpath,"${QT4_LIB_PATH}
fi
if test x$HAVE_QT4_ == xtrue ; then
AC_CHECK_HEADERS(
[qxml.h],
[HAVE_QT4_=true],
[HAVE_QT4_=false
AC_MSG_WARN(qxml.h not found!)],
[])
fi
if test x$HAVE_QT4_ == xtrue ; then
AC_CHECK_LIB(QtCore,[main],
[],
[HAVE_QT4_=false
AC_MSG_WARN(libQtCore not found!)])
fi
if test x$HAVE_QT4_ == xtrue ; then
AC_CHECK_LIB(QtXml,[main],
[],
[HAVE_QT4=false
AC_MSG_WARN(libQtXml not found!)])
fi
# If all checks are OK we add Qt version 4 to the FLAGS.
if test x$HAVE_QT4_ != xtrue ; then
if test "${QT4_PREFIX}" != "" ; then
CPPFLAGS=${TEMP_CPPFLAGS}
LDFLAGS=${TEMP_LDFLAGS}
fi
fi
if test x$HAVE_QT4_ == xtrue ; then
AC_DEFINE_UNQUOTED(HAVE_QT4, 1,[Availability of Qt version 4 confirmed])
fi
fi
AC_LANG_POP
##
##-- end QT4 -- check header files and libs
CPPFLAGS=$CPPFLAGS
echo "REPORTING -> current CPPFLAGS = "$CPPFLAGS
LDFLAGS=$LDFLAGS
echo "REPORTING -> current LDFLAGS = "$LDFLAGS
##
##-- end Check
##--
HAVE_PYCAFE_EXT_=false
# Generate makefiles
AC_SUBST(AM_CPPFLAGS, $CPPFLAGS)
AC_SUBST(AM_LDFLAGS, $LDFLAGS)
AM_CONDITIONAL(HAVE_PYTHON_, test x$HAVE_PYTHON_ == xtrue)
AM_CONDITIONAL(HAVE_PYCAFE_EXT_, test x$HAVE_PYCAFE_EXT_ == xtrue)
AM_CONDITIONAL(HAVE_ZEROMQ_, test x$HAVE_ZEROMQ_ == xtrue)
AC_CONFIG_FILES([makefile
src/makefile
include/makefile])
AC_OUTPUT

1189
configurePSI.ac Normal file

File diff suppressed because it is too large Load Diff

1052
configurePSI.ac- Normal file

File diff suppressed because it is too large Load Diff

1118
configurePSI.ac-- Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
examples/cafeTest/cafeTest- Executable file

Binary file not shown.

View File

@@ -7,7 +7,7 @@
#CAFE version to link to
CAFE_VERSION=cafe-1.12.5-gcc-7.3.0
CAFE_VERSION=cafe-1.14.4-gcc-7.3.0
#PYTHON_INCLUDE=/opt/gfa/python-3.5/latest/include/python3.5m
#PYTHON_LIB=/opt/gfa/python-3.5/latest/lib
@@ -18,10 +18,6 @@ EPICS_BASE=${EPICS}/base
CAFE_BASE=/opt/gfa/cafe
CAFE_CPP_BASE=${CAFE_BASE}/cpp
CAFE_BASE=/afs/psi.ch/project/cafe/gitlab/CAFE/
CAFE_CPP_BASE=${CAFE_BASE}
CAFE_VERSION=cpp
BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include
@@ -32,10 +28,12 @@ INCLUDE_PATH += -I$(CAFE_CPP_BASE)/$(CAFE_VERSION)/include \
LIB_DIR += -L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-L$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib \
-Wl,-rpath,$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib
-L$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib/${EPICS_HOST_ARCH} \
-L/opt/gfa/python-3.7/latest/lib \
-Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LIBS += -lcafe -lca -lCom
LIBS += -lcafe -lca -lCom -lQt5Core
cafeTest: cafeTest.cc callbacks.h
g++ cafeTest.cc -o cafeTest \

View File

@@ -0,0 +1,46 @@
#
# Jan Chrin
# June 2016
#
# Makefile to build a simple C++ cafe client
#
#CAFE version to link to
CAFE_VERSION=cafe-1.14.4-sls2-gcc-7.3.0
#PYTHON_INCLUDE=/opt/gfa/python-3.5/latest/include/python3.5m
#PYTHON_LIB=/opt/gfa/python-3.5/latest/lib
EPICS_BASE=${EPICS}/base-7.0.6
#CAFE project base
CAFE_BASE=/opt/gfa/cafe
CAFE_CPP_BASE=${CAFE_BASE}/cpp
BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include
INCLUDE_PATH += -I$(CAFE_CPP_BASE)/$(CAFE_VERSION)/include \
-I$(EPICS_BASE)/include -I$(EPICS_BASE)/include/compiler/gcc \
-I$(EPICS_BASE)/include/os/Linux \
-I$(BOOST_BASE)
#-I$(BOOST_BASE)/boost
LIB_DIR += -L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-L$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib/${EPICS_HOST_ARCH} \
-L/opt/gfa/python-3.7/latest/lib \
-Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LIBS += -lcafe -lca -lCom -lQt5Core
cafeTest: cafeTest.cc callbacks.h
g++ cafeTest.cc -o cafeTest \
$(INCLUDE_PATH) $(LIB_DIR) $(LIBS)
clean:
rm -f cafeTest.o cafeTest

View File

@@ -0,0 +1,46 @@
#
# Jan Chrin
# June 2016
#
# Makefile to build a simple C++ cafe client
#
#CAFE version to link to
CAFE_VERSION=cafe-1.14.1-gcc-7.3.0
#PYTHON_INCLUDE=/opt/gfa/python-3.5/latest/include/python3.5m
#PYTHON_LIB=/opt/gfa/python-3.5/latest/lib
EPICS_BASE=${EPICS}/base
#CAFE project base
CAFE_BASE=/opt/gfa/cafe
CAFE_CPP_BASE=${CAFE_BASE}/cpp
CAFE_BASE=/afs/psi.ch/project/cafe/gitlab/CAFE/
CAFE_CPP_BASE=${CAFE_BASE}
CAFE_VERSION=cpp
BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include
INCLUDE_PATH += -I$(CAFE_CPP_BASE)/$(CAFE_VERSION)/include \
-I$(EPICS_BASE)/include -I$(EPICS_BASE)/include/os/Linux \
-I$(BOOST_BASE)
#-I$(BOOST_BASE)/boost
LIB_DIR += -L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-L$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib \
-Wl,-rpath,$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib
LIBS += -lcafe -lca -lCom
cafeTest: cafeTest.cc callbacks.h
g++ cafeTest.cc -o cafeTest \
$(INCLUDE_PATH) $(LIB_DIR) $(LIBS)
clean:
rm -f cafeTest.o cafeTest

View File

@@ -18,15 +18,19 @@
#define DL_IMPORT(_T) _T
#endif
__PYX_EXTERN_C void cy_monitor_handler_wrapper(void *);
__PYX_EXTERN_C void cy_data_event_handler_wrapper(void *, unsigned int, std::string, PVDataHolder);
__PYX_EXTERN_C void cy_ctrl_event_handler_wrapper(void *, unsigned int, std::string, PVCtrlHolder);
__PYX_EXTERN_C void cy_event_handler_wrapper(void *, unsigned int, std::string);
__PYX_EXTERN_C void cy_handle_handler_wrapper(void *, unsigned int);
__PYX_EXTERN_C void cy_connect_handler_wrapper(void *, unsigned int, std::string, int);
__PYX_EXTERN_C void py_cb_wrapper(PVDataHolder, unsigned int, std::string);
__PYX_EXTERN_C void py_cb_ctrl_wrapper(PVCtrlHolder, unsigned int, std::string);
__PYX_EXTERN_C void py_cb_handle_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_monid_wrapper(unsigned int, unsigned long);
__PYX_EXTERN_C void cy_cb_handle_get_wrapper(void *, unsigned int);
__PYX_EXTERN_C void py_cb_handle_get_wrapper(unsigned int);
__PYX_EXTERN_C void cy_cb_handle_put_wrapper(void *, unsigned int);
__PYX_EXTERN_C void py_cb_handle_put_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_open_wrapper(unsigned int, int);
__PYX_EXTERN_C void py_cb_handle_connect_wrapper(unsigned int, std::string, int);

View File

@@ -1,125 +0,0 @@
/* Generated by Cython 0.23.4 */
#ifndef __PYX_HAVE_API__PyCafe
#define __PYX_HAVE_API__PyCafe
#include "Python.h"
static void (*__pyx_api_f_6PyCafe_py_cb_wrapper)(PVDataHolder, unsigned int, std::string) = 0;
#define py_cb_wrapper __pyx_api_f_6PyCafe_py_cb_wrapper
static void (*__pyx_api_f_6PyCafe_py_cb_ctrl_wrapper)(PVCtrlHolder, unsigned int, std::string) = 0;
#define py_cb_ctrl_wrapper __pyx_api_f_6PyCafe_py_cb_ctrl_wrapper
static void (*__pyx_api_f_6PyCafe_py_cb_handle_wrapper)(unsigned int) = 0;
#define py_cb_handle_wrapper __pyx_api_f_6PyCafe_py_cb_handle_wrapper
static void (*__pyx_api_f_6PyCafe_py_cb_handle_monid_wrapper)(unsigned int, unsigned long) = 0;
#define py_cb_handle_monid_wrapper __pyx_api_f_6PyCafe_py_cb_handle_monid_wrapper
static void (*__pyx_api_f_6PyCafe_py_cb_handle_get_wrapper)(unsigned int) = 0;
#define py_cb_handle_get_wrapper __pyx_api_f_6PyCafe_py_cb_handle_get_wrapper
static void (*__pyx_api_f_6PyCafe_py_cb_handle_put_wrapper)(unsigned int) = 0;
#define py_cb_handle_put_wrapper __pyx_api_f_6PyCafe_py_cb_handle_put_wrapper
#if !defined(__Pyx_PyIdentifier_FromString)
#if PY_MAJOR_VERSION < 3
#define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
#else
#define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
#endif
#endif
#ifndef __PYX_HAVE_RT_ImportModule
#define __PYX_HAVE_RT_ImportModule
static PyObject *__Pyx_ImportModule(const char *name)
{
PyObject *py_name = 0;
PyObject *py_module = 0;
py_name = __Pyx_PyIdentifier_FromString(name);
if (!py_name)
goto bad;
py_module = PyImport_Import(py_name);
Py_DECREF(py_name);
return py_module;
bad:
Py_XDECREF(py_name);
return 0;
}
#endif
#ifndef __PYX_HAVE_RT_ImportFunction
#define __PYX_HAVE_RT_ImportFunction
static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig)
{
PyObject *d = 0;
PyObject *cobj = 0;
union {
void (*fp)(void);
void *p;
} tmp;
d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
if (!d)
goto bad;
cobj = PyDict_GetItemString(d, funcname);
if (!cobj) {
PyErr_Format(PyExc_ImportError,
"%.200s does not export expected C function %.200s",
PyModule_GetName(module), funcname);
goto bad;
}
#if PY_VERSION_HEX >= 0x02070000
if (!PyCapsule_IsValid(cobj, sig)) {
PyErr_Format(PyExc_TypeError,
"C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj));
goto bad;
}
tmp.p = PyCapsule_GetPointer(cobj, sig);
#else
{
const char *desc, *s1, *s2;
desc = (const char *)PyCObject_GetDesc(cobj);
if (!desc)
goto bad;
s1 = desc;
s2 = sig;
while (*s1 != '\0' && *s1 == *s2) {
s1++;
s2++;
}
if (*s1 != *s2) {
PyErr_Format(PyExc_TypeError,
"C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
PyModule_GetName(module), funcname, sig, desc);
goto bad;
}
tmp.p = PyCObject_AsVoidPtr(cobj);
}
#endif
*f = tmp.fp;
if (!(*f))
goto bad;
Py_DECREF(d);
return 0;
bad:
Py_XDECREF(d);
return -1;
}
#endif
static int import_PyCafe(void)
{
PyObject *module = 0;
module = __Pyx_ImportModule("PyCafe");
if (!module) goto bad;
if (__Pyx_ImportFunction(module, "py_cb_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_wrapper, "void (PVDataHolder, unsigned int, std::string)") < 0) goto bad;
if (__Pyx_ImportFunction(module, "py_cb_ctrl_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_ctrl_wrapper, "void (PVCtrlHolder, unsigned int, std::string)") < 0) goto bad;
if (__Pyx_ImportFunction(module, "py_cb_handle_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_handle_wrapper, "void (unsigned int)") < 0) goto bad;
if (__Pyx_ImportFunction(module, "py_cb_handle_monid_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_handle_monid_wrapper, "void (unsigned int, unsigned long)") < 0) goto bad;
if (__Pyx_ImportFunction(module, "py_cb_handle_get_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_handle_get_wrapper, "void (unsigned int)") < 0) goto bad;
if (__Pyx_ImportFunction(module, "py_cb_handle_put_wrapper", (void (**)(void))&__pyx_api_f_6PyCafe_py_cb_handle_put_wrapper, "void (unsigned int)") < 0) goto bad;
Py_DECREF(module);
module = 0;
return 0;
bad:
Py_XDECREF(module);
return -1;
}
#endif /* !__PYX_HAVE_API__PyCafe */

46
include/PyCafe_sf.h Normal file
View File

@@ -0,0 +1,46 @@
/* Generated by Cython 0.29.2 */
#ifndef __PYX_HAVE__PyCafe
#define __PYX_HAVE__PyCafe
#ifndef __PYX_HAVE_API__PyCafe
#ifndef __PYX_EXTERN_C
#ifdef __cplusplus
#define __PYX_EXTERN_C extern "C"
#else
#define __PYX_EXTERN_C extern
#endif
#endif
#ifndef DL_IMPORT
#define DL_IMPORT(_T) _T
#endif
__PYX_EXTERN_C void cy_data_event_handler_wrapper(void *, unsigned int, std::string, PVDataHolder);
__PYX_EXTERN_C void cy_ctrl_event_handler_wrapper(void *, unsigned int, std::string, PVCtrlHolder);
__PYX_EXTERN_C void cy_event_handler_wrapper(void *, unsigned int, std::string);
__PYX_EXTERN_C void cy_handle_handler_wrapper(void *, unsigned int);
__PYX_EXTERN_C void cy_connect_handler_wrapper(void *, unsigned int, std::string, int);
__PYX_EXTERN_C void py_cb_wrapper(PVDataHolder, unsigned int, std::string);
__PYX_EXTERN_C void py_cb_ctrl_wrapper(PVCtrlHolder, unsigned int, std::string);
__PYX_EXTERN_C void py_cb_handle_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_monid_wrapper(unsigned int, unsigned long);
__PYX_EXTERN_C void py_cb_handle_get_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_put_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_open_wrapper(unsigned int, int);
__PYX_EXTERN_C void py_cb_handle_connect_wrapper(unsigned int, std::string, int);
#endif /* !__PYX_HAVE_API__PyCafe */
/* WARNING: the interface of the module init function changed in CPython 3.5. */
/* It now returns a PyModuleDef instance instead of a PyModule instance. */
#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC initPyCafe(void);
#else
PyMODINIT_FUNC PyInit_PyCafe(void);
#endif
#endif /* !__PYX_HAVE__PyCafe */

View File

@@ -1,748 +0,0 @@
///
/// \file cafeCache.h
/// \brief CAFE methods retrieving data from cache. (Belongs to cafe.h)
/// \author Jan Chrin, PSI
/// \date Release: February 2015
/// \version CAFE 1.0.0
///
#ifndef CAFECACHE_H
#define CAFECACHE_H
int getPulseID(unsigned int * handle, unsigned int nelem, unsigned int * pulseID)
{
int status=ICAFE_NORMAL;
int statusLocal=ICAFE_NORMAL;
for (unsigned int i=0; i<nelem; ++i) {
statusLocal=handleHelper.getPulseID(handle[i], pulseID[i]);
if (statusLocal!=ICAFE_NORMAL && status==ICAFE_NORMAL) {
status=statusLocal;
}
}
return status;
}
int getPulseID(unsigned int handle, unsigned int &pulseID)
{
pulseID=0;
return handleHelper.getPulseID(handle, pulseID);
}
int getPulseID(char * pv, unsigned int &pulseID)
{
pulseID=0;
unsigned int handle=handleHelper.getHandleFromPV(pv);
return handleHelper.getPulseID(handle, pulseID);
}
unsigned int getPulseIDFromTS(epicsTimeStamp ts)
{
return handleHelper.getPulseIDFromTS(ts);
}
vector<unsigned int>getPulseIDFromTS(PVDataHolder * pvd, unsigned int nelem)
{
vector<unsigned int> vui;
vui.clear();
vui.reserve(nelem);
for (unsigned int i=0; i<nelem; ++i) {
vui.push_back( getPulseIDFromTS(pvd[i].getEpicsTimeStamp()));
}
return vui;
}
vector<unsigned int>getPulseIDFromTS(PVGroup pvg)
{
vector<unsigned int> vui;
vui.clear();
vui.reserve(pvg.getNPV());
PVDataHolder * pvd=pvg.getPVData();
for (unsigned int i=0; i<pvg.getNPV(); ++i) {
vui.push_back( getPulseIDFromTS(pvd[i].getEpicsTimeStamp()));
}
return vui;
}
int getCachePVArray (vector<unsigned int> handleV, PVDataHolder * pvd)
{
unsigned int * handleArray = new unsigned int [handleV.size()];
for (size_t i=0; i< (size_t) handleV.size(); ++i) {
handleArray[i]= (unsigned int) handleV[i];
}
status=getCache(handleArray, (unsigned int) handleV.size(), pvd);
delete [] handleArray;
return status;
};
int getCachePVArrayNoWait (vector<unsigned int> handleV, PVDataHolder * pvd)
{
unsigned int * handleArray = new unsigned int [handleV.size()];
int overallStatus=ICAFE_NORMAL;
for (size_t i=0; i< (size_t) handleV.size(); ++i) {
handleArray[i]= (unsigned int) handleV[i];
status=getCacheNoWait(handleArray[i], pvd[i]);
if (status!=ICAFE_NORMAL) {
resetCallbackGet(handleArray[i]);
if(overallStatus==ICAFE_NORMAL) {
overallStatus=status;
}
}
}
delete [] handleArray;
return status;
};
int resetCallbackGet(const unsigned int handle);
int resetCallbackPut(const unsigned int handle);
int getCacheNoWait(const unsigned int handle, PVDataHolder & pvd);
int getCache (const unsigned int handle, PVDataHolder & pvd);
int getCache (const unsigned int *handleArray, unsigned int nelem, PVDataHolder * pvd);
int getCtrlCache (const unsigned int handle, PVCtrlHolder & pvc);
int getCtrlCache (const unsigned int *handleArray, unsigned int nelem, PVCtrlHolder * pvc);
int getCache (const char * pv, PVDataHolder & pvd)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return getCache(handle, pvd);
}
int getCtrlCache (const char * pv, PVCtrlHolder & pvc)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return getCtrlCache(handle, pvc);
}
//6
int getCacheDoubleArray(const unsigned int handle, dbr_double_t * _val)
{
return cafeDoppio.getCache(handle, DBR_DOUBLE, _val);
};
int getCache(const unsigned int handle, dbr_double_t * _val)
{
return cafeDoppio.getCache(handle, DBR_DOUBLE, _val);
};
int getCache(const unsigned int handle, dbr_double_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
return cafeDoppio.getCache(handle, DBR_STS_DOUBLE, _val, alarmStatus, alarmSeverity);
};
int getCache(const unsigned int handle, dbr_double_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
return cafeDoppio.getCache(handle, DBR_TIME_DOUBLE, _val, alarmStatus, alarmSeverity, ts);
};
//5+ long long
int getCache(const unsigned int handle, long long * _val);
int getCache(const unsigned int handle, long long * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity);
int getCache(const unsigned int handle, long long * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts);
//5
int getCacheLongArray(const unsigned int handle, dbr_long_t * _val)
{
return cafeLatte.getCache(handle, DBR_LONG, _val);
};
int getCache(const unsigned int handle, dbr_long_t * _val)
{
return cafeLatte.getCache(handle, DBR_LONG, _val);
};
int getCache(const unsigned int handle, dbr_long_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
return cafeLatte.getCache(handle, DBR_STS_LONG, _val, alarmStatus, alarmSeverity);
};
int getCache(const unsigned int handle, dbr_long_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
return cafeLatte.getCache(handle, DBR_TIME_LONG, _val, alarmStatus, alarmSeverity, ts);
};
//4
int getCache(const unsigned int handle, dbr_char_t * _val)
{
return cafeCappuccino.getCache(handle, DBR_CHAR, _val);
};
int getCache(const unsigned int handle, dbr_char_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
return cafeCappuccino.getCache(handle, DBR_STS_ENUM, _val, alarmStatus, alarmSeverity);
};
int getCache(const unsigned int handle, dbr_char_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
return cafeCappuccino.getCache(handle, DBR_TIME_ENUM, _val, alarmStatus, alarmSeverity, ts);
};
//3
int getCache(const unsigned int handle, dbr_enum_t * _val)
{
return cafeEspresso.getCache(handle, DBR_ENUM, _val);
};
int getCache(const unsigned int handle, dbr_enum_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
return cafeEspresso.getCache(handle, DBR_STS_ENUM, _val, alarmStatus, alarmSeverity);
};
int getCache(const unsigned int handle, dbr_enum_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
return cafeEspresso.getCache(handle, DBR_TIME_ENUM, _val, alarmStatus, alarmSeverity, ts);
};
//2
int getCacheFloatArray(const unsigned int handle, dbr_float_t * _val)
{
return cafeFrappuccino.getCache(handle, DBR_FLOAT, _val);
};
int getCache(const unsigned int handle, dbr_float_t * _val)
{
return cafeFrappuccino.getCache(handle, DBR_FLOAT, _val);
};
int getCache(const unsigned int handle, dbr_float_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
return cafeFrappuccino.getCache(handle, DBR_STS_FLOAT, _val, alarmStatus, alarmSeverity);
};
int getCache(const unsigned int handle, dbr_float_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
return cafeFrappuccino.getCache(handle, DBR_TIME_FLOAT, _val, alarmStatus, alarmSeverity, ts);
};
//1
int getCache(const unsigned int handle, dbr_short_t * _val)
{
return cafeSchale.getCache(handle, DBR_SHORT, _val);
};
int getCache(const unsigned int handle, dbr_short_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
return cafeSchale.getCache(handle, DBR_STS_SHORT, _val, alarmStatus, alarmSeverity);
};
int getCache(const unsigned int handle, dbr_short_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
return cafeSchale.getCache(handle, DBR_TIME_SHORT, _val, alarmStatus, alarmSeverity, ts);
};
int getCacheDbrStringArray(const unsigned int handle, dbr_string_t * _val)
{
return cafeSoluble.getCache(handle, DBR_STRING, _val);
};
//0
int getCache(const unsigned int handle, dbr_string_t * _val)
{
return cafeSoluble.getCache(handle, DBR_STRING, _val);
};
int getCache(const unsigned int handle, dbr_string_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
return cafeSoluble.getCache(handle, DBR_STS_STRING, _val, alarmStatus, alarmSeverity);
};
int getCache(const unsigned int handle, dbr_string_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
return cafeSoluble.getCache(handle, DBR_TIME_STRING, _val, alarmStatus, alarmSeverity, ts);
}
//0+
int getCacheStringArray(const unsigned int handle, string * valStr)
{
dbr_string_t * _val = new dbr_string_t[handleHelper.getNelemRequest(handle)];
status=cafeSoluble.getCache(handle, DBR_STRING, _val);
for (unsigned int i=0; i< handleHelper.getNelemRequest(handle); ++i) {
valStr[i]=_val[i];
}
delete [] _val;
return status;
};
int getCache(const unsigned int handle, string * valStr)
{
dbr_string_t * _val = new dbr_string_t[handleHelper.getNelemRequest(handle)];
status=cafeSoluble.getCache(handle, DBR_STRING, _val);
for (unsigned int i=0; i< handleHelper.getNelemRequest(handle); ++i) {
valStr[i]=_val[i];
}
delete [] _val;
return status;
};
int getCache(const unsigned int handle, string * valStr, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
dbr_string_t * _val = new dbr_string_t[handleHelper.getNelemRequest(handle)];
status=cafeSoluble.getCache(handle, DBR_STS_STRING, _val, alarmStatus, alarmSeverity);
for (unsigned int i=0; i< handleHelper.getNelemRequest(handle); ++i) {
valStr[i]=_val[i];
}
delete [] _val;
return status;
};
int getCache(const unsigned int handle, string * valStr, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
dbr_string_t * _val = new dbr_string_t[handleHelper.getNelemRequest(handle)];
status=cafeSoluble.getCache(handle, DBR_TIME_STRING, _val, alarmStatus, alarmSeverity, ts);
for (unsigned int i=0; i< handleHelper.getNelemRequest(handle); ++i) {
valStr[i]=_val[i];
}
delete [] _val;
return status;
}
//Single value
//0+
int getCacheString(const unsigned int handle, string & valStr) //0
{
unsigned int nelemPrevious=CAFE::setNelemToRetrieveFromCacheToOne(handle);
dbr_string_t val[1]= {""};
status=cafeSoluble.getCache(handle, DBR_STRING, val);
if (status==ICAFE_NORMAL) {
valStr=val[0];
}
CAFE::setNelemToRetrieveFromCacheToPrevious(handle, nelemPrevious);
return status;
}
int getCache(const unsigned int handle, string & valStr) //0
{
unsigned int nelemPrevious=CAFE::setNelemToRetrieveFromCacheToOne(handle);
dbr_string_t val[1]= {""};
status=cafeSoluble.getCache(handle, DBR_STRING, val);
if (status==ICAFE_NORMAL) {
valStr=val[0];
}
CAFE::setNelemToRetrieveFromCacheToPrevious(handle, nelemPrevious);
return status;
}
int getCache(const unsigned int handle, string & valStr, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity) //0
{
unsigned int nelemPrevious=CAFE::setNelemToRetrieveFromCacheToOne(handle);
dbr_string_t val[1]= {""};
status=cafeSoluble.getCache(handle, DBR_STS_STRING, val, alarmStatus, alarmSeverity);
if (status==ICAFE_NORMAL) {
valStr=val[0];
}
CAFE::setNelemToRetrieveFromCacheToPrevious(handle, nelemPrevious);
return status;
}
int getCache(const unsigned int handle, string & valStr,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts) //0
{
unsigned int nelemPrevious=CAFE::setNelemToRetrieveFromCacheToOne(handle);
dbr_string_t val[1]= {""};
status=cafeSoluble.getCache(handle, DBR_TIME_STRING, val, alarmStatus, alarmSeverity, ts);
if (status==ICAFE_NORMAL) {
valStr=val[0];
}
CAFE::setNelemToRetrieveFromCacheToPrevious(handle, nelemPrevious);
return status;
}
int getCache(const unsigned int handle, dbr_string_t & val); //0
int getCache(const unsigned int handle, dbr_string_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //0
int getCache(const unsigned int handle, dbr_string_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //0
int getCache(const unsigned int handle, dbr_short_t & val); //1
int getCache(const unsigned int handle, dbr_short_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //1
int getCache(const unsigned int handle, dbr_short_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //1
int getCache(const unsigned int handle, dbr_float_t & val); //2
int getCache(const unsigned int handle, dbr_float_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //2
int getCache(const unsigned int handle, dbr_float_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //2
int getCache(const unsigned int handle, dbr_enum_t & val); //3
int getCache(const unsigned int handle, dbr_enum_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //3
int getCache(const unsigned int handle, dbr_enum_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //3
int getCache(const unsigned int handle, dbr_char_t & val); //4
int getCache(const unsigned int handle, dbr_char_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //4
int getCache(const unsigned int handle, dbr_char_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //4
int getCacheLong(const unsigned int handle, dbr_long_t & val)
{
return getCache(handle, val);
}
int getCache(const unsigned int handle, dbr_long_t & val); //5
int getCache(const unsigned int handle, dbr_long_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //5
int getCache(const unsigned int handle, dbr_long_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //5
int getCache(const unsigned int handle, long long & val); //5+
int getCache(const unsigned int handle, long long & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //5+
int getCache(const unsigned int handle, long long & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //5+
int getCacheDouble(const unsigned int handle, dbr_double_t & val)
{
return getCache(handle, val);
}
int getCache(const unsigned int handle, dbr_double_t & val); //6
int getCache(const unsigned int handle, dbr_double_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //6
int getCache(const unsigned int handle, dbr_double_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //6
//getCache by array of handles
//0+
int getCache(const unsigned int *handleArray, unsigned int nelem, string * valStr, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts)
{
dbr_string_t * val = new dbr_string_t[nelem];
status=cafeSoluble.getCache(handleArray, nelem, DBR_TIME_STRING, val, statusArray,
alarmStatus, alarmSeverity, ts);
for (unsigned int i=0; i< nelem; ++i) {
valStr[i]=val[i];
}
delete [] val;
return status;
};
int getCache(const unsigned int *handleArray, unsigned int nelem, string * valStr, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity)
{
dbr_string_t * val = new dbr_string_t[nelem];
status=cafeSoluble.getCache(handleArray, nelem, DBR_STS_STRING, val, statusArray,
alarmStatus, alarmSeverity);
for (unsigned int i=0; i< nelem; ++i) {
valStr[i]=val[i];
}
delete [] val;
return status;
};
int getCache (const unsigned int *handleArray, unsigned int nelem, string * valStr, int *statusArray)
{
dbr_string_t * val = new dbr_string_t[nelem];
status=cafeSoluble.getCache(handleArray, nelem, DBR_STRING, val, statusArray);
for (unsigned int i=0; i< nelem; ++i) {
valStr[i]=val[i];
}
delete [] val;
return status;
}
//0
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_string_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts)
{
return cafeSoluble.getCache(handleArray, nelem, DBR_TIME_STRING, val, statusArray,
alarmStatus, alarmSeverity, ts);
};
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_string_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity)
{
return cafeSoluble.getCache(handleArray, nelem, DBR_STS_STRING, val, statusArray,
alarmStatus, alarmSeverity);
};
int getCache (const unsigned int *handleArray, unsigned int nelem, dbr_string_t * val, int *statusArray)
{
return cafeSoluble.getCache(handleArray, nelem, DBR_STRING, val, statusArray);
}
//1
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_short_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts)
{
return cafeSchale.getCache(handleArray, nelem, DBR_TIME_SHORT, val, statusArray,
alarmStatus, alarmSeverity, ts);
};
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_short_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity)
{
return cafeSchale.getCache(handleArray, nelem, DBR_STS_SHORT, val, statusArray,
alarmStatus, alarmSeverity);
};
int getCache (const unsigned int *handleArray, unsigned int nelem, dbr_short_t * val, int *statusArray)
{
return cafeSchale.getCache(handleArray, nelem, DBR_SHORT, val, statusArray);
}
//2
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_float_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts)
{
return cafeFrappuccino.getCache(handleArray, nelem, DBR_TIME_FLOAT, val, statusArray,
alarmStatus, alarmSeverity, ts);
};
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_float_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity)
{
return cafeFrappuccino.getCache(handleArray, nelem, DBR_STS_FLOAT, val, statusArray,
alarmStatus, alarmSeverity);
};
int getCache (const unsigned int *handleArray, unsigned int nelem, dbr_float_t * val, int *statusArray)
{
return cafeFrappuccino.getCache(handleArray, nelem, DBR_FLOAT, val, statusArray);
}
//3
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_ushort_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts)
{
return cafeEspresso.getCache(handleArray, nelem, DBR_TIME_ENUM, val, statusArray,
alarmStatus, alarmSeverity, ts);
};
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_ushort_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity)
{
return cafeEspresso.getCache(handleArray, nelem, DBR_STS_ENUM, val, statusArray,
alarmStatus, alarmSeverity);
};
int getCache (const unsigned int *handleArray, unsigned int nelem, dbr_ushort_t * val, int *statusArray)
{
return cafeEspresso.getCache(handleArray, nelem, DBR_ENUM, val, statusArray);
}
//4
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_char_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts)
{
return cafeCappuccino.getCache(handleArray, nelem, DBR_TIME_CHAR, val, statusArray,
alarmStatus, alarmSeverity, ts);
};
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_char_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity)
{
return cafeCappuccino.getCache(handleArray, nelem, DBR_STS_CHAR, val, statusArray,
alarmStatus, alarmSeverity);
};
int getCache (const unsigned int *handleArray, unsigned int nelem, dbr_char_t * val, int *statusArray)
{
return cafeCappuccino.getCache(handleArray, nelem, DBR_CHAR, val, statusArray);
}
//5
int getCache(unsigned int *handleArray, unsigned int nelem, dbr_long_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts)
{
return cafeLatte.getCache(handleArray, nelem, DBR_TIME_LONG, val, statusArray,
alarmStatus, alarmSeverity, ts);
};
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_long_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity)
{
return cafeLatte.getCache(handleArray, nelem, DBR_STS_LONG, val, statusArray,
alarmStatus, alarmSeverity);
};
int getCache (const unsigned int *handleArray, unsigned int nelem, dbr_long_t * val, int *statusArray)
{
return cafeLatte.getCache(handleArray, nelem, DBR_LONG, val, statusArray);
}
//5+ long long
int getCache(const unsigned int *handleArray, unsigned int nelem, long long * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts);
int getCache(const unsigned int *handleArray, unsigned int nelem, long long * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity);
int getCache (const unsigned int *handleArray, unsigned int nelem, long long * val, int *statusArray);
//6
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_double_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts)
{
return cafeDoppio.getCache(handleArray, nelem, DBR_TIME_DOUBLE, val, statusArray,
alarmStatus, alarmSeverity, ts);
};
int getCache(const unsigned int *handleArray, unsigned int nelem, dbr_double_t * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity)
{
return cafeDoppio.getCache(handleArray, nelem, DBR_STS_DOUBLE, val, statusArray,
alarmStatus, alarmSeverity);
};
int getCache (const unsigned int *handleArray, unsigned int nelem, dbr_double_t * val, int *statusArray)
{
return cafeDoppio.getCache(handleArray, nelem, DBR_DOUBLE, val, statusArray);
}
////////////////////////////////////////////// by PV name ///////////////////////////////////
int getCache(const char * pv, string & valStr); //0+
int getCache(const char * pv, string & valStr, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //0+
int getCache(const char * pv, string & valStr,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //0+
int getCache(const char * pv, dbr_string_t & val); //0
int getCache(const char * pv, dbr_string_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //0
int getCache(const char * pv, dbr_string_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //0
int getCache(const char * pv, dbr_short_t & val); //1
int getCache(const char * pv, dbr_short_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //1
int getCache(const char * pv, dbr_short_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //1
int getCache(const char * pv, dbr_float_t & val); //2
int getCache(const char * pv, dbr_float_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //2
int getCache(const char * pv, dbr_float_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //2
int getCache(const char * pv, dbr_enum_t & val); //3
int getCache(const char * pv, dbr_enum_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //3
int getCache(const char * pv, dbr_enum_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //3
int getCache(const char * pv, dbr_char_t & val); //4
int getCache(const char * pv, dbr_char_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //4
int getCache(const char * pv, dbr_char_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //4
int getCache(const char * pv, dbr_long_t & val); //5
int getCache(const char * pv, dbr_long_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //5
int getCache(const char * pv, dbr_long_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //5
int getCache(const char * pv, long long & val) //5+
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return CAFE::getCache(handle, val);
}
int getCache(const char * pv, long long & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity) //5+
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return CAFE::getCache(handle, val, alarmStatus, alarmSeverity);
}
int getCache(const char * pv, long long & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts) //5+
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return CAFE::getCache(handle, val, alarmStatus, alarmSeverity, ts);
}
int getCache(const char * pv, dbr_double_t & val); //6
int getCache(const char * pv, dbr_double_t & val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity); //6
int getCache(const char * pv, dbr_double_t & val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts); //6
//6
int getCache(const char * pv, dbr_double_t * _val)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeDoppio.getCache(handle, DBR_DOUBLE, _val);
};
int getCache(const char * pv, dbr_double_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeDoppio.getCache(handle, DBR_STS_DOUBLE, _val, alarmStatus, alarmSeverity);
};
int getCache(const char * pv, dbr_double_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeDoppio.getCache(handle, DBR_TIME_DOUBLE, _val, alarmStatus, alarmSeverity, ts);
};
//5+
int getCache(const char * pv, long long * _val)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return CAFE::getCache(handle, _val);
};
int getCache(const char * pv, long long * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return CAFE::getCache(handle, _val, alarmStatus, alarmSeverity);
};
int getCache(const char * pv, long long * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return CAFE::getCache(handle, _val, alarmStatus, alarmSeverity, ts);
};
//5
int getCache(const char * pv, dbr_long_t * _val)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeLatte.getCache(handle, DBR_LONG, _val);
};
int getCache(const char * pv, dbr_long_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeLatte.getCache(handle, DBR_STS_LONG, _val, alarmStatus, alarmSeverity);
};
int getCache(const char * pv, dbr_long_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeLatte.getCache(handle, DBR_TIME_LONG, _val, alarmStatus, alarmSeverity, ts);
};
//4
int getCache(const char * pv, dbr_char_t * _val)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeCappuccino.getCache(handle, DBR_CHAR, _val);
};
int getCache(const char * pv, dbr_char_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeCappuccino.getCache(handle, DBR_STS_ENUM, _val, alarmStatus, alarmSeverity);
};
int getCache(const char * pv, dbr_char_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeCappuccino.getCache(handle, DBR_TIME_ENUM, _val, alarmStatus, alarmSeverity, ts);
};
//3
int getCache(const char * pv, dbr_enum_t * _val)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeEspresso.getCache(handle, DBR_ENUM, _val);
};
int getCache(const char * pv, dbr_enum_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeEspresso.getCache(handle, DBR_STS_ENUM, _val, alarmStatus, alarmSeverity);
};
int getCache(const char * pv, dbr_enum_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeEspresso.getCache(handle, DBR_TIME_ENUM, _val, alarmStatus, alarmSeverity, ts);
};
//2
int getCache(const char * pv, dbr_float_t * _val)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeFrappuccino.getCache(handle, DBR_FLOAT, _val);
};
int getCache(const char * pv, dbr_float_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeFrappuccino.getCache(handle, DBR_STS_FLOAT, _val, alarmStatus, alarmSeverity);
};
int getCache(const char * pv, dbr_float_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeFrappuccino.getCache(handle, DBR_TIME_FLOAT, _val, alarmStatus, alarmSeverity, ts);
};
//1
int getCache(const char * pv, dbr_short_t * _val)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeSchale.getCache(handle, DBR_SHORT, _val);
};
int getCache(const char * pv, dbr_short_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeSchale.getCache(handle, DBR_STS_SHORT, _val, alarmStatus, alarmSeverity);
};
int getCache(const char * pv, dbr_short_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeSchale.getCache(handle, DBR_TIME_SHORT, _val, alarmStatus, alarmSeverity, ts);
};
//0
int getCache(const char * pv, dbr_string_t * _val)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeSoluble.getCache(handle, DBR_STRING, _val);
};
int getCache(const char * pv, dbr_string_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeSoluble.getCache(handle, DBR_STS_STRING, _val, alarmStatus, alarmSeverity);
};
int getCache(const char * pv, dbr_string_t * _val, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
return cafeSoluble.getCache(handle, DBR_TIME_STRING, _val, alarmStatus, alarmSeverity, ts);
}
//0+
int getCache(const char * pv, string * valStr)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
dbr_string_t * _val = new dbr_string_t[handleHelper.getNelemRequest(handle)];
status=cafeSoluble.getCache(handle, DBR_STRING, _val);
for (unsigned int i=0; i< handleHelper.getNelemRequest(handle); ++i) {
valStr[i]=_val[i];
}
delete [] _val;
return status;
};
int getCache(const char * pv, string * valStr, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
dbr_string_t * _val = new dbr_string_t[handleHelper.getNelemRequest(handle)];
status=cafeSoluble.getCache(handle, DBR_STS_STRING, _val, alarmStatus, alarmSeverity);
for (unsigned int i=0; i< handleHelper.getNelemRequest(handle); ++i) {
valStr[i]=_val[i];
}
delete [] _val;
return status;
};
int getCache(const char * pv, string * valStr, dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts)
{
unsigned int handle=handleHelper.getHandleFromPV(pv);
dbr_string_t * _val = new dbr_string_t[handleHelper.getNelemRequest(handle)];
status=cafeSoluble.getCache(handle, DBR_TIME_STRING, _val, alarmStatus, alarmSeverity, ts);
for (unsigned int i=0; i< handleHelper.getNelemRequest(handle); ++i) {
valStr[i]=_val[i];
}
delete [] _val;
return status;
}
#endif // CAFECACHE_H

View File

@@ -237,9 +237,12 @@ private:
//void * PyDataEventHandler() const;
//void * PyCtrlEventHandler() const;
void * CyEventHandler() const;
void * CyDataEventHandler() const;
void * CyCtrlEventHandler() const;
void * CyMonitorHandler() const; //can handle all three cb signatures
//void * CyHandleHandler() const; //handle
//void * CyEventHandler() const; //handle, pv
//void * CyDataEventHandler() const; //handle, pv, pvdata
void * CyCtrlEventHandler() const; //handle, pv, pvctrl
bool pyOpenCallbackFlag;
@@ -738,6 +741,8 @@ public:
std::cout << "getMonitorPolicyVector(monitor_id): " << monitor_id << " NOT FOUND! " << std::endl;
std::cout << "Could not modify entry!" << std::endl;
}
MonitorPolicy mp;
return mp;
};
std::vector<MonitorPolicy> getMonitorPolicyVector(void) const

View File

@@ -15,6 +15,7 @@
/**
* Friend to Conduit/CAFEGroup records the connection_handler_args struct from callback fns
* in hash table
* Function is not invoked on closechannel by user
*/
struct change_connectionHandlerArgs
{
@@ -34,7 +35,7 @@ struct change_connectionHandlerArgs
// but we do not overwrite it upon disconnect.
//std::cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << std::endl;
//std::cout << new_connectionHandlerArgs.op << std::endl;
//connectFlag
if (new_connectionHandlerArgs.op == CA_OP_CONN_UP)
{

View File

@@ -22,18 +22,19 @@ struct change_eventHandlerArgs
#define __METHOD__ "change_eventHandlerArgs"
change_eventHandlerArgs (const struct event_handler_args & new_eventHandlerArgs) :
new_eventHandlerArgs(new_eventHandlerArgs) {}
void operator() (Conduit& c)
{
//c.eventHandlerArgs = new_eventHandlerArgs;
c.status= new_eventHandlerArgs.status;
if(c.status!=ECA_NORMAL) {
std::cout << __METHOD__ << " STATUS IS " << c.status << std::endl;
std::cout << __METHOD__ << " return from method enforced " << std::endl;
std::cout << __METHOD__ << " return from method ***IS*** enforced " << std::endl;
return;
}
//std::cout << __METHOD__ << " STATUS IS " << c.status << std::endl;
Helper helper;
@@ -641,9 +642,16 @@ struct change_eventHandlerArgs
((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->precision;
(*(&((c.ctrlBuffer)->cdblval.RISC_pad0))) =
(dbr_short_t) ((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->RISC_pad0; //dbr_short_t
//std::cout << __METHOD__ << __LINE__ << std::endl;
//std::cout << ((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->units << std::endl;
memcpy((*(&((c.ctrlBuffer)->cdblval.units))),
&(((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->units),
sizeof(char[MAX_UNITS_SIZE]));
sizeof( char[MAX_UNITS_SIZE])); // (((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->units) ));
(*(&((c.ctrlBuffer)->cdblval.upper_disp_limit))) =
((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->upper_disp_limit;
(*(&((c.ctrlBuffer)->cdblval.lower_disp_limit))) =

View File

@@ -696,7 +696,7 @@ public:
}
else
{
std::cout<< "Input handle " << handle << " does not exists! " << std::endl;
std::cout<< "Input handle " << handle << " does not exist! " << std::endl;
return false;
}
}

View File

@@ -83,6 +83,17 @@ public:
ca_client_context * getContextFromPV (const char * _pv);
ca_client_context * getContextFromHandle (unsigned int _handle);
cafeConduit_set_by_handle::iterator getIterFromHandle(unsigned int handle);
cafeConduit_set_by_handle & getcsHandleIndex();
int modifyHandleIndexStatus(unsigned int handle, long status);
int modifyChannelRequestMetaDataClient(unsigned int handle,
ChannelRequestMetaDataClient channelRequestMetaDataClient);
int modifyChannelRequestStatusGet(unsigned int handle,
ChannelRequestStatus channelRequestStatusGet);
int modifyChannelTimeoutPolicyGet(unsigned int handle,
ChannelTimeoutPolicy channelTimeoutPolicyGet);
const char * getPVFromHandle (unsigned int _handle);
const char * getPVFromHandle (unsigned int _handle, ca_client_context * ccc);
@@ -93,6 +104,8 @@ public:
const char * getPVAlias (unsigned int _handle);
const char * getPVAlias (unsigned int _handle, ca_client_context * ccc);
unsigned int getHandleFromPV (const char * _pv);
unsigned int getHandleFromPV (const char * _pv, ca_client_context * ccc);
unsigned int getHandleFromPVAlias(const char * _pv);
@@ -327,6 +340,9 @@ public:
int getMonitorAction(unsigned int _handle, std::vector<std::string> &msV);
std::vector<std::string> getMonitorAction(bool onlyIfNewData); //all handles; false gives all
int updateMonitorPolicyDeltaMS(unsigned int _handle, unsigned int _monid,
unsigned short deltaMS);
int getMonitorPolicyVector(unsigned int _handle, std::vector<MonitorPolicy> &mpV);
int getMonitorPolicyInWaitingVector(unsigned int _handle, std::vector<MonitorPolicy> &mpV);
int getNmonitor(unsigned int _handle);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

61
include/instantT.h Normal file
View File

@@ -0,0 +1,61 @@
///
/// \file instantT.h
/// \author Jan Chrin, PSI
/// \date Release: July 2021
/// \version CAFE 1.14.2
///
#ifndef INSTANT_T_H
#define INSTANT_T_H
#include <instant.h>
template <class CTYPE> int Instant<CTYPE>::set(const unsigned int _handle,
const chtype _dbrType, const CTYPE * _val );
template <class CTYPE> int Instant<CTYPE>::get(const unsigned int _handle,
const chtype _dbrType, CTYPE * _val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts);
template <class CTYPE> int Instant<CTYPE>::getCache(const unsigned int _handle,
const chtype _dbrType, CTYPE * _val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts);
template <class CTYPE> int Instant<CTYPE>::getCache(const unsigned int *handleArray, const unsigned int nelem,
const chtype _dbrType, CTYPE * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts);
template <class CTYPE> int Instant<CTYPE>::set(const unsigned int *handleArray, const unsigned int nelem,
onst chtype _dbrType, const CTYPE * val, int *statusArray);
template <class CTYPE> int Instant<CTYPE>::clientRequests(
const unsigned int _handle,
const chtype _dbrType, CTYPE * _val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts, bool isCacheRequest);
template <class CTYPE> int Instant<CTYPE>::clientRequests(
const unsigned int _handle, const chtype _dbrType, const CTYPE * _val);
template <class CTYPE> int Instant<CTYPE>::setAndGet(const unsigned int handleSet, const chtype dbrType, CTYPE valSet, CTYPE &valGet);
template <class CTYPE> int Instant<CTYPE>::setMany(std::vector<unsigned int> handleSet, const chtype dbrType, std::vector<CTYPE> valSet, bool printFlag);
template <class CTYPE> int Instant<CTYPE>::compareAndMatchMany(std::vector<unsigned int> handleSet, const chtype dbrType, std::vector<CTYPE> valSet, std::vector<unsigned int> handleMatch,
CTYPE tolerance, double timeout, bool printFlag);
//template <class CTYPE> int Instant<CTYPE>::setTriggerAndMatchMany(std::vector<unsigned int> handleSet, chtype dbrType, std::vector<CTYPE> valSet,
template <class CTYPE> int Instant<CTYPE>::setAndMatchMany(std::vector<unsigned int> handleSet, chtype dbrType, std::vector<CTYPE> valSet, std::vector<unsigned int> handleMatch,
CTYPE tolerance, double timeout, bool printFlag);
template <class CTYPE> int Instant<CTYPE>::setAndMatch(const unsigned int handleSet, const chtype dbrType, CTYPE valSet, const unsigned int handleMatch,
CTYPE tolerance, double timeout, bool printFlag);
template <class CTYPE> int Instant<CTYPE>::match(const chtype dbrType, CTYPE valSet, unsigned int handleMatch,
CTYPE tolerance, double timeout, bool printFlag);
template <class CTYPE> int Instant<CTYPE>::matchMany(const chtype dbrType, std::vector<CTYPE> valSet, std::vector<unsigned int> handleMatch, CTYPE tolerance, double timeout, bool printFlag);
#endif

View File

@@ -1,9 +1,8 @@
# makefile.in generated by automake 1.11.1 from makefile.am.
# makefile.in generated by automake 1.13.4 from makefile.am.
# include/makefile. Generated from makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# Copyright (C) 1994-2013 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.
@@ -16,6 +15,51 @@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/cafe
pkgincludedir = $(includedir)/cafe
pkglibdir = $(libdir)/cafe
@@ -38,12 +82,15 @@ host_triplet = x86_64-unknown-linux-gnu
# bitshuffle/bitshuffle_core.h bitshuffle/bitshuffle.h bitshuffle/iochain.h \
# bitshuffle/bitshuffle_internals.h
#bitshuffle/bshuf_h5filter.h
#am__append_2 = PyCafe_api.h
#am__append_3 = PyCafe.h
#if HAVE_PYTHON_
#include_HEADERS += PyCafe_api.h
#endif
am__append_2 = PyCafe.h
#am__append_3 = PyCafe_api.h
subdir = include
DIST_COMMON = $(am__include_HEADERS_DIST) $(srcdir)/makefile.am \
$(srcdir)/makefile.in
DIST_COMMON = $(srcdir)/makefile.in $(srcdir)/makefile.am \
$(am__include_HEADERS_DIST)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -55,8 +102,25 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/./include/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__include_HEADERS_DIST = config.h cafe.h cafeCache.h cafeConvert.h \
cafeDataType.h cafeDataTypeHelper.h cafeEnum.h \
cafeEnumStrings.h cafeRoast.h cafeVectors.h cafeXML.h \
@@ -65,14 +129,14 @@ am__include_HEADERS_DIST = config.h cafe.h cafeCache.h cafeConvert.h \
conduitFriends.h connect.h defines.h deviceCollection.h \
exceptions.h exceptionsHelper.h global.h enumStrings.h \
granules.h handleHelper.h hashConduit.h helper.h instant.h \
instant.cpp loadCollectionXMLParser.h loadGroupXMLParser.h \
loadCollectionXMLParser.h loadGroupXMLParser.h \
methodCallbacks.h policies.h policyHelper.h PVCtrlHolder.h \
PVDataHolder.h PVGroup.h PVHolder.h statusCodes.h transpose.h \
conduitGroup.h hashConduitGroup.h restorePVGroupXMLParser.h \
tmDateMap.h zbsread.h zbsHash.h zbsdtHelper.h zbsDataHolders.h \
bitshuffle/bitshuffle_core.h bitshuffle/bitshuffle.h \
bitshuffle/iochain.h bitshuffle/bitshuffle_internals.h \
PyCafe_api.h PyCafe.h
PyCafe.h PyCafe_api.h
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -94,28 +158,52 @@ am__nobase_list = $(am__nobase_strip_setup); \
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 = $(include_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run aclocal-1.11
AMTAR = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run tar
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include
AM_LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing aclocal-1.13
AMTAR = $${TAR-tar}
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/ioc/python/latest/include/python3.10 -I/ioc/python/latest/lib/python3.10/site-packages/numpy/core/include
AM_DEFAULT_VERBOSITY = 1
AM_LDFLAGS = -L/usr/local/epics/base/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/RHEL7-x86_64 -L/ioc/python/latest/lib -Wl,-rpath,/ioc/python/latest/lib
AR = ar
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run automake-1.11
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing automake-1.13
AWK = gawk
CAFE_CPPFLAGS = -I$(top_srcdir)/include
CC = /opt/psi/Programming/gcc/6.3.0/bin/gcc
CC = /opt/psi/Programming/gcc/9.3.0/bin/gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = /opt/psi/Programming/gcc/6.3.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include
CXX = /opt/psi/Programming/gcc/6.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/6.3.0/bin/g++ -E
CPP = /opt/psi/Programming/gcc/9.3.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/ioc/python/latest/include/python3.10 -I/ioc/python/latest/lib/python3.10/site-packages/numpy/core/include
CXX = /opt/psi/Programming/gcc/9.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/9.3.0/bin/g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
CYGPATH_W = echo
@@ -127,27 +215,27 @@ DUMPBIN =
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = /bin/grep -E
EGREP = /usr/bin/grep -E
EXEEXT =
FGREP = /bin/grep -F
GREP = /bin/grep
FGREP = /usr/bin/grep -F
GREP = /usr/bin/grep
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /usr/bin/ld -m elf_x86_64
LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64
LDFLAGS = -L/usr/local/epics/base/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/RHEL7-x86_64 -L/ioc/python/latest/lib -Wl,-rpath,/ioc/python/latest/lib
LIBOBJS =
LIBS =
LIBS = -lpython3.10
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO =
LN_S = ln -s
LTLIBOBJS =
LT_SYS_LIBRARY_PATH =
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run makeinfo
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing makeinfo
MANIFEST_TOOL = :
MKDIR_P = /bin/mkdir -p
MKDIR_P = /usr/bin/mkdir -p
NM = /usr/bin/nm -B
NMEDIT =
OBJDUMP = objdump
@@ -157,29 +245,30 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.12.5
PACKAGE_STRING = CAFE 1.14.4
PACKAGE_TARNAME = cafe
PACKAGE_VERSION = 1.12.5
PACKAGE_URL =
PACKAGE_VERSION = 1.14.4
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /bin/sed
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.12.5
VERSION = 1.14.4
abs_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/include
abs_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/include
abs_top_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_top_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
ac_ct_AR = ar
ac_ct_CC = /opt/psi/Programming/gcc/6.3.0/bin/gcc
ac_ct_CC = /opt/psi/Programming/gcc/9.3.0/bin/gcc
ac_ct_CXX =
ac_ct_DUMPBIN =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build_alias =
@@ -201,15 +290,15 @@ htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/install-sh
libdir = /opt/gfa/cafe/cpp/cafe-noqt-1.12.5-gcc-6.3.0/lib
libdir = /opt/gfa/cafe/cpp/cafe-1.14.4-py310-gcc-9.3.0/lib/RHEL7-x86_64
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /opt/gfa/cafe/cpp/cafe-noqt-1.12.5-gcc-6.3.0
prefix = /opt/gfa/cafe/cpp/cafe-1.14.4-py310-gcc-9.3.0
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
@@ -228,7 +317,7 @@ include_HEADERS = config.h cafe.h cafeCache.h cafeConvert.h \
conduitFriends.h connect.h defines.h deviceCollection.h \
exceptions.h exceptionsHelper.h global.h enumStrings.h \
granules.h handleHelper.h hashConduit.h helper.h instant.h \
instant.cpp loadCollectionXMLParser.h loadGroupXMLParser.h \
loadCollectionXMLParser.h loadGroupXMLParser.h \
methodCallbacks.h policies.h policyHelper.h PVCtrlHolder.h \
PVDataHolder.h PVGroup.h PVHolder.h statusCodes.h transpose.h \
conduitGroup.h hashConduitGroup.h restorePVGroupXMLParser.h \
@@ -274,8 +363,11 @@ clean-libtool:
-rm -rf .libs _libs
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
$(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -289,30 +381,17 @@ uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(includedir)" && rm -f $$files
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
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
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; }; }'`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -324,15 +403,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$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; }; }'`; \
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -341,6 +416,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -392,10 +482,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
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:
@@ -475,18 +570,19 @@ uninstall-am: uninstall-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 \
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
clean-libtool cscopelist-am ctags ctags-am 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-includeHEADERS install-info install-info-am \
install-man 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-includeHEADERS
ps ps-am tags tags-am uninstall uninstall-am \
uninstall-includeHEADERS
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View File

@@ -7,7 +7,7 @@ include_HEADERS = config.h cafe.h cafeCache.h cafeConvert.h cafeDataType.h cafeD
cafeEnumStrings.h cafeRoast.h cafeVectors.h cafeXML.h caopCodes.h channelRegalia.h \
conduit.h conduitConnectionHandlerArgs.h conduitEventHandlerArgs.h conduitFriends.h \
connect.h defines.h deviceCollection.h exceptions.h exceptionsHelper.h global.h \
enumStrings.h granules.h handleHelper.h hashConduit.h helper.h instant.h instant.cpp \
enumStrings.h granules.h handleHelper.h hashConduit.h helper.h instant.h \
loadCollectionXMLParser.h loadGroupXMLParser.h methodCallbacks.h policies.h policyHelper.h \
PVCtrlHolder.h PVDataHolder.h PVGroup.h PVHolder.h statusCodes.h transpose.h \
conduitGroup.h hashConduitGroup.h restorePVGroupXMLParser.h tmDateMap.h
@@ -18,12 +18,13 @@ include_HEADERS += zbsread.h zbsHash.h zbsdtHelper.h zbsDataHolders.h \
bitshuffle/bitshuffle_core.h bitshuffle/bitshuffle.h bitshuffle/iochain.h \
bitshuffle/bitshuffle_internals.h
endif
#bitshuffle/bshuf_h5filter.h
if HAVE_PYTHON_
include_HEADERS += PyCafe_api.h
endif
#if HAVE_PYTHON_
#include_HEADERS += PyCafe_api.h
#endif
if HAVE_PYCAFE_EXT_
include_HEADERS += PyCafe.h
else
include_HEADERS += PyCafe_api.h
endif

View File

@@ -506,7 +506,7 @@ private:
pCallback handler; // for blockingKind=WITH_CALLBACK_DEFAULT or WITH_CALLBACK_USER_SUPPLIED
int callbackStatus; // used by CAFE::waitForGetEvent() to record status of callback
void * cyCallback; // callback provide by python client
public:
ChannelWhenToFlushSendBufferPolicyKind getWhenToFlushSendBuffer() const
@@ -533,6 +533,7 @@ public:
return callbackStatus;
};
void setHandler(pCallback h)
{
if (h!=NULL)
@@ -543,16 +544,26 @@ public:
};
#if HAVE_PYTHON_H
void setPyHandlerGet()
void setPyHandlerGet(void * cythonCallback)
{
cyCallback=cythonCallback;
handler= CALLBACK_CAFE::PyHandlerGet;
methodKind=WITH_CALLBACK_USER_SUPPLIED;
}; //CAFE_CALLBACK::PyHandlerGet
void setPyHandlerPut()
};
//CAFE_CALLBACK::PyHandlerGet
void setPyHandlerPut(void * cythonCallback)
{
cyCallback=cythonCallback;
handler= CALLBACK_CAFE::PyHandlerPut;
methodKind=WITH_CALLBACK_USER_SUPPLIED;
}; //CAFE_CALLBACK::PyHandlerPut
};
//CAFE_CALLBACK::PyHandlerPut
void * getCyCallback() const
{
return cyCallback;
};
#endif
void setMethodKind(ChannelRequestPolicyKind m)
@@ -642,7 +653,7 @@ public:
//Constructors
ChannelRequestPolicy():
whenKind(FLUSH_AFTER_EACH_MESSAGE),waitKind(WAIT),methodKind(WITH_CALLBACK_DEFAULT), //WITHOUT_CALLBACK),
callbackStatus(ICAFE_NORMAL)
callbackStatus(ICAFE_NORMAL), cyCallback(NULL)
{
handler=NULL;
@@ -659,6 +670,7 @@ public:
std::cout << b << " is anINVALID ChannelRequestPolicyKind" << std::endl;
}
handler=NULL;
cyCallback=NULL;
callbackStatus=ICAFE_NORMAL;
whenKind=FLUSH_AFTER_EACH_MESSAGE;
waitKind=WAIT;
@@ -667,6 +679,7 @@ public:
ChannelRequestPolicy(pCallback h)
{
handler=h;
cyCallback=NULL;
methodKind=WITH_CALLBACK_DEFAULT;
whenKind=FLUSH_AFTER_EACH_MESSAGE;
waitKind=WAIT;
@@ -699,6 +712,7 @@ private:
unsigned int mask; //4
pCallback handler; //5
void * cyCallback;
unsigned short nCyCallbackParameters; // 1=handle, 2=handle,pv 3=handle,pv,pvdata
void * userArgs; //6 handle
evid eventID; //output
int status; //output
@@ -706,8 +720,10 @@ private:
unsigned short notifyDeltaMilliSeconds; // Nov. 2020; push to Python Widgets
ptime lastUpdate;
static void PyCallbackHandlerMonitorData(struct event_handler_args args); //pushes pvd,handle,pvname
static void PyCallbackHandlerMonitor(struct event_handler_args args); //pushes handle
static void PyCallbackHandlerMonitorData(struct event_handler_args args); //pushes handle, pvname, pvdata
static void PyCallbackHandlerMonitor(struct event_handler_args args); //pushes handle, pvname
//static void PyCallbackHandlerHandle(struct event_handler_args args); //pushes handle
void setEventID(evid e)
{
@@ -720,8 +736,8 @@ public:
cafeDbrType((CAFENUM::DBR_TYPE) CAFENUM::DBR_TIME),
nelem(0), mask(DBE_VALUE | DBE_LOG | DBE_ALARM),
handler(callbackHandlerMonitor), cyCallback(NULL),
userArgs(NULL), eventID(NULL), status(ICAFE_NORMAL),
notifyDeltaMilliSeconds(0)
nCyCallbackParameters(1), userArgs(NULL), eventID(NULL),
status(ICAFE_NORMAL), notifyDeltaMilliSeconds(0)
{
++idNext;
id = idNext;
@@ -785,6 +801,11 @@ public:
return cyCallback;
};
unsigned short getNoCyCallbackParameters() const
{
return nCyCallbackParameters;
};
pCallback getHandler() const
{
return handler;
@@ -849,6 +870,18 @@ public:
cyCallback=cythonCallback;
}
void setNoCyCallbackParameters(unsigned int nCyCbParam){
nCyCallbackParameters = nCyCbParam;
}
//void setPyCyHandlerHandle(void * cythonCallback)
//{
// handler= PyCallbackHandlerHandle;
// cyCallback=cythonCallback;
//};
void setPyCyHandler(void * cythonCallback)
{
handler= PyCallbackHandlerMonitor;

View File

@@ -28,7 +28,7 @@
template <class CTYPE> class Transpose {
public:
Transpose () {};
Transpose () {useHandleHelper = true;};
~Transpose () {};
HandleHelper handleHelper;
@@ -109,6 +109,8 @@ private:
chtype _dataTypeClient;
char stig [MAX_ENUM_STATES][MAX_ENUM_STRING_SIZE];
bool useHandleHelper; //instantiating global extern cs for use in pybind11
};
@@ -269,8 +271,15 @@ template <class CTYPE> int Transpose<CTYPE>::put(const unsigned int _handle,
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
it_handle = handle_index.find(_handle);
if (it_handle != handle_index.end()) {
@@ -711,7 +720,7 @@ template <class CTYPE> int Transpose<CTYPE>::put(const unsigned int _handle,
//long Transpose<CAFE_DATATYPE_UNION>::put( const unsigned int _handle,
// CAFE_DATATYPE_UNION_SEQ val, CAFE_DATATYPE cdt)
template <class CTYPE> int Transpose<CTYPE>::put( const unsigned int _handle,
template <class CTYPE> int Transpose<CTYPE>::put( const unsigned int _handle,
CAFE_DATATYPE_UNION_SEQ val, CAFE_DATATYPE cdt)
{
#define __METHOD__ "Transpose<CTYPE>::put()"
@@ -720,7 +729,13 @@ template <class CTYPE> int Transpose<CTYPE>::put( const unsigned int _handle,
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
if (it_handle != handle_index.end()) {
@@ -987,7 +1002,14 @@ template <class CTYPE> int Transpose<CTYPE>::putString
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
if (it_handle != handle_index.end()) {
@@ -1264,7 +1286,7 @@ template <class CTYPE> int Transpose<CTYPE>::putString
/**
* \brief Retrieves data transmitted by CA with dbrTypeRequest_DataBuffer
* and then converts to CTYPE i.e. _dataTypeClient
* and then converts to CTYPE i.e. _dataTypeClient
* \param _handle input: handle to Conduit object
* \param val output: CTYPE datatype
* \param alarmStatus output: dbr_short_t
@@ -1281,7 +1303,19 @@ template <class CTYPE> int Transpose<CTYPE>::get(
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
//pybind11 fix
//cafeConduit_set_by_handle & handle_index = helper.getcsHandleIndex();
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
//std::cout << __FILE__ << "//" << __METHOD__ << std::endl;
@@ -1840,7 +1874,14 @@ template <class CTYPE> int Transpose<CTYPE>::getCtrl (
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
if (it_handle != handle_index.end()) {

34
libtool
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Generated automatically by config.status (cafe) 1.12.5
# Libtool was configured on host gfa-lc6-64:
# Generated automatically by config.status (cafe) 1.14.4
# Libtool was configured on host sf-lc7a.psi.ch:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
@@ -76,19 +76,19 @@ build=x86_64-unknown-linux-gnu
build_os=linux-gnu
# A sed program that does not truncate output.
SED="/bin/sed"
SED="/usr/bin/sed"
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed="$SED -e 1s/^X//"
# A grep program that handles long lines.
GREP="/bin/grep"
GREP="/usr/bin/grep"
# An ERE matcher.
EGREP="/bin/grep -E"
EGREP="/usr/bin/grep -E"
# A literal string matcher.
FGREP="/bin/grep -F"
FGREP="/usr/bin/grep -F"
# A BSD- or MS-compatible name lister.
NM="/usr/bin/nm -B"
@@ -97,7 +97,7 @@ NM="/usr/bin/nm -B"
LN_S="ln -s"
# What is the maximum length of a command?
max_cmd_len=1966080
max_cmd_len=1572864
# Object file suffix (normally "o").
objext=o
@@ -162,7 +162,7 @@ old_postuninstall_cmds=""
lock_old_archive_extraction=no
# A C compiler.
LTCC="/opt/psi/Programming/gcc/6.3.0/bin/gcc"
LTCC="/opt/psi/Programming/gcc/9.3.0/bin/gcc"
# LTCC compiler flags.
LTCFLAGS="-g -O2"
@@ -192,7 +192,7 @@ nm_file_list_spec="@"
lt_sysroot=
# Command to truncate a binary pipe.
lt_truncate_bin="/bin/dd bs=4096 count=1"
lt_truncate_bin="/usr/bin/dd bs=4096 count=1"
# The name of the directory that contains temporary libtool files.
objdir=.libs
@@ -282,10 +282,10 @@ finish_eval=""
hardcode_into_libs=yes
# Compile-time system search path for libraries.
sys_lib_search_path_spec="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/lib/gcc/x86_64-pc-linux-gnu/6.3.0 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/lib/gcc /opt/psi/Programming/gcc/6.3.0/lib64 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/lib64 /lib64 /usr/lib64 /opt/psi/Programming/gcc/6.3.0/lib /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/lib /lib /usr/lib "
sys_lib_search_path_spec="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/lib/gcc/x86_64-pc-linux-gnu/9.3.0 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/lib/gcc /opt/psi/Programming/gcc/9.3.0/lib64 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/lib64 /lib64 /usr/lib64 /opt/psi/Programming/gcc/9.3.0/lib /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/lib /lib /usr/lib "
# Detected run-time system search path for libraries.
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib64/atlas /usr/lib64/ctapi /usr/lib64/llvm /usr/lib64/mysql /usr/lib64/papi-4.1.3 /usr/lib64/papi-5.1.1/usr/lib /usr/lib/qt-3.3/lib /usr/lib64/qt-3.3/lib /usr/lib64/tcl8.5/tclx8.4 /usr/lib64/tcl8.5 /usr/lib64/xulrunner "
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib64/atlas /usr/lib64//bind9-export/ /usr/lib64/dyninst /usr/lib64/mysql /usr/lib/oracle/12.2/client64/lib /usr/lib64/tcl8.5/tclx8.4 "
# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
configure_time_lt_sys_library_path=""
@@ -315,7 +315,7 @@ reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
# A language specific compiler.
CC="/opt/psi/Programming/gcc/6.3.0/bin/gcc"
CC="/opt/psi/Programming/gcc/9.3.0/bin/gcc"
# Is the compiler the GNU compiler?
with_gcc=yes
@@ -11694,7 +11694,7 @@ reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
# A language specific compiler.
CC="/opt/psi/Programming/gcc/6.3.0/bin/g++"
CC="/opt/psi/Programming/gcc/9.3.0/bin/g++"
# Is the compiler the GNU compiler?
with_gcc=yes
@@ -11815,17 +11815,17 @@ file_list_spec=""
hardcode_action=immediate
# The directories searched by this compiler when creating a shared library.
compiler_lib_search_dirs="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc /opt/psi/Programming/gcc/6.3.0/lib64/../lib64 /opt/psi/Programming/gcc/6.3.0/lib/../lib64 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /opt/psi/Programming/gcc/6.3.0/lib64 /opt/psi/Programming/gcc/6.3.0/lib /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../.."
compiler_lib_search_dirs="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/9.3.0 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc /opt/psi/Programming/gcc/9.3.0/lib64/../lib64 /opt/psi/Programming/gcc/9.3.0/lib/../lib64 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /opt/psi/Programming/gcc/9.3.0/lib64 /opt/psi/Programming/gcc/9.3.0/lib /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../.."
# Dependencies to place before and after the objects being linked to
# create a shared library.
predep_objects="/usr/lib/../lib64/crti.o /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtbeginS.o"
postdep_objects="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtendS.o /usr/lib/../lib64/crtn.o"
predep_objects="/lib/../lib64/crti.o /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/9.3.0/crtbeginS.o"
postdep_objects="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/9.3.0/crtendS.o /lib/../lib64/crtn.o"
predeps=""
postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path="-L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0 -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc -L/opt/psi/Programming/gcc/6.3.0/lib64/../lib64 -L/opt/psi/Programming/gcc/6.3.0/lib/../lib64 -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/psi/Programming/gcc/6.3.0/lib64 -L/opt/psi/Programming/gcc/6.3.0/lib -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/6.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/6.3.0/../../.."
compiler_lib_search_path="-L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/9.3.0 -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc -L/opt/psi/Programming/gcc/9.3.0/lib64/../lib64 -L/opt/psi/Programming/gcc/9.3.0/lib/../lib64 -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/psi/Programming/gcc/9.3.0/lib64 -L/opt/psi/Programming/gcc/9.3.0/lib -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/9.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../.."
# ### END LIBTOOL TAG CONFIG: CXX

466
makefile
View File

@@ -1,9 +1,8 @@
# makefile.in generated by automake 1.11.1 from makefile.am.
# makefile.in generated by automake 1.13.4 from makefile.am.
# makefile. Generated from makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# Copyright (C) 1994-2013 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.
@@ -16,6 +15,51 @@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/cafe
pkgincludedir = $(includedir)/cafe
pkglibdir = $(libdir)/cafe
@@ -35,14 +79,17 @@ POST_UNINSTALL = :
build_triplet = x86_64-unknown-linux-gnu
host_triplet = x86_64-unknown-linux-gnu
subdir = .
DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
$(srcdir)/makefile.am $(srcdir)/makefile.in \
$(top_srcdir)/./include/config.in $(top_srcdir)/configure \
.//AUTHORS .//COPYING .//ChangeLog .//INSTALL .//NEWS \
.//README .//config.guess .//config.sub .//depcomp \
.//install-sh .//ltmain.sh .//missing AUTHORS COPYING \
ChangeLog INSTALL NEWS config.guess config.sub depcomp \
install-sh ltmain.sh missing
DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
$(srcdir)/makefile.in $(srcdir)/makefile.am \
$(top_srcdir)/configure $(am__configure_deps) \
$(top_srcdir)/./include/config.in $(include_HEADERS) \
.//AUTHORS COPYING .//COPYING .//ChangeLog .//INSTALL .//NEWS \
.//README config.guess .//config.guess config.sub \
.//config.sub depcomp .//depcomp install-sh .//install-sh \
missing .//missing ltmain.sh .//ltmain.sh \
$(top_srcdir)/./config.guess $(top_srcdir)/./config.sub \
$(top_srcdir)/./install-sh $(top_srcdir)/./ltmain.sh \
$(top_srcdir)/./missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -56,15 +103,33 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/./include/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
install-exec-recursive install-html-recursive \
install-info-recursive install-pdf-recursive \
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -86,23 +151,53 @@ am__nobase_list = $(am__nobase_strip_setup); \
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 = $(include_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir dist dist-all distcheck
am__recursive_targets = \
$(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d "$(distdir)" \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; }
if test -d "$(distdir)"; then \
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
am__post_remove_distdir = $(am__remove_distdir)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -130,25 +225,29 @@ am__relativize = \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
DIST_TARGETS = dist-gzip
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run aclocal-1.11
AMTAR = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run tar
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I$(top_srcdir)/include
AM_LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64 @CAFE_LIBS@
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing aclocal-1.13
AMTAR = $${TAR-tar}
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/ioc/python/latest/include/python3.10 -I/ioc/python/latest/lib/python3.10/site-packages/numpy/core/include -I$(top_srcdir)/include
AM_DEFAULT_VERBOSITY = 1
AM_LDFLAGS = -L/usr/local/epics/base/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/RHEL7-x86_64 -L/ioc/python/latest/lib -Wl,-rpath,/ioc/python/latest/lib @CAFE_LIBS@
AR = ar
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run automake-1.11
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing automake-1.13
AWK = gawk
CAFE_CPPFLAGS = -I$(top_srcdir)/include
CC = /opt/psi/Programming/gcc/6.3.0/bin/gcc
CC = /opt/psi/Programming/gcc/9.3.0/bin/gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = /opt/psi/Programming/gcc/6.3.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include
CXX = /opt/psi/Programming/gcc/6.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/6.3.0/bin/g++ -E
CPP = /opt/psi/Programming/gcc/9.3.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/ioc/python/latest/include/python3.10 -I/ioc/python/latest/lib/python3.10/site-packages/numpy/core/include
CXX = /opt/psi/Programming/gcc/9.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/9.3.0/bin/g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
CYGPATH_W = echo
@@ -160,27 +259,27 @@ DUMPBIN =
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = /bin/grep -E
EGREP = /usr/bin/grep -E
EXEEXT =
FGREP = /bin/grep -F
GREP = /bin/grep
FGREP = /usr/bin/grep -F
GREP = /usr/bin/grep
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /usr/bin/ld -m elf_x86_64
LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64
LDFLAGS = -L/usr/local/epics/base/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/RHEL7-x86_64 -L/ioc/python/latest/lib -Wl,-rpath,/ioc/python/latest/lib
LIBOBJS =
LIBS =
LIBS = -lpython3.10
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO =
LN_S = ln -s
LTLIBOBJS =
LT_SYS_LIBRARY_PATH =
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run makeinfo
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing makeinfo
MANIFEST_TOOL = :
MKDIR_P = /bin/mkdir -p
MKDIR_P = /usr/bin/mkdir -p
NM = /usr/bin/nm -B
NMEDIT =
OBJDUMP = objdump
@@ -190,29 +289,30 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.12.5
PACKAGE_STRING = CAFE 1.14.4
PACKAGE_TARNAME = cafe
PACKAGE_VERSION = 1.12.5
PACKAGE_URL =
PACKAGE_VERSION = 1.14.4
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /bin/sed
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.12.5
VERSION = 1.14.4
abs_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_top_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_top_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
ac_ct_AR = ar
ac_ct_CC = /opt/psi/Programming/gcc/6.3.0/bin/gcc
ac_ct_CC = /opt/psi/Programming/gcc/9.3.0/bin/gcc
ac_ct_CXX =
ac_ct_DUMPBIN =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build_alias =
@@ -234,15 +334,15 @@ htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/install-sh
libdir = /opt/gfa/cafe/cpp/cafe-noqt-1.12.5-gcc-6.3.0/lib
libdir = /opt/gfa/cafe/cpp/cafe-1.14.4-py310-gcc-9.3.0/lib/RHEL7-x86_64
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /opt/gfa/cafe/cpp/cafe-noqt-1.12.5-gcc-6.3.0
prefix = /opt/gfa/cafe/cpp/cafe-1.14.4-py310-gcc-9.3.0
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
@@ -259,7 +359,7 @@ ACLOCAL_AMFLAGS = -I m4
all: all-recursive
.SUFFIXES:
am--refresh:
am--refresh: makefile
@:
$(srcdir)/makefile.in: $(srcdir)/makefile.am $(am__configure_deps)
@for dep in $?; do \
@@ -295,10 +395,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
./include/config.h: ./include/stamp-h1
@if test ! -f $@; then \
rm -f ./include/stamp-h1; \
$(MAKE) $(AM_MAKEFLAGS) ./include/stamp-h1; \
else :; fi
@if test ! -f $@; then rm -f ./include/stamp-h1; else :; fi
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) ./include/stamp-h1; else :; fi
./include/stamp-h1: $(top_srcdir)/./include/config.in $(top_builddir)/config.status
@rm -f ./include/stamp-h1
@@ -321,8 +419,11 @@ distclean-libtool:
-rm -f libtool config.lt
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
$(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -336,27 +437,28 @@ uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(includedir)" && rm -f $$files
dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
@fail=; \
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
@@ -371,57 +473,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags
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: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -437,12 +494,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
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; }; }'`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -454,15 +506,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(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; }; }'`; \
ctags: ctags-recursive
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -471,9 +519,31 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscope: cscope.files
test ! -s cscope.files \
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
clean-cscope:
-rm -f cscope.files
cscope.files: clean-cscope cscopelist
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(DISTFILES)
$(am__remove_distdir)
@@ -509,13 +579,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@@ -544,36 +611,36 @@ distdir: $(DISTFILES)
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
$(am__post_remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__post_remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
$(am__post_remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
$(am__post_remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
$(am__post_remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist dist-all:
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
$(am__post_remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
@@ -584,8 +651,8 @@ distcheck: dist
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.lz*) \
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
@@ -595,9 +662,9 @@ distcheck: dist
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod u+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod -R a-w $(distdir)
chmod u+w $(distdir)
mkdir $(distdir)/_build $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -605,6 +672,7 @@ distcheck: dist
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -628,13 +696,21 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
$(am__post_remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@test -n '$(distuninstallcheck_dir)' || { \
echo 'ERROR: trying to run $@ with an empty' \
'$$(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
$(am__cd) '$(distuninstallcheck_dir)' || { \
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
@@ -668,10 +744,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
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:
@@ -753,25 +834,24 @@ ps-am:
uninstall-am: uninstall-includeHEADERS
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.MAKE: $(am__recursive_targets) install-am install-strip
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
distcheck distclean distclean-generic distclean-hdr \
distclean-libtool distclean-tags distcleancheck distdir \
distuninstallcheck 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-includeHEADERS install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-includeHEADERS
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool cscope cscopelist-am ctags ctags-am dist \
dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
dist-xz dist-zip distcheck distclean distclean-generic \
distclean-hdr distclean-libtool distclean-tags distcleancheck \
distdir distuninstallcheck 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-includeHEADERS \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-includeHEADERS
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View File

@@ -1 +1 @@
PyCafe3.cpp
PyCafe_sls.cpp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

156764
src/PyCafe_sls.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

View File

@@ -0,0 +1,116 @@
bitshuffle/bitshuffle.lo: bitshuffle/bitshuffle.c \
/usr/include/stdc-predef.h bitshuffle/bitshuffle.h /usr/include/stdlib.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/byteswap-16.h \
/usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/sigset.h \
/usr/include/bits/time.h /usr/include/sys/sysmacros.h \
/usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/bits/stdlib-float.h bitshuffle/bitshuffle_core.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
bitshuffle/bitshuffle_internals.h bitshuffle/iochain.h \
.././include/lz4.h /usr/include/stdio.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
/usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
/usr/include/bits/string.h /usr/include/bits/string2.h
/usr/include/stdc-predef.h:
bitshuffle/bitshuffle.h:
/usr/include/stdlib.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/bits/byteswap-16.h:
/usr/include/sys/types.h:
/usr/include/time.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/bits/time.h:
/usr/include/sys/sysmacros.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/bits/stdlib-float.h:
bitshuffle/bitshuffle_core.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdint.h:
/usr/include/stdint.h:
/usr/include/bits/wchar.h:
bitshuffle/bitshuffle_internals.h:
bitshuffle/iochain.h:
.././include/lz4.h:
/usr/include/stdio.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdarg.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
/usr/include/bits/stdio.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/bits/string.h:
/usr/include/bits/string2.h:

View File

@@ -0,0 +1,123 @@
bitshuffle/bitshuffle_core.lo: bitshuffle/bitshuffle_core.c \
/usr/include/stdc-predef.h bitshuffle/bitshuffle_core.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdint.h \
/usr/include/stdint.h /usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h /usr/include/bits/wchar.h \
/usr/include/stdlib.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/byteswap-16.h \
/usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/sigset.h \
/usr/include/bits/time.h /usr/include/sys/sysmacros.h \
/usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/bits/stdlib-float.h bitshuffle/bitshuffle_internals.h \
bitshuffle/iochain.h /usr/include/stdio.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
/usr/include/bits/stdio.h /usr/include/string.h /usr/include/xlocale.h \
/usr/include/bits/string.h /usr/include/bits/string2.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/emmintrin.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/xmmintrin.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/mmintrin.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/mm_malloc.h
/usr/include/stdc-predef.h:
bitshuffle/bitshuffle_core.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdint.h:
/usr/include/stdint.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/include/bits/wchar.h:
/usr/include/stdlib.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/bits/byteswap-16.h:
/usr/include/sys/types.h:
/usr/include/time.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/bits/time.h:
/usr/include/sys/sysmacros.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/bits/stdlib-float.h:
bitshuffle/bitshuffle_internals.h:
bitshuffle/iochain.h:
/usr/include/stdio.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdarg.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
/usr/include/bits/stdio.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/bits/string.h:
/usr/include/bits/string2.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/emmintrin.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/xmmintrin.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/mmintrin.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/mm_malloc.h:

View File

@@ -0,0 +1,68 @@
bitshuffle/iochain.lo: bitshuffle/iochain.c /usr/include/stdc-predef.h \
/usr/include/stdlib.h /usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/byteswap-16.h \
/usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/sigset.h \
/usr/include/bits/time.h /usr/include/sys/sysmacros.h \
/usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/bits/stdlib-float.h bitshuffle/iochain.h
/usr/include/stdc-predef.h:
/usr/include/stdlib.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/bits/byteswap-16.h:
/usr/include/sys/types.h:
/usr/include/time.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/bits/time.h:
/usr/include/sys/sysmacros.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/bits/stdlib-float.h:
bitshuffle/iochain.h:

0
src/bitshuffle/.dirstamp Normal file
View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,12 @@
# bitshuffle/bitshuffle.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.6
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/bitshuffle.o'
# Name of the non-PIC object
non_pic_object='bitshuffle.o'

BIN
src/bitshuffle/bitshuffle.o Normal file

Binary file not shown.

View File

@@ -0,0 +1,12 @@
# bitshuffle/bitshuffle_core.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.6
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/bitshuffle_core.o'
# Name of the non-PIC object
non_pic_object='bitshuffle_core.o'

Binary file not shown.

12
src/bitshuffle/iochain.lo Normal file
View File

@@ -0,0 +1,12 @@
# bitshuffle/iochain.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.6
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/iochain.o'
# Name of the non-PIC object
non_pic_object='iochain.o'

BIN
src/bitshuffle/iochain.o Normal file

Binary file not shown.

View File

@@ -650,6 +650,27 @@ int CAFE::getCache(const unsigned int handle, PVDataHolder & pvd)
if (it_handle != handle_index.end())
{
//Reset any possible put error that preceded call to getCache
if ( (*it_handle).getStatus() == ECAFE_NOWTACCESS ||
(*it_handle).getStatus() == ECA_PUTFAIL ||
(*it_handle).getStatus() == ECA_PUTCBINPROG) {
if(MUTEX)
{
cafeMutex.lock();
}; //lock
//std::cout << "getStatus - before:" << (*it_handle).getStatus() << std::endl;
handle_index.modify(it_handle, change_status(ICAFE_NORMAL));
pvd.status = ICAFE_NORMAL;
//std::cout << "getStatus - after:" << (*it_handle).getStatus() << std::endl;
if(MUTEX)
{
cafeMutex.unlock();
}; //unlock
}
//meant for use in callbacks in monitors!
if ( (*it_handle).getChannelGetCacheWaitPolicy().getWaitKind() == CAFENUM::GET_CACHE_NO_CHECK)
{

View File

@@ -25,8 +25,9 @@ using namespace std;
/**
* \brief Callback function for ca_create_channel.
* Modifies Conduit object accordingly
* Function is not invoked on closechannel by user
* \param args returns connection handler parameters \n
* i.e. args.chid, args.op{CA_OP_CONN_UP, CA_OP_CONN_DOWN}
* i.e. args.chid, args.op{CA_OP_CONN_UP, CA_OP_CONN_DOWN}
*/
void ChannelCreatePolicy::callbackHandlerCreate(struct connection_handler_args args)
{
@@ -315,6 +316,8 @@ void ChannelCreatePolicy::callbackHandlerCreate(struct connection_handler_args a
cafeMutex.unlock();
}
//std::cout << "DISCONNECT - has pycafe " << (*it_handle).getPyCafe() << std::endl;
#if HAVE_PYTHON_H
// monitors
if ((*it_handle).getPyCafe() )
@@ -339,7 +342,8 @@ void ChannelCreatePolicy::callbackHandlerCreate(struct connection_handler_args a
//std::cout << __METHOD__ << __LINE__ << " (*it_handle).CyDataeventHandler(); at DISCCONNECT " << (*it_handle).pv << std::endl;
//cout << "(*it_handle).PyEventHandler(); " << (*itmp).getMonitorID() << endl;
//(*it_handle).PyEventHandler((*itmp).getMonitorID());
(*it_handle).CyDataEventHandler();
//(*it_handle).CyDataEventHandler();
(*it_handle).CyMonitorHandler();
}
//Disconnect signal
if ( (*it_handle).getPyOpenCallbackFlag() )

View File

@@ -14,6 +14,7 @@
#include <methodCallbacks.h>
#include <granules.h>
#define RETURN_ON_ERROR false
using namespace std;
using namespace boost::posix_time;
@@ -31,7 +32,7 @@ void MonitorPolicy::callbackHandlerMonitor( struct event_handler_args args)
{
cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
//return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) ca_puser(args.chid);// args.usr; // ca_puser(args.chid);
@@ -80,7 +81,6 @@ void MonitorPolicy::callbackHandlerMonitor( struct event_handler_args args)
#if HAVE_ZEROMQ
if (SF_WITH_PULSE_ID)
{
cafeConduit_set::iterator itcs;
unsigned long long pulseID=0;
PVDataHolder pvd;
@@ -136,6 +136,91 @@ void MonitorPolicy::callbackHandlerMonitor( struct event_handler_args args)
/**
* \brief Callback function for monitor method is invoked
* with a pointer to the retrieved value; also fires a user supplied Python callback.
* \param args input: event handler arguments
*/
void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
{
#define __METHOD__ "MonitorPolicy::PyCallbackHandlerMonitor"
if (args.status !=ECA_NORMAL)
{
cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) ca_puser(args.chid);// args.usr; // ca_puser(args.chid);
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find((unsigned int)_handle);
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
}
handle_index.modify(it_handle, change_eventHandlerArgs (args));
if(MUTEX)
{
cafeMutex.unlock();
}
#if HAVE_PYTHON_H
unsigned long monid = (unsigned long) (*it_handle).getUsrArgs();
MonitorPolicy mp = (*it_handle).getMonitorPolicy(monid);
ptime timeNow(microsec_clock::local_time());
//Get time of last update as recorded in cache
ptime timePrevious = mp.getLastUpdate(); //(*it_handle).getCallback_ptime();
//Compare times and if delta is greater than requested - fire event
time_duration duration(timeNow-timePrevious);
double timeElapsedMilliseconds= (double) duration.total_milliseconds();
double updateDeltaMillioseconds = mp.getNotifyDeltaMilliSeconds();
//if ( (*it_handle).pv == "SIN-TIMAST-EVG0:TX-PULSEID " ) {
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
//std::cout << "monitorID// " << monid << " wait" << mp.getNotifyDeltaMilliSeconds() << std::endl;
//}
if (timeElapsedMilliseconds < (updateDeltaMillioseconds-5.61)) {
return;
}
else {
mp.setLastUpdate(timeNow);
handle_index.modify(it_handle, change_monitorPolicy(mp));
}
//cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
//(*it_handle).PyEventHandler();
//(*it_handle).CyEventHandler(); //pushes handle, pvname
(*it_handle).CyMonitorHandler();
#endif
}
else
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " Internal CAFE ERROR! Unknown Handle! handle=" << _handle << endl;
}
return;
#undef __METHOD__
}
/**
* \brief Callback function for monitor method is invoked
* with a pointer to the retrieved value; also fires a user supplied Python callback.
@@ -152,7 +237,7 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
{
cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
// return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) ca_puser(args.chid);// args.usr; // ca_puser(args.chid);
@@ -181,7 +266,7 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
#if HAVE_PYTHON_H
//For monitors args.usr is the id of the monitorpolicy class
//std::cout << "usrArgs == " << args.usr << std::endl;
//std::cout << "HAS PYTHON usrArgs == " << args.usr << std::endl;
//Place timecheck here
//Get present timestamp
unsigned long monid = (unsigned long) (*it_handle).getUsrArgs();
@@ -190,7 +275,6 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
//std::cout << "monitorID " << mp.getNotifyDeltaMilliSeconds() << std::endl;
//mp.setNotifyDeltaMilliSeconds(1000);
ptime timeNow(microsec_clock::local_time());
//Get time of last update as recorded in cache
@@ -199,31 +283,31 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
//Compare times and if delta is greater than requested - fire event
time_duration duration(timeNow-timePrevious);
double timeElapsedMilliseconds= (double) duration.total_milliseconds();
double updateDeltaMillioseconds = mp.getNotifyDeltaMilliSeconds(); //1000; //1Hz
double updateDeltaMilliseconds = mp.getNotifyDeltaMilliSeconds(); //1000; //1Hz
//if ( (*it_handle).pv == "SINSB03-DSCR110:ENERGY-OP" ) {
//if ( (*it_handle).pv == "S10BC01-DBPM050:Q1" ) {
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
//std::cout << "monitorID " << monid << " wait" << mp.getNotifyDeltaMilliSeconds() << std::endl;
//}
if (timeElapsedMilliseconds < updateDeltaMillioseconds*0.998) {
if (timeElapsedMilliseconds < (updateDeltaMilliseconds-5.61)) {
return;
}
else {
//update cache with timeNow
// handle_index.modify(it_handle, change_callback_ptime(timeNow));
mp.setLastUpdate(timeNow);
if(MUTEX) { cafeMutex.lock();}
handle_index.modify(it_handle, change_monitorPolicy(mp));
if(MUTEX) { cafeMutex.unlock();}
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
}
if (args.type < DBR_GR_STRING)
{
//(*it_handle).PyDataEventHandler();
(*it_handle).CyDataEventHandler();
//(*it_handle).PyDataEventHandler();
//(*it_handle).CyDataEventHandler();
(*it_handle).CyMonitorHandler();
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
}
else if (args.type < DBR_PUT_ACKT)
@@ -244,12 +328,14 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
};
/**
* \brief Callback function for monitor method is invoked
* with a pointer to the retrieved value; also fires a user supplied Python callback.
* \param args input: event handler arguments
*/
void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
/*
void MonitorPolicy::PyCallbackHandlerHandle (struct event_handler_args args)
{
#define __METHOD__ "MonitorPolicy::PyCallbackHandlerMonitor"
@@ -284,7 +370,6 @@ void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
}
#if HAVE_PYTHON_H
unsigned long monid = (unsigned long) (*it_handle).getUsrArgs();
MonitorPolicy mp = (*it_handle).getMonitorPolicy(monid);
ptime timeNow(microsec_clock::local_time());
@@ -296,11 +381,13 @@ void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
time_duration duration(timeNow-timePrevious);
double timeElapsedMilliseconds= (double) duration.total_milliseconds();
double updateDeltaMillioseconds = mp.getNotifyDeltaMilliSeconds();
//if ( (*it_handle).pv == "SIN-TIMAST-EVG0:TX-PULSEID " ) {
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
//std::cout << "monitorID// " << monid << " wait" << mp.getNotifyDeltaMilliSeconds() << std::endl;
//}
if (timeElapsedMilliseconds < updateDeltaMillioseconds*0.998) {
if (timeElapsedMilliseconds < (updateDeltaMillioseconds-5.61)) {
return;
}
else {
@@ -309,7 +396,7 @@ void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
}
//(*it_handle).PyEventHandler();
(*it_handle).CyEventHandler();
(*it_handle).CyHandleHandler(); //pushes handle only
#endif
}
@@ -318,11 +405,8 @@ void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " Internal CAFE ERROR! Unknown Handle! handle=" << _handle << endl;
}
return;
#undef __METHOD__
}
*/

View File

@@ -277,19 +277,29 @@ void * Conduit::PyConnectHandler() const
void * Conduit::PyGetHandler() const
{
//PVDataHolder pvd(channelRequestMetaData.nelem);
//size is set in conduitEventHandlerArgs.h
//getPVDataHolder(pvd);
//std::cout << "PyGetHandler" << pvd.getAsString(0) << std::endl;
py_cb_handle_get_wrapper(handle);
void * cythonCallback=channelRequestPolicyGet.getCyCallback();
if (cythonCallback == NULL) {
std::cout << " NO CYTHON CALLBACK MATCH FOUND in Conduit::PyGetHandler()" << std::endl;
return (void *) 0; ;
}
cy_cb_handle_get_wrapper(cythonCallback, handle);
//py_cb_handle_get_wrapper(handle);
return (void *) 0;
}
void * Conduit::PyPutHandler() const
{
void * cythonCallback=channelRequestPolicyPut.getCyCallback();
if (cythonCallback == NULL) {
std::cout << " NO CYTHON CALLBACK MATCH FOUND in Conduit::PyPutHandler()" << std::endl;
return (void *) 0; ;
}
py_cb_handle_put_wrapper(handle);
cy_cb_handle_put_wrapper(cythonCallback, handle);
//py_cb_handle_put_wrapper(handle);
return (void *) 0;
}
@@ -302,7 +312,8 @@ void * Conduit::PyPutHandler() const
py_cb_handle_monid_wrapper(handle, (unsigned long) usrArgs);
return (void *) 0;
}*/
}
*/
/*void * Conduit::PyEventHandler(unsigned int monid) const
@@ -312,7 +323,30 @@ void * Conduit::PyPutHandler() const
py_cb_handle_monid_wrapper(handle, monid);
return (void *) 0;
}*/
}
*/
/*
void * Conduit::CyHandleHandler() const
{
void * cythonCallback = NULL;
for (int i=0; i < mpV.size(); ++i) {
if ((unsigned long) mpV[i].getID() == (unsigned long) usrArgs) {
cythonCallback = mpV[i].getCyCallback();
break;
}
}
//std::cout << " cythonCallback " << cythonCallback << std:: endl;
if (cythonCallback == NULL) {
//std::cout << " NO CYTHON CALLBACK MATCH FOUND in Conduit::CyEventHandler()" << std::endl;
return (void *) 0; ;
}
cy_handle_handler_wrapper(cythonCallback, handle);
return (void *) 0;
}
void * Conduit::CyEventHandler() const
@@ -335,6 +369,41 @@ void * Conduit::CyEventHandler() const
}
void * Conduit::CyDataEventHandler() const
{
//std::cout << " void * Conduit::CyDataEventHandler() " << std::endl;
PVDataHolder pvd(channelRequestMetaData.nelem);
//size is set in conduitEventHandlerArgs.h
void * cythonCallback = NULL;
for (int i=0; i < mpV.size(); ++i) {
//std::cout << i << " " << mpV[i].getCyCallback()
// << " " << mpV[i].getID() << " " << pv << " " << handle
// << std::endl;
//std::cout << "user args " << (unsigned long) usrArgs << std::endl;
if ((unsigned long) mpV[i].getID() == (unsigned long) usrArgs) {
cythonCallback = mpV[i].getCyCallback();
break;
}
}
if (cythonCallback == NULL) {
std::cout << " NO CYTHON CALLBACK MATCH FOUND Conduit::CyDataEventHandler()" << std::endl;
return (void *) 0;
}
getPVDataHolder(pvd);
cy_data_event_handler_wrapper(cythonCallback, handle, pv, pvd);
//std::cout << " CYTHON CALLBACK MATCH FOUND Conduit::CyDataEventHandler()" << std::endl;
return (void *) 0;
}
*/
/*void * Conduit::PyDataEventHandler() const
{
PVDataHolder pvd(channelRequestMetaData.nelem);
@@ -344,38 +413,64 @@ void * Conduit::CyEventHandler() const
return (void *) 0;
}*/
void * Conduit::CyDataEventHandler() const
void * Conduit::CyMonitorHandler() const
{
PVDataHolder pvd(channelRequestMetaData.nelem);
//size is set in conduitEventHandlerArgs.h
#define __METHOD__ "Conduit::CyMonitorHandler( "
void * cythonCallback = NULL;
unsigned int ncbparameters = 1;
for (int i=0; i < mpV.size(); ++i) {
//std::cout << i << " " << mpV[i].getCyCallback()
// << " " << mpV[i].getID()
// << std::endl;
if ((unsigned long) mpV[i].getID() == (unsigned long) usrArgs) {
if ((unsigned long) mpV[i].getID() == (unsigned long) usrArgs) {
cythonCallback = mpV[i].getCyCallback();
ncbparameters = mpV[i].getNoCyCallbackParameters();
break;
}
}
if (cythonCallback == NULL) {
//std::cout << " NO CYTHON CALLBACK MATCH FOUND Conduit::CyDataEventHandler()" << std::endl;
std::cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << std::endl;
std::cout << " NO CYTHON CALLBACK MATCH FOUND " << std::endl;
return (void *) 0; ;
}
getPVDataHolder(pvd);
cy_data_event_handler_wrapper(cythonCallback, handle, pv, pvd);
//std::cout << " CYTHON CALLBACK MATCH FOUND Conduit::CyDataEventHandler()" << std::endl;
return (void *) 0;
//ptime timeStart(microsec_clock::local_time());
//double timeElapsed=0;
if (ncbparameters == 0) {
cy_monitor_handler_wrapper(cythonCallback);
}
else if (ncbparameters == 1) {
cy_handle_handler_wrapper(cythonCallback, handle);
}
else if (ncbparameters == 2) {
cy_event_handler_wrapper(cythonCallback, handle, pv);
}
else if (ncbparameters == 3) {
PVDataHolder pvd(channelRequestMetaData.nelem);
getPVDataHolder(pvd);
cy_data_event_handler_wrapper(cythonCallback, handle, pv, pvd);
}
else {
std::cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << std::endl;
std::cout << " Wrong no. cb parameters " << ncbparameters << std::endl;
std::cout << " Allowed are 1 (handle) 2 (+pv) 3 (+pvdata) " << std::endl;
}
//ptime timeEnd(microsec_clock::local_time());
//time_duration duration(timeEnd-timeStart);
//timeElapsed= (double) duration.total_microseconds()/1000000.0;
//std::cout << "timeElapsed " << timeElapsed << std::endl;
return (void *) 0;
#undef __METHOD__
}
/*void * Conduit::PyCtrlEventHandler() const
{
@@ -1163,7 +1258,8 @@ int Conduit::monitorStart(MonitorPolicy &mp) const
}
evid eventID;
int status = ca_create_subscription(mp.getDbrDataType(), mp.getNelem(), channelRegalia.channelID, mp.getMask(),
int status = ca_create_subscription(mp.getDbrDataType(), mp.getNelem(),
channelRegalia.channelID, mp.getMask(),
mp.getHandler(), (void *) mp.getUserArgs(), &eventID);
mp.setEventID(eventID);

View File

@@ -61,7 +61,8 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
cafeConduit_set_by_handle & handle_index= cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
int _status = ICAFE_NORMAL;
it_handle =handle_index.find(handle);
if (it_handle != handle_index.end())
@@ -73,7 +74,7 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
//
Moved to create Handle
*/
status = ca_create_channel(pv, channelCreatePolicy.getHandler(), (void *) (unsigned long) handle,
_status = ca_create_channel(pv, channelCreatePolicy.getHandler(), (void *) (unsigned long) handle,
channelCreatePolicy.getPriority(), &pCh);
if (pCh!=NULL)
@@ -119,25 +120,25 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
ca_replace_access_rights_event(pCh, callbackHandlerAccessRights);
}
if (status != ECA_NORMAL)
if (_status != ECA_NORMAL)
{
cout << __FILE__ << ":" << __LINE__ << endl;
cout << __METHOD__ << " ca_create_channel failed: " << endl;
if (status == ECA_EVDISALLOW)
if (_status == ECA_EVDISALLOW)
{
cout << " due to inappropriate function " << endl;
}
cafeStatus.report(status);
cafeStatus.report(_status);
if(MUTEX)
{
cafeMutex.lock(); //lock
}
handle_index.modify(it_handle, change_status (status) );
handle_index.modify(it_handle, change_status (_status) );
if(MUTEX)
{
cafeMutex.unlock(); //unlock
}
return (int) status;
return (int) _status;
}
//To Flush Send Buffer or not? Examine channelOpenPolicy.
@@ -218,7 +219,8 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
{
return ECAFE_INVALID_HANDLE;
}
return (int) status;
return (int) _status;
#undef __METHOD__
};
@@ -238,6 +240,7 @@ int Connect::createHandle(const char * pv, ca_client_context * ccc, unsigned in
chid pCh = NULL;
std::pair<cafeConduit_set::iterator, bool> p;
int _status = ICAFE_NORMAL;
// CAFEConduit object initialized and placed into hash map
@@ -346,8 +349,9 @@ int Connect::createHandle(const char * pv, ca_client_context * ccc, unsigned in
#endif
// Normal return is ECA_TIMEOUT if pend_io/pend_event is instigated!!
status=createChannel(handle, pv, pCh);
_status=createChannel(handle, pv, pCh);
// Channel Access will spit out an Invalid String Error if pv not a string!
// Possible Errors from ca_create_channel: ECA_NORMAL, ECA_BADTYPE, ECA_STRTOBIG, ECA_ALLOCMEM
// Possible Error from ca_pend_event: ECA_EVDISALLOW
@@ -355,27 +359,28 @@ int Connect::createHandle(const char * pv, ca_client_context * ccc, unsigned in
// IF FAILED THROW EXCEPTION
if (status == ECA_BADSTR)
if (_status == ECA_BADSTR)
{
//Cannot Connect::close(handle) in this event else segmentation fault
CAFEException_pv e;
e = exceptionsHelper.prepareCAFEException_pv("empty", "empty", (*(p.first)).getHandle(), pCh, status,
__METHOD__, __LINE__);
e = exceptionsHelper.prepareCAFEException_pv("empty", "empty", (*(p.first)).getHandle(),
pCh, _status, __METHOD__, __LINE__);
throw (e);
return status;
return _status;
}
else if (status != ECA_NORMAL && status != ECA_TIMEOUT)
else if (_status != ECA_NORMAL && _status != ECA_TIMEOUT)
{
//Connect::close(handle);
CAFEException_pv e;
e = exceptionsHelper.prepareCAFEException_pv((*(p.first)).pv.c_str(), (*(p.first)).pvAlias.c_str(),
(*(p.first)).getHandle(), pCh, status,
(*(p.first)).getHandle(), pCh, _status,
__METHOD__, __LINE__);
throw (e);
return status;
return _status;
}
else if (pCh == NULL)
{
//Connect::close(handle); Close channel in createHandle
CAFEException_pv e;
e = exceptionsHelper.prepareCAFEException_pv( (*(p.first)).pv.c_str(), (*(p.first)).pvAlias.c_str(),
@@ -387,7 +392,7 @@ int Connect::createHandle(const char * pv, ca_client_context * ccc, unsigned in
return ECAFE_NULLCHID;
}
return status;
return _status;
#undef __METHOD__
};
@@ -407,6 +412,8 @@ int Connect::init() //throw (CAFEException_init)
{
#define __METHOD__ "Connect::init()"
int status=ICAFE_NORMAL;
try
{
status=init(ca_enable_preemptive_callback);
@@ -441,8 +448,8 @@ int Connect::init() //throw (CAFEException_init)
int Connect::init(ca_preemptive_callback_select select) //throw (CAFEException_init)
{
#define __METHOD__ "Connect::init(ca_preemptive_callback_select)"
int status=ICAFE_NORMAL;
#if HAVE_PYTHON_H
#if HAVE_PYCAFE_EXT
int pyStatus = PyImport_AppendInittab("PyCafe", PyInit_PyCafe); //Python 3
@@ -456,7 +463,8 @@ int Connect::init(ca_preemptive_callback_select select) //throw (CAFEException_
std::cout << "PyCafe import failed!!" << std::endl;
exit(1);
}
PyInit_PyCafe();
PyInit_PyCafe;
//PyInit_PyCafe_sf();
//Py_Finalize();
//Python 2
//Py_Initialize();
@@ -516,6 +524,8 @@ bool Connect::initCallbackComplete(unsigned int * hArray, unsigned int nHandles)
{
#define __METHOD__ "Connect:initCallbackComplete(unsigned int * hArray, unsigned int nHandle) "
int status=ICAFE_NORMAL;
ChannelRequestStatus cre, crc, crs, crn;
for (unsigned int i=0; i < nHandles; ++i)
{
@@ -573,7 +583,7 @@ int Connect::open(const char ** pvArray, unsigned int * handleArray, const unsig
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(const char **, unsigned int *, const unsigned int)"
int status=ICAFE_NORMAL;
bool flushAtEndFlag=false;
if (channelOpenPolicy.getWhenToFlushSendBuffer()==FLUSH_AFTER_EACH_CHANNEL_CREATION)
@@ -630,7 +640,7 @@ int Connect::open(const std::string *pvArrayS, unsigned int *handleArray, const
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(const std::string *, unsigned int *, unsigned int)"
int status=ICAFE_NORMAL;
bool flushAtEndFlag=false;
if (channelOpenPolicy.getWhenToFlushSendBuffer()==FLUSH_AFTER_EACH_CHANNEL_CREATION)
{
@@ -687,7 +697,7 @@ int Connect::open(std::vector<std::string> pvV, std::vector<unsigned int> &hand
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(vector<string>, vector<unsigned int> &)"
int status=ICAFE_NORMAL;
unsigned int _h=0;
bool flushAtEndFlag=false;
handleV.clear();
@@ -746,7 +756,7 @@ int Connect::open(std::vector<const char *> pvV, std::vector<unsigned int> &hand
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(vector<char *>, vector<unsigned int> &)"
int status=ICAFE_NORMAL;
unsigned int _h=0;
bool flushAtEndFlag=false;
handleV.clear();
@@ -806,7 +816,7 @@ int Connect::open(const char * _pv, const char * _pvAlias, unsigned int & handl
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(const char * pv, const char * _pvAlias, unsigned int & _handle)"
int status=ICAFE_NORMAL;
try
{
status = open (_pv, handle);
@@ -850,14 +860,13 @@ int Connect::open(const char * _pv, unsigned int &handle)
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(const char * _pv, unsigned int &handle)"
int status=ICAFE_NORMAL;
char pv[PVNAME_SIZE];
helper.removeLeadingAndTrailingSpaces(_pv, pv);
// Determine ca-client context
ca_client_context * ccc = ca_current_context();
if (ccc == NULL)
{
try
@@ -885,7 +894,7 @@ int Connect::open(const char * _pv, unsigned int &handle)
// Handles for pvs that are members of a group are treated separately!
handle = handleHelper.getHandleFromPV(pv,ccc);
if (handle != 0)
{
return ICAFE_NORMAL;
@@ -899,7 +908,8 @@ int Connect::open(const char * _pv, unsigned int &handle)
}
catch (CAFEException_pv & e)
{
std::cout << __METHOD__ << " EXCEPTION " << std::endl;
if (e.statusCode != ECA_BADSTR)
{
//ca_flush_io(); // Better Flush or not. Seems that there is not a need.
@@ -916,7 +926,7 @@ int Connect::open(const char * _pv, unsigned int &handle)
std::string ewhat ="CAFEException_open," + std::string(e.pv) + "," + std::to_string(e.handle) + "," \
+ std::to_string(e.statusCode) + "," + e.statusCodeText + "," + e.statusMessage;
CAFEException_open badpv(ewhat);
badpv.pvEx=e;
@@ -940,7 +950,7 @@ int Connect::open(const char * _pv, unsigned int &handle)
int Connect::setPVAlias(unsigned int handle, const char * _pvAlias) //throw(CAFEException_open)
{
#define __METHOD__ "Connect::setPVAlias(unsigned int * _handle, const char * _pv)"
int status=ICAFE_NORMAL;
Helper helper;
char pvAlias[PVNAME_SIZE];
helper.removeLeadingAndTrailingSpaces(_pvAlias, pvAlias);
@@ -1033,7 +1043,7 @@ int Connect::setPVAlias(unsigned int handle, const char * _pvAlias) //throw(CAFE
int Connect::closeChannels(unsigned int * handleArray, unsigned int nHandles)
{
#define __METHOD__ "Connect::closeChannels(unsigned int * handleArray, unsigned int nHandles)"
ca_client_context * cctLocal= ca_current_context();
if (cctLocal == NULL )
{
@@ -1137,7 +1147,7 @@ int Connect::close(unsigned int handle)
// We do not know if this channel belongs to this context!
return ECAFE_NULLCONTEXT;
}
status=ICAFE_NORMAL;
int status=ICAFE_NORMAL;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
@@ -1271,7 +1281,7 @@ int Connect::closeChannels(ca_client_context * cctLocal)
{
return ECAFE_NULLCONTEXT;
}
int status = ICAFE_NORMAL;
int statusGroup = ICAFE_NORMAL;
bool isClearChannel=false;
@@ -1361,7 +1371,7 @@ int Connect::closeChannels(ca_client_context * cctLocal)
int Connect::closeHandle(unsigned int handle)
{
#define __METHOD__ "Connect::closeHandle(unsigned int handle)"
int status = ICAFE_NORMAL;
//We can close handle irrespective of ca_current_context!
ca_client_context * cctLocal= ca_current_context();
status=ICAFE_NORMAL;
@@ -1574,7 +1584,7 @@ int Connect::closeHandles(unsigned int * handleArray, unsigned int nHandles)
int Connect::closeHandles()
{
#define __METHOD__ "Connect::closeHandles()"
int status = ICAFE_NORMAL;
int statusGroup = ECA_NORMAL;
bool isClearChannel =false;
bool isCS =false;
@@ -1649,7 +1659,7 @@ int Connect::closeChannelKeepHandle(unsigned int handle)
{
#define __METHOD__ "Connect::closeChannelKeepHandle(unsigned int handle)"
status=ICAFE_NORMAL;
int status=ICAFE_NORMAL;
//We can close handle irrespective of ca_current_context!
ca_client_context * cctLocal= ca_current_context();
ChannelRegalia channelRegalia;
@@ -2437,7 +2447,7 @@ int Connect::monitorStart(unsigned int handle, MonitorPolicy &mp)
{
#define __METHOD__ "monitorStart(unsigned int handle, MonitorPolicy &mp)"
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
@@ -2602,7 +2612,7 @@ int Connect::monitorStart(unsigned int handle, unsigned int & monitorID)
{
#define __METHOD__ "monitorStart(unsigned int handle, unsigned int & monitorID)"
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
evid eventID = NULL;
monitorID = (unsigned int) 0;
@@ -2711,7 +2721,7 @@ int Connect::monitorPulseID()
throw(e);
}
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
MonitorPolicy mp;
mp.setUserArgs((void *) (long long) (hPulseID));
@@ -2738,7 +2748,7 @@ int Connect::monitorStopPulseID()
#define __METHOD__ "monitorStopPulseID()"
std::string pulseID=SF_PULSE_ID_PV;
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
status = monitorStop(handleHelper.getHandleFromPV(pulseID.c_str()));
return status;
@@ -2755,7 +2765,7 @@ int Connect::monitorStop()
#define __METHOD__ "monitorStop()"
int statusGroup = ECA_NORMAL;
int status = ICAFE_NORMAL;
bool isClearChannel =false;
if (ca_current_context() != NULL)
@@ -2804,7 +2814,7 @@ int Connect::monitorStop(ca_client_context * cctLocal)
{
return ECAFE_NULLCONTEXT;
}
int status = ICAFE_NORMAL;
int statusGroup = ECA_NORMAL;
bool isClearChannel =false;
@@ -2913,7 +2923,7 @@ int Connect::monitorStop(unsigned int handle)
{
#define __METHOD__ "monitorStop(unsigned int _handle)"
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
@@ -3035,7 +3045,7 @@ int Connect::monitorStop (unsigned int handle, unsigned int monitorID)
{
#define __METHOD__ "monitorStop(unsigned int handle, unsigned int monitorID)"
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;

File diff suppressed because it is too large Load Diff

View File

@@ -1077,6 +1077,8 @@ int HandleHelper::getUnits(unsigned int _handle, std::string & units)
if (it_handle != handle_index.end())
{
units = (*it_handle).getUnits();
//cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
//cout << "units" << units << endl;
}
else
{
@@ -1657,6 +1659,123 @@ const char * HandleHelper::getPVAlias(unsigned int handle, ca_client_context * c
#undef __METHOD__
}
cafeConduit_set_by_handle::iterator HandleHelper::getIterFromHandle(unsigned int handle)
{
#define __METHOD__ "HandleHelper::getIterFromHandle(unsigned int handle)"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
//std::cout << __METHOD__ << " pv " << (*it_handle).getPV() << " // " << (*it_handle).handle << std::endl;
return it_handle;
}
else {return it_handle;}
#undef __METHOD__
}
cafeConduit_set_by_handle & HandleHelper::getcsHandleIndex()
{
#define __METHOD__ "HandleHelper::getcsHandleIndex()"
return cs.get<by_handle>();
#undef __METHOD__
}
int HandleHelper::modifyHandleIndexStatus(unsigned int handle, long status)
{
#define __METHOD__ "HandleHelper::modifyHandleIndexStatus()"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
handle_index.modify(it_handle, change_status(status));
}
else
{
std::cout << "Handle=" << handle << " either never existed or no longer exists " << std::endl;
return ECAFE_INVALID_HANDLE;
}
return ICAFE_NORMAL;
#undef __METHOD__
}
int HandleHelper::modifyChannelTimeoutPolicyGet(unsigned int handle,
ChannelTimeoutPolicy channelTimeoutPolicyGet)
{
#define __METHOD__ "HandleHelper::modifyChannelTimeoutPolicyGet()"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
handle_index.modify(it_handle,
change_channelTimeoutPolicyGet(channelTimeoutPolicyGet));
}
else
{
std::cout << "Handle=" << handle << " either never existed or no longer exists " << std::endl;
return ECAFE_INVALID_HANDLE;
}
return ICAFE_NORMAL;
#undef __METHOD__
}
int HandleHelper::modifyChannelRequestStatusGet(unsigned int handle,
ChannelRequestStatus channelRequestStatusGet)
{
#define __METHOD__ "HandleHelper::modifyChannelRequestStatusGet()"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
handle_index.modify(it_handle,
change_channelRequestStatusGet(channelRequestStatusGet));
}
else
{
std::cout << "Handle=" << handle << " either never existed or no longer exists " << std::endl;
return ECAFE_INVALID_HANDLE;
}
return ICAFE_NORMAL;
#undef __METHOD__
}
int HandleHelper::modifyChannelRequestMetaDataClient(unsigned int handle,
ChannelRequestMetaDataClient channelRequestMetaDataClient)
{
#define __METHOD__ "HandleHelper::modifyChannelRequestMetaDataClient()"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
handle_index.modify(it_handle,
change_channelRequestMetaDataClient(channelRequestMetaDataClient));
}
else
{
std::cout << "Handle=" << handle << " either never existed or no longer exists " << std::endl;
return ECAFE_INVALID_HANDLE;
}
return ICAFE_NORMAL;
#undef __METHOD__
}
/**
* \brief Retrieves the process variable from a given handle
@@ -1689,9 +1808,14 @@ const char * HandleHelper::getPVFromHandle(unsigned int handle, ca_client_contex
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
//std::cout << __METHOD__ << "handle_index ==> " << &handle_index << std::endl;
//std::cout << __METHOD__ << "handle_index ==> " << &handle_index << std::endl;
//std::cout << __METHOD__ << "cs " << &cs << std::endl;
if (it_handle != handle_index.end())
{
//std::cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << std::endl;
//std::cout << "Client context: " << ccc << std::endl;
return (*it_handle).getPV();
}
else
@@ -1706,9 +1830,9 @@ const char * HandleHelper::getPVFromHandle(unsigned int handle, ca_client_contex
if ( (*itcs).getHandle()==handle && (*itcs).getClientContext() == ccc)
{
//cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
//cout << " INFORMATION to author: MATCHed Handle= " << handle << " to PV= " << (*itcs).getPV() << endl;
//cout << " by looping through tcs::iterator, while the by_handle::iterator was NOT found! " << endl;
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " INFORMATION to author: MATCHed Handle= " << handle << " to PV= " << (*itcs).getPV() << endl;
cout << " by looping through tcs::iterator, while the by_handle::iterator was NOT found! " << endl;
return (*itcs).getPV();
}
}
@@ -2253,10 +2377,11 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
//Only these have alarm/severity
std::vector<std::string>alarmSeverityRecordTypes;
alarmSeverityRecordTypes.reserve(10);
alarmSeverityRecordTypes.reserve(12);
alarmSeverityRecordTypes.push_back( std::string ( "ai"));
alarmSeverityRecordTypes.push_back( std::string ( "ao"));
alarmSeverityRecordTypes.push_back( std::string ( "calc"));
alarmSeverityRecordTypes.push_back( std::string ( "calcout"));
alarmSeverityRecordTypes.push_back( std::string ( "dfanout"));
alarmSeverityRecordTypes.push_back( std::string ( "longin"));
alarmSeverityRecordTypes.push_back( std::string ( "longout"));
@@ -2266,6 +2391,8 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
alarmSeverityRecordTypes.push_back( std::string ( "steppermotor"));
alarmSeverityRecordTypes.push_back( std::string ( "sub"));
//else use RTYP to get true type
alarmSeverityRecordTypes.push_back( std::string ( "Not Supported by Gateway"));
if (it_handle != handle_index.end())
{
@@ -2320,8 +2447,8 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
// if never connected getStatus is 600 ICAFE_CS_NEVER_CONN
// std::cout << (*it_handle).getPV() << " is Connected " << (*it_handle).isConnected() << std::endl;
// std::cout << "getStatus " << (*it_handle).getStatus() << std::endl;
//std::cout << (*it_handle).getPV() << " is Connected " << (*it_handle).isConnected() << std::endl;
//std::cout << "getStatus " << (*it_handle).getStatus() << std::endl;
// Check if handle has already been supplemented
if ((*it_handle).hasAlarmSeverityStruct())
@@ -2336,6 +2463,7 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
return false;
}
//std::cout << "------ " << std::endl;
PVCtrlHolder _pvc;
@@ -2357,8 +2485,7 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
}
// if Never connected getStatus is 600 ICAFE_CS_NEVER_CONN
// std::cout << "status from getPVCtrlHolder // " << _stat << std::endl;
// std::cout << "status from getPVCtrlHolder // " << _pvc.getStatus() << std::endl;
//_pvc.print();
//return to previous
@@ -2368,8 +2495,6 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
}
if (_stat==ICAFE_NORMAL)
{
//Special test for ENUM value - should never reach here as is mbbi/o record
@@ -2379,32 +2504,34 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
//}
//enums can have alarms states!!!
if (!((boost::math::isnan)(_pvc.getLowerAlarmLimit_AsDouble())))
{
if (_pvc.getLowerAlarmLimit_AsDouble() != 0) {
return true;
}
}
else if (!((boost::math::isnan)(_pvc.getLowerWarningLimit_AsDouble())))
if (!((boost::math::isnan)(_pvc.getLowerWarningLimit_AsDouble())))
{
if (_pvc.getLowerWarningLimit_AsDouble() != 0) {
return true;
}
}
else if (!((boost::math::isnan)(_pvc.getUpperWarningLimit_AsDouble())))
if (!((boost::math::isnan)(_pvc.getUpperWarningLimit_AsDouble())))
{
if (_pvc.getUpperWarningLimit_AsDouble() != 0) {
return true;
}
}
else if (!((boost::math::isnan)(_pvc.getUpperAlarmLimit_AsDouble())))
if (!((boost::math::isnan)(_pvc.getUpperAlarmLimit_AsDouble())))
{
if (_pvc.getUpperAlarmLimit_AsDouble() != 0) {
return true;
}
}
return false;
}
else
@@ -2491,7 +2618,6 @@ int HandleHelper::getAlarmStatusSeverityAsString(unsigned int _handle, std::stri
/**
* \brief Rerieves vector of handles for given vector of PVs
* \param pvV input: vector of PVS
@@ -3891,7 +4017,35 @@ int HandleHelper::getMonitorHandlesAndActions(std::vector<unsigned int> & handle
}
int HandleHelper::updateMonitorPolicyDeltaMS(unsigned int _handle, unsigned int _monid,
unsigned short _deltaMS)
{
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
int status=ICAFE_NORMAL;
if (it_handle != handle_index.end())
{
MonitorPolicy mp = (*it_handle).getMonitorPolicy(_monid);
mp.setNotifyDeltaMilliSeconds(_deltaMS);
if(MUTEX) { cafeMutex.lock();}
handle_index.modify(it_handle, change_monitorPolicy(mp));
if(MUTEX) { cafeMutex.unlock();}
}
else
{
status=ECAFE_INVALID_HANDLE;
if (printErrorPolicy.getInvalidHandle())
{
cafeStatus.report(status);
cout << "Handle=" << _handle << " either never existed or no longer exists " << endl;
}
}
return status;
}
/**
* \brief Gets vector of MonitorIDs in waiting (value=0), i.e., waiting for channel connection

View File

@@ -1,9 +1,8 @@
# makefile.in generated by automake 1.11.1 from makefile.am.
# makefile.in generated by automake 1.13.4 from makefile.am.
# src/makefile. Generated from makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# Copyright (C) 1994-2013 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.
@@ -16,6 +15,51 @@
am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/cafe
pkgincludedir = $(includedir)/cafe
pkglibdir = $(libdir)/cafe
@@ -34,12 +78,16 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = x86_64-unknown-linux-gnu
host_triplet = x86_64-unknown-linux-gnu
#am__append_1 = PyCafe.cpp
#am__append_2 = zbsCafeService.cpp zbsDataHolders.cpp \
# bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c bitshuffle/iochain.c
#if HAVE_PYCAFE_EXT_
#libcafe_la_SOURCES += PyCafe.cpp
#endif
#am__append_1 = zbsCafeService.cpp zbsDataHolders.cpp \
# bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c bitshuffle/iochain.c
subdir = src
DIST_COMMON = $(srcdir)/makefile.am $(srcdir)/makefile.in
DIST_COMMON = $(srcdir)/makefile.in $(srcdir)/makefile.am \
$(top_srcdir)/./depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -72,6 +120,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
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)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
libcafe_la_LIBADD =
@@ -82,13 +136,14 @@ am__libcafe_la_SOURCES_DIST = cafe.cpp cafeCache.cpp cafeGroup.cpp \
handleHelper.cpp loadCollectionXMLParser.cpp \
loadGroupXMLParser.cpp methodCallbacks.cpp helper.cpp \
policyHelper.cpp conduitGroup.cpp connectGroup.cpp \
transpose.cpp restorePVGroupXMLParser.cpp PyCafe.cpp \
zbsCafeService.cpp zbsDataHolders.cpp \
bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c \
bitshuffle/iochain.c
#am__objects_1 = PyCafe.lo
#am__objects_2 = zbsCafeService.lo zbsDataHolders.lo \
# bitshuffle_core.lo bitshuffle.lo iochain.lo
transpose.cpp restorePVGroupXMLParser.cpp zbsCafeService.cpp \
zbsDataHolders.cpp bitshuffle/bitshuffle_core.c \
bitshuffle/bitshuffle.c bitshuffle/iochain.c
am__dirstamp = $(am__leading_dot)dirstamp
#am__objects_1 = zbsCafeService.lo zbsDataHolders.lo \
# bitshuffle/bitshuffle_core.lo \
# bitshuffle/bitshuffle.lo \
# bitshuffle/iochain.lo
am_libcafe_la_OBJECTS = cafe.lo cafeCache.lo cafeGroup.lo \
cafeVectors.lo cafeXML.lo callbackHandlerCreate.lo \
callbackHandlerMonitor.lo conduit.lo connect.lo \
@@ -96,55 +151,120 @@ am_libcafe_la_OBJECTS = cafe.lo cafeCache.lo cafeGroup.lo \
handleHelper.lo loadCollectionXMLParser.lo \
loadGroupXMLParser.lo methodCallbacks.lo helper.lo \
policyHelper.lo conduitGroup.lo connectGroup.lo transpose.lo \
restorePVGroupXMLParser.lo $(am__objects_1) $(am__objects_2)
restorePVGroupXMLParser.lo $(am__objects_1)
libcafe_la_OBJECTS = $(am_libcafe_la_OBJECTS)
libcafe_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
am__v_lt_1 =
libcafe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(libcafe_la_LDFLAGS) $(LDFLAGS) -o $@
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I. -I$(top_builddir)/./include
depcomp = $(SHELL) $(top_srcdir)/./depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_$(V))
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_$(V))
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_$(V))
am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
am__v_CXX_0 = @echo " CXX " $@;
am__v_CXX_1 =
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_$(V))
am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
SOURCES = $(libcafe_la_SOURCES)
DIST_SOURCES = $(am__libcafe_la_SOURCES_DIST)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run aclocal-1.11
AMTAR = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run tar
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I$(top_srcdir)/include
AM_LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing aclocal-1.13
AMTAR = $${TAR-tar}
#if HAVE_PYCAFE_EXT_
#libcafe_la_SOURCES += PyCafe.cpp
#endif
#else
#if HAVE_PYTHON_
#libcafe_la_SOURCES += pycafe/PyCafe.cpp
#endif
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/ioc/python/latest/include/python3.10 -I/ioc/python/latest/lib/python3.10/site-packages/numpy/core/include -I$(top_srcdir)/include
AM_DEFAULT_VERBOSITY = 1
AM_LDFLAGS = -L/usr/local/epics/base/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/RHEL7-x86_64 -L/ioc/python/latest/lib -Wl,-rpath,/ioc/python/latest/lib
AR = ar
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run automake-1.11
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing automake-1.13
AWK = gawk
CAFE_CPPFLAGS = -I$(top_srcdir)/include
CC = /opt/psi/Programming/gcc/6.3.0/bin/gcc
CC = /opt/psi/Programming/gcc/9.3.0/bin/gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = /opt/psi/Programming/gcc/6.3.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include
CXX = /opt/psi/Programming/gcc/6.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/6.3.0/bin/g++ -E
CPP = /opt/psi/Programming/gcc/9.3.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/ioc/python/latest/include/python3.10 -I/ioc/python/latest/lib/python3.10/site-packages/numpy/core/include
CXX = /opt/psi/Programming/gcc/9.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/9.3.0/bin/g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
CYGPATH_W = echo
@@ -156,27 +276,27 @@ DUMPBIN =
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = /bin/grep -E
EGREP = /usr/bin/grep -E
EXEEXT =
FGREP = /bin/grep -F
GREP = /bin/grep
FGREP = /usr/bin/grep -F
GREP = /usr/bin/grep
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /usr/bin/ld -m elf_x86_64
LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64
LDFLAGS = -L/usr/local/epics/base/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/RHEL7-x86_64 -L/ioc/python/latest/lib -Wl,-rpath,/ioc/python/latest/lib
LIBOBJS =
LIBS =
LIBS = -lpython3.10
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO =
LN_S = ln -s
LTLIBOBJS =
LT_SYS_LIBRARY_PATH =
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run makeinfo
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing makeinfo
MANIFEST_TOOL = :
MKDIR_P = /bin/mkdir -p
MKDIR_P = /usr/bin/mkdir -p
NM = /usr/bin/nm -B
NMEDIT =
OBJDUMP = objdump
@@ -186,29 +306,30 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.12.5
PACKAGE_STRING = CAFE 1.14.4
PACKAGE_TARNAME = cafe
PACKAGE_VERSION = 1.12.5
PACKAGE_URL =
PACKAGE_VERSION = 1.14.4
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /bin/sed
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.12.5
VERSION = 1.14.4
abs_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/src
abs_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/src
abs_top_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_top_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
ac_ct_AR = ar
ac_ct_CC = /opt/psi/Programming/gcc/6.3.0/bin/gcc
ac_ct_CC = /opt/psi/Programming/gcc/9.3.0/bin/gcc
ac_ct_CXX =
ac_ct_DUMPBIN =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build_alias =
@@ -230,15 +351,15 @@ htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/install-sh
libdir = /opt/gfa/cafe/cpp/cafe-noqt-1.12.5-gcc-6.3.0/lib
libdir = /opt/gfa/cafe/cpp/cafe-1.14.4-py310-gcc-9.3.0/lib/RHEL7-x86_64
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /opt/gfa/cafe/cpp/cafe-noqt-1.12.5-gcc-6.3.0
prefix = /opt/gfa/cafe/cpp/cafe-1.14.4-py310-gcc-9.3.0
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
@@ -258,7 +379,7 @@ lib_LTLIBRARIES = libcafe.la
#2nd: age
#3rd: revision
#1.9.1 1.10.2 1.11.0 1.11.1 1.12.0 1.12.1 1.12.2 1.12.4
libcafe_la_LDFLAGS = -version-info 13:4:12
libcafe_la_LDFLAGS = -version-info 15:4:14
libcafe_la_SOURCES = cafe.cpp cafeCache.cpp cafeGroup.cpp \
cafeVectors.cpp cafeXML.cpp callbackHandlerCreate.cpp \
callbackHandlerMonitor.cpp conduit.cpp connect.cpp \
@@ -266,8 +387,7 @@ libcafe_la_SOURCES = cafe.cpp cafeCache.cpp cafeGroup.cpp \
handleHelper.cpp loadCollectionXMLParser.cpp \
loadGroupXMLParser.cpp methodCallbacks.cpp helper.cpp \
policyHelper.cpp conduitGroup.cpp connectGroup.cpp \
transpose.cpp restorePVGroupXMLParser.cpp $(am__append_1) \
$(am__append_2)
transpose.cpp restorePVGroupXMLParser.cpp $(am__append_1)
all: all-am
.SUFFIXES:
@@ -302,9 +422,9 @@ $(top_srcdir)/configure: $(am__configure_deps)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
@@ -312,6 +432,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
else :; fi; \
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -327,24 +449,38 @@ uninstall-libLTLIBRARIES:
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libcafe.la: $(libcafe_la_OBJECTS) $(libcafe_la_DEPENDENCIES)
$(libcafe_la_LINK) -rpath $(libdir) $(libcafe_la_OBJECTS) $(libcafe_la_LIBADD) $(LIBS)
@list='$(lib_LTLIBRARIES)'; \
locs=`for p in $$list; do echo $$p; done | \
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
sort -u`; \
test -z "$$locs" || { \
echo rm -f $${locs}; \
rm -f $${locs}; \
}
bitshuffle/$(am__dirstamp):
@$(MKDIR_P) bitshuffle
@: > bitshuffle/$(am__dirstamp)
bitshuffle/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) bitshuffle/$(DEPDIR)
@: > bitshuffle/$(DEPDIR)/$(am__dirstamp)
bitshuffle/bitshuffle_core.lo: bitshuffle/$(am__dirstamp) \
bitshuffle/$(DEPDIR)/$(am__dirstamp)
bitshuffle/bitshuffle.lo: bitshuffle/$(am__dirstamp) \
bitshuffle/$(DEPDIR)/$(am__dirstamp)
bitshuffle/iochain.lo: bitshuffle/$(am__dirstamp) \
bitshuffle/$(DEPDIR)/$(am__dirstamp)
libcafe.la: $(libcafe_la_OBJECTS) $(libcafe_la_DEPENDENCIES) $(EXTRA_libcafe_la_DEPENDENCIES)
$(AM_V_CXXLD)$(libcafe_la_LINK) -rpath $(libdir) $(libcafe_la_OBJECTS) $(libcafe_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
-rm -f bitshuffle/*.$(OBJEXT)
-rm -f bitshuffle/*.lo
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/PyCafe.Plo
include ./$(DEPDIR)/bitshuffle.Plo
include ./$(DEPDIR)/bitshuffle_core.Plo
include ./$(DEPDIR)/cafe.Plo
include ./$(DEPDIR)/cafeCache.Plo
include ./$(DEPDIR)/cafeGroup.Plo
@@ -361,7 +497,6 @@ include ./$(DEPDIR)/exceptionsHelper.Plo
include ./$(DEPDIR)/granules.Plo
include ./$(DEPDIR)/handleHelper.Plo
include ./$(DEPDIR)/helper.Plo
include ./$(DEPDIR)/iochain.Plo
include ./$(DEPDIR)/loadCollectionXMLParser.Plo
include ./$(DEPDIR)/loadGroupXMLParser.Plo
include ./$(DEPDIR)/methodCallbacks.Plo
@@ -370,96 +505,74 @@ include ./$(DEPDIR)/restorePVGroupXMLParser.Plo
include ./$(DEPDIR)/transpose.Plo
include ./$(DEPDIR)/zbsCafeService.Plo
include ./$(DEPDIR)/zbsDataHolders.Plo
include bitshuffle/$(DEPDIR)/bitshuffle.Plo
include bitshuffle/$(DEPDIR)/bitshuffle_core.Plo
include bitshuffle/$(DEPDIR)/iochain.Plo
.c.o:
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# source='$<' object='$@' libtool=no \
$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# $(AM_V_CC)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c $<
# $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
.c.obj:
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# source='$<' object='$@' libtool=no \
$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# $(AM_V_CC)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c `$(CYGPATH_W) '$<'`
# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
# source='$<' object='$@' libtool=yes \
$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Plo
# $(AM_V_CC)source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LTCOMPILE) -c -o $@ $<
bitshuffle_core.lo: bitshuffle/bitshuffle_core.c
$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bitshuffle_core.lo -MD -MP -MF $(DEPDIR)/bitshuffle_core.Tpo -c -o bitshuffle_core.lo `test -f 'bitshuffle/bitshuffle_core.c' || echo '$(srcdir)/'`bitshuffle/bitshuffle_core.c
$(am__mv) $(DEPDIR)/bitshuffle_core.Tpo $(DEPDIR)/bitshuffle_core.Plo
# source='bitshuffle/bitshuffle_core.c' object='bitshuffle_core.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bitshuffle_core.lo `test -f 'bitshuffle/bitshuffle_core.c' || echo '$(srcdir)/'`bitshuffle/bitshuffle_core.c
bitshuffle.lo: bitshuffle/bitshuffle.c
$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bitshuffle.lo -MD -MP -MF $(DEPDIR)/bitshuffle.Tpo -c -o bitshuffle.lo `test -f 'bitshuffle/bitshuffle.c' || echo '$(srcdir)/'`bitshuffle/bitshuffle.c
$(am__mv) $(DEPDIR)/bitshuffle.Tpo $(DEPDIR)/bitshuffle.Plo
# source='bitshuffle/bitshuffle.c' object='bitshuffle.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bitshuffle.lo `test -f 'bitshuffle/bitshuffle.c' || echo '$(srcdir)/'`bitshuffle/bitshuffle.c
iochain.lo: bitshuffle/iochain.c
$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT iochain.lo -MD -MP -MF $(DEPDIR)/iochain.Tpo -c -o iochain.lo `test -f 'bitshuffle/iochain.c' || echo '$(srcdir)/'`bitshuffle/iochain.c
$(am__mv) $(DEPDIR)/iochain.Tpo $(DEPDIR)/iochain.Plo
# source='bitshuffle/iochain.c' object='iochain.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o iochain.lo `test -f 'bitshuffle/iochain.c' || echo '$(srcdir)/'`bitshuffle/iochain.c
# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $<
.cpp.o:
$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# source='$<' object='$@' libtool=no \
$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# $(AM_V_CXX)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(CXXCOMPILE) -c -o $@ $<
# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# source='$<' object='$@' libtool=no \
$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# $(AM_V_CXX)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
# source='$<' object='$@' libtool=yes \
$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Plo
# $(AM_V_CXX)source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(LTCXXCOMPILE) -c -o $@ $<
# $(AM_V_CXX_no)$(LTCXXCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
-rm -rf bitshuffle/.libs bitshuffle/_libs
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
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
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; }; }'`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -471,15 +584,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$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; }; }'`; \
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -488,6 +597,21 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -539,10 +663,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
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:
@@ -550,6 +679,8 @@ 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)
-rm -f bitshuffle/$(DEPDIR)/$(am__dirstamp)
-rm -f bitshuffle/$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -560,7 +691,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -rf ./$(DEPDIR) bitshuffle/$(DEPDIR)
-rm -f makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -606,7 +737,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -rf ./$(DEPDIR) bitshuffle/$(DEPDIR)
-rm -f makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -627,19 +758,19 @@ uninstall-am: uninstall-libLTLIBRARIES
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool ctags distclean \
distclean-compile 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-libLTLIBRARIES install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
ctags-am distclean distclean-compile 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-libLTLIBRARIES install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-libLTLIBRARIES
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View File

@@ -12,24 +12,32 @@ lib_LTLIBRARIES = libcafe.la
#2nd: age
#3rd: revision
#1.9.1 1.10.2 1.11.0 1.11.1 1.12.0 1.12.1 1.12.2 1.12.4
libcafe_la_LDFLAGS = -version-info 13:4:12
libcafe_la_LDFLAGS = -version-info 15:4:14
libcafe_la_SOURCES = cafe.cpp cafeCache.cpp cafeGroup.cpp cafeVectors.cpp cafeXML.cpp \
callbackHandlerCreate.cpp callbackHandlerMonitor.cpp conduit.cpp connect.cpp connectCallbacks.cpp \
exceptionsHelper.cpp granules.cpp handleHelper.cpp loadCollectionXMLParser.cpp \
loadGroupXMLParser.cpp methodCallbacks.cpp helper.cpp policyHelper.cpp \
conduitGroup.cpp connectGroup.cpp transpose.cpp restorePVGroupXMLParser.cpp
conduitGroup.cpp connectGroup.cpp transpose.cpp restorePVGroupXMLParser.cpp
if HAVE_PYCAFE_EXT_
libcafe_la_SOURCES += PyCafe.cpp
endif
#if HAVE_PYCAFE_EXT_
#libcafe_la_SOURCES += PyCafe.cpp
#endif
if HAVE_ZEROMQ_
libcafe_la_SOURCES += zbsCafeService.cpp zbsDataHolders.cpp \
bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c bitshuffle/iochain.c
bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c bitshuffle/iochain.c
#if HAVE_PYCAFE_EXT_
#libcafe_la_SOURCES += PyCafe.cpp
#endif
#else
#if HAVE_PYTHON_
#libcafe_la_SOURCES += pycafe/PyCafe.cpp
#endif
endif
##bitshuffle/bshuf_h5filter.c bitshuffle/bshuf_h5plugin.c bitshuffle/lzf_h5plugin.c
AM_CPPFLAGS = @AM_CPPFLAGS@ @CAFE_CPPFLAGS@
AM_LDFLAGS= @AM_LDFLAGS@

View File

@@ -17,6 +17,7 @@ using namespace std;
//#include <PyCafe_api.h>
//#endif
#define RETURN_ON_ERROR true
#if HAVE_PYTHON_H
@@ -32,7 +33,7 @@ void CALLBACK_CAFE::PyHandlerPut( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
@@ -47,26 +48,13 @@ void CALLBACK_CAFE::PyHandlerPut( struct event_handler_args args)
if (it_handle != handle_index.end())
{
if(MUTEX)cafeMutex.lock();
//Change Channel Policy to NO_WAIT(?)
ChannelRequestStatus channelRequestStatusPut=(*it_handle).getChannelRequestStatusPut();
channelRequestStatusPut.setCallbackKind(false, true);
handle_index.modify(it_handle, change_channelRequestStatusPut(channelRequestStatusPut));
if(MUTEX)cafeMutex.unlock();
//if HAVE_PYTHON_H
if(MUTEX)cafeMutex.unlock();
(*it_handle).PyPutHandler();
//endif
}
else
{
@@ -76,7 +64,6 @@ void CALLBACK_CAFE::PyHandlerPut( struct event_handler_args args)
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -87,12 +74,8 @@ void CALLBACK_CAFE::PyHandlerPut( struct event_handler_args args)
ChannelRequestStatus channelRequestStatusPut=(*itcs).getChannelRequestStatusPut();
channelRequestStatusPut.setCallbackKind(false, true);
handle_index.modify(itcs, change_channelRequestStatusPut(channelRequestStatusPut));
if(MUTEX)cafeMutex.unlock();
//if HAVE_PYTHON_H
if(MUTEX)cafeMutex.unlock();
(*it_handle).PyPutHandler();
//endif
internalFlag=true;
break;
}
@@ -125,12 +108,11 @@ void CALLBACK_CAFE::PyHandlerGet( struct event_handler_args args)
#define __METHOD__ "CALLBACK_CAFE::PyHandlerGet"
if (args.status !=ECA_NORMAL)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -156,22 +138,15 @@ void CALLBACK_CAFE::PyHandlerGet( struct event_handler_args args)
{
cafeMutex.unlock();
}
//if HAVE_PYTHON_H
(*it_handle).PyGetHandler();
//endif
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -231,17 +206,15 @@ void CALLBACK_CAFE::handlerPulseID( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr;
unsigned long long pulse_id=0;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find((unsigned int) _handle);
if (it_handle != handle_index.end())
@@ -262,7 +235,6 @@ void CALLBACK_CAFE::handlerPulseID( struct event_handler_args args)
{
cafeMutex.unlock();
}
}
else
{
@@ -271,28 +243,6 @@ void CALLBACK_CAFE::handlerPulseID( struct event_handler_args args)
return;
}
/*
PVDataHolder pvd;
(*it_handle).getPVDataHolder(pvd);
*/
/*
cafeConduit_set::iterator itcs;
// Loop through all elements
for (itcs = cs.begin(); itcs != cs.end(); ++itcs) {
if ((*itcs).getChannelID() != NULL) {
if(MUTEX){cafeMutex.lock();}
handle_index.modify(itcs, change_beamEventNo(pulse_id));
if(MUTEX){cafeMutex.unlock();}
}
}
*/
return;
#undef __METHOD__
};
@@ -310,7 +260,7 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr;
@@ -318,7 +268,6 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
//cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
//cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << " handle " << _handle << endl;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
@@ -326,30 +275,20 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
if (it_handle != handle_index.end())
{
if(MUTEX)cafeMutex.lock();
//Change Channel Policy to NO_WAIT(?)
ChannelRequestStatus channelRequestStatusPut=(*it_handle).getChannelRequestStatusPut();
channelRequestStatusPut.setCallbackKind(false, true);
handle_index.modify(it_handle, change_channelRequestStatusPut(channelRequestStatusPut));
if(MUTEX)cafeMutex.unlock();
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -361,8 +300,6 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
channelRequestStatusPut.setCallbackKind(false, true);
handle_index.modify(itcs, change_channelRequestStatusPut(channelRequestStatusPut));
if(MUTEX)cafeMutex.unlock();
internalFlag=true;
break;
}
@@ -373,7 +310,6 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " Internal CAFE ERROR! Unknown Handle! handle=" << _handle << endl;
}
}
return;
@@ -395,8 +331,7 @@ void CALLBACK_CAFE::handlerGet( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -408,10 +343,8 @@ void CALLBACK_CAFE::handlerGet( struct event_handler_args args)
if (it_handle != handle_index.end())
{
ChannelRequestStatus channelRequestStatusGet=(*it_handle).getChannelRequestStatusGet();
channelRequestStatusGet.setCallbackKind(false, true);
if(MUTEX)
{
cafeMutex.lock();
@@ -423,23 +356,19 @@ void CALLBACK_CAFE::handlerGet( struct event_handler_args args)
{
cafeMutex.unlock();
}
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " INFORMATION to author: MATCHed Handle= " << _handle << " to PV= " << (*itcs).getPV() << endl;
cout << " by looping through tcs::iterator, since the by_handle::iterator was NOT found! " << endl;
ChannelRequestStatus channelRequestStatusGet=(*itcs).getChannelRequestStatusGet();
channelRequestStatusGet.setCallbackKind(false, true);
if(MUTEX)
@@ -452,7 +381,6 @@ void CALLBACK_CAFE::handlerGet( struct event_handler_args args)
{
cafeMutex.unlock();
}
internalFlag=true;
break;
}
@@ -487,7 +415,8 @@ void CALLBACK_CAFE::handlerGetCtrlAtConnect( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
//JC May 2021 Still want to update multi-index container even if status has error
/*
#if HAVE_PYTHON_H
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -506,8 +435,8 @@ void CALLBACK_CAFE::handlerGetCtrlAtConnect( struct event_handler_args args)
}
}
#endif
return;
*/
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -517,10 +446,8 @@ void CALLBACK_CAFE::handlerGetCtrlAtConnect( struct event_handler_args args)
it_handle = handle_index.find(_handle);
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -569,7 +496,6 @@ void CALLBACK_CAFE::handlerGetCtrlAtConnect( struct event_handler_args args)
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -634,8 +560,7 @@ void CALLBACK_CAFE::handlerGetCtrl( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -645,10 +570,8 @@ void CALLBACK_CAFE::handlerGetCtrl( struct event_handler_args args)
it_handle = handle_index.find(_handle);
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -673,13 +596,11 @@ void CALLBACK_CAFE::handlerGetCtrl( struct event_handler_args args)
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -738,8 +659,7 @@ void CALLBACK_CAFE::handlerGetSTSACK( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
@@ -752,7 +672,6 @@ void CALLBACK_CAFE::handlerGetSTSACK( struct event_handler_args args)
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -774,17 +693,14 @@ void CALLBACK_CAFE::handlerGetSTSACK( struct event_handler_args args)
{
cafeMutex.unlock();
}
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -822,8 +738,6 @@ void CALLBACK_CAFE::handlerGetSTSACK( struct event_handler_args args)
cout << " Internal CAFE ERROR! Unknown Handle! handle=" << _handle << endl;
}
}
return;
#undef __METHOD__
};
@@ -839,13 +753,11 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
{
#define __METHOD__ "CALLBACK_CAFE::handlerGetClassName "
if (args.status !=ECA_NORMAL)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -853,12 +765,10 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -870,7 +780,6 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
}
ChannelRequestStatus channelRequestStatusGetClassName=(*it_handle).getChannelRequestStatusGetClassName();
channelRequestStatusGetClassName.setCallbackKind(false, true);
if(MUTEX)
@@ -882,17 +791,14 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
{
cafeMutex.unlock();
}
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -919,7 +825,6 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
{
cafeMutex.unlock();
}
internalFlag=true;
break;
}
@@ -939,19 +844,19 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
/**
* Callback function for handlerClassName method is invoked
* Callback function for handlerGetDescription method is invoked
* with a pointer to the retrieved value
* \param args input: event handler arguments
*/
void CALLBACK_CAFE::handlerGetDescription( struct event_handler_args args)
{
#define __METHOD__ "CALLBACK_CAFE::handlerGetDesscription "
#define __METHOD__ "CALLBACK_CAFE::handlerGetDescription "
if (args.status !=ECA_NORMAL)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -963,7 +868,6 @@ void CALLBACK_CAFE::handlerGetDescription( struct event_handler_args args)
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -973,17 +877,14 @@ void CALLBACK_CAFE::handlerGetDescription( struct event_handler_args args)
{
cafeMutex.unlock();
}
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;

View File

4176
src/pycafe/.deps/PyCafe.Plo Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

0
src/pycafe/.dirstamp Normal file
View File

BIN
src/pycafe/.libs/PyCafe.o Normal file

Binary file not shown.

166051
src/pycafe/PyCafe.cpp Normal file

File diff suppressed because it is too large Load Diff

12
src/pycafe/PyCafe.lo Normal file
View File

@@ -0,0 +1,12 @@
# pycafe/PyCafe.lo - a libtool object file
# Generated by libtool (GNU libtool) 2.4.6
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object.
pic_object='.libs/PyCafe.o'
# Name of the non-PIC object
non_pic_object='PyCafe.o'

BIN
src/pycafe/PyCafe.o Normal file

Binary file not shown.

166161
src/pycafe/PyCafe_35_sf.cpp Normal file

File diff suppressed because it is too large Load Diff

166161
src/pycafe/PyCafe_sf.cpp Normal file

File diff suppressed because it is too large Load Diff

171099
src/pycafe/PyCafe_sf.cpp- Normal file

File diff suppressed because it is too large Load Diff

166161
src/pycafe/PyCafe_sf.cpp-- Normal file

File diff suppressed because it is too large Load Diff

156764
src/pycafe/PyCafe_sls.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -670,21 +670,18 @@ int Transpose<dbr_string_t>::get(
{
#define __METHOD__ "Transpose<dbr_string_t>::get()"
//cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
//cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
if (it_handle != handle_index.end())
{
PVDataL = (*it_handle).getDataBuffer ();
offset = (*it_handle).getChannelRequestMetaDataClient().getOffset();
if(isCacheRequest)
{
offset = (*it_handle).getChannelRequestMetaData().getOffset( );
@@ -697,8 +694,6 @@ int Transpose<dbr_string_t>::get(
}
//Something wrong, just read last element
if (nelem <=0)
{