7 Commits

61 changed files with 615143 additions and 93236 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.

View File

@@ -3,13 +3,12 @@
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/6.3.0
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
@@ -23,7 +22,7 @@ automake --force --add-missing --copy
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.13.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")
@@ -37,7 +36,7 @@ EPICS_BASE=$(readlink ${EPICS}/base)
echo $EPICS_BASE
if [ -z "$EPICS_BASE" ]
then
EPICS_BASE='base-7.4.1' #7.0 = 7+0 = 7 for major release
EPICS_BASE='base-7' #7.0 = 7+0 = 7 for major release
fi
echo 'input' "$0" "$1" "$2"
@@ -57,6 +56,7 @@ 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" ]
@@ -125,6 +125,7 @@ fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "matlab" ] || [ "$CACLIENT" = "python" ] || \
[ "$CACLIENT" = "py310" ] || [ "$CACLIENT" = "py38" ] || \
[ "$CACLIENT" = "py37" ] || [ "$CACLIENT" = "py35" ] || \
[ "$CACLIENT" = "julia" ] || [ "$CACLIENT" = "cpp" ] || \
[ "$CACLIENT" = "cc" ]
@@ -134,6 +135,7 @@ then
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" ]
@@ -205,6 +207,16 @@ 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
@@ -259,17 +271,20 @@ echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
--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-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-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

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

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 @@
configurePSI.ac

1189
configure.ac Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -8,8 +8,8 @@
# Standard macros
AC_PREREQ(2.63)
AC_COPYRIGHT([CAFE,Jan Chrin, 2018])
AC_INIT([CAFE], [1.13.0], [Bug reports to: jan.chrin@psi.ch])
AC_COPYRIGHT([CAFE,Jan Chrin, 2010-2021])
AC_INIT([CAFE], [1.14.4], [Bug reports to: jan.chrin@psi.ch])
AC_CONFIG_AUX_DIR(./)
@@ -412,6 +412,63 @@ if test x$HAVE_PY37_ == xtrue ; then
]
)
fi
AC_ARG_ENABLE(
[python38],
AC_HELP_STRING([--enable-python38],
[enable python use [default=no]]),
[HAVE_PYTHON_=true
HAVE_PY38_=true
HAVE_PY37_=false
HAVE_PY35_=false]
)
if test x$HAVE_PY38_ == xtrue ; then
AC_ARG_WITH(
python38,
AC_HELP_STRING(
[--with-python38 = location of python],
[prefix giving the python base directory]),
[#HAVE_PYTHON_=true
PYTHON_PREFIX=$withval
PYTHON_INCL_PATH="-I"${PYTHON_PREFIX}/include/python3.8
PYTHON_INCL_PATH=${PYTHON_INCL_PATH}" -I"${PYTHON_PREFIX}\
"/lib/python3.8/site-packages/numpy/core/include"
PYTHON_LIB_PATH=${PYTHON_PREFIX}"/lib"
]
)
fi
AC_ARG_ENABLE(
[python310],
AC_HELP_STRING([--enable-python310],
[enable python use [default=no]]),
[HAVE_PYTHON_=true
HAVE_PY310_=true
HAVE_PY38_=false
HAVE_PY37_=false
HAVE_PY35_=false]
)
if test x$HAVE_PY310_ == xtrue ; then
AC_ARG_WITH(
python310,
AC_HELP_STRING(
[--with-python310 = location of python],
[prefix giving the python base directory]),
[#HAVE_PYTHON_=true
PYTHON_PREFIX=$withval
PYTHON_INCL_PATH="-I"${PYTHON_PREFIX}/include/python3.10
PYTHON_INCL_PATH=${PYTHON_INCL_PATH}" -I"${PYTHON_PREFIX}\
"/lib/python3.10/site-packages/numpy/core/include"
PYTHON_LIB_PATH=${PYTHON_PREFIX}"/lib"
]
)
fi
##
##---------------------------------------------------------------------------
@@ -450,6 +507,23 @@ if test x$HAVE_PYTHON_ == xtrue ; then
[])
#fi
if test x$HAVE_PY310_ == xtrue ; then
AC_CHECK_LIB(python3.10,[main], [],
[HAVE_PYTHON_=false
AC_MSG_WARN(libpython3.10 not found!)]
)
fi
if test x$HAVE_PY38_ == xtrue ; then
AC_CHECK_LIB(python3.8,[main], [],
[HAVE_PYTHON_=false
AC_MSG_WARN(libpython3.8 not found!)]
)
fi
if test x$HAVE_PY37_ == xtrue ; then
AC_CHECK_LIB(python3.7m,[main], [],
@@ -488,7 +562,7 @@ fi
AC_LANG_POP
##
##-- end Python 3.7 -- check header files and library
##-- end Python 3.7(3.8 -- check header files and library
##-----------------------------
@@ -538,7 +612,7 @@ AC_ARG_ENABLE(
HAVE_QT_4_=false]
)
#Only if enable flag is set
if test x$HAVE_QT_5_ == xtrue ; then
@@ -556,7 +630,68 @@ if test x$HAVE_QT_5_ == xtrue ; then
]
)
fi
AC_ARG_ENABLE(
[qt5py38],
AC_HELP_STRING([--enable-qt5py38],
[enable Qt version 5 use [default=no]]),
[HAVE_QT_=true
HAVE_QT_5py38_=true
HAVE_QT_5_=false
HAVE_QT_4_=false]
)
#Only if enable flag is set
if test x$HAVE_QT_5py38_ == xtrue ; then
AC_ARG_WITH(
qt5py38,
AC_HELP_STRING([--with-qt5py38=PREFIX],
[prefix, parent directory where the Qt version 5 library is installed]),
[#HAVE_QT_=true
QT_PREFIX=$withval
QT_INCL_BASE=" -I"${QT_PREFIX}"/include/qt"
QT_INCL_PATH=${QT_INCL_BASE}
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtCore"
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtXml"
QT_LIB_PATH=${QT_PREFIX}"/lib "
]
)
fi
AC_ARG_ENABLE(
[qt5py310],
AC_HELP_STRING([--enable-qt5py310],
[enable Qt version 5 use [default=no]]),
[HAVE_QT_=true
HAVE_QT_5py310_=true
HAVE_QT_5py38_=false
HAVE_QT_5_=false
HAVE_QT_4_=false]
)
#Only if enable flag is set
if test x$HAVE_QT_5py310_ == xtrue ; then
AC_ARG_WITH(
qt5py310,
AC_HELP_STRING([--with-qt5py310=PREFIX],
[prefix, parent directory where the Qt version 5 library is installed]),
[#HAVE_QT_=true
QT_PREFIX=$withval
QT_INCL_BASE=" -I"${QT_PREFIX}"/include/qt"
QT_INCL_PATH=${QT_INCL_BASE}
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtCore"
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtXml"
QT_LIB_PATH=${QT_PREFIX}"/lib "
]
)
fi
##
##---------------------------------------------------------------------------
@@ -601,21 +736,23 @@ if test x$HAVE_QT_ == xtrue ; then
AC_MSG_WARN(libQtXml not found!)])
fi
#if test x$HAVE_QT_5_ == xtrue ; then
# AC_CHECK_LIB(Qt5Core,[write],
# [],
# [HAVE_QT_=false #force true if there but not found
# AC_MSG_WARN(libQt5Core... no check)])
#fi
if test x$HAVE_QT_5_ == xtrue ; then
AC_CHECK_LIB(Qt5Core,[write],
[],
[HAVE_QT_=true #force true if there but not found
AC_MSG_WARN(libQt5Core not checked for!)])
fi
if test x$HAVE_QT_5_ == xtrue ; then
AC_CHECK_LIB(Qt5Xml,[qt_version_tag],
[],
[HAVE_QT_=false
AC_MSG_WARN(libQt5Xml not found!)])
[],
[HAVE_QT_=true
AC_MSG_WARN(libQt5Xml not checked for!)])
fi
# If all checks are OK we add Qt version 5 to the FLAGS.
if test x$HAVE_QT_ != xtrue ; then
if test x"${QT_PREFIX}" != x"" ; then

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

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);

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

@@ -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
@@ -45,8 +89,8 @@ host_triplet = x86_64-unknown-linux-gnu
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 \
@@ -58,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 \
@@ -68,7 +129,7 @@ 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 \
@@ -97,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 -I/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
AM_LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
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/7.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/7.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/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
CXX = /opt/psi/Programming/gcc/7.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/7.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
@@ -130,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 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
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 = -lQt5Xml -lpython3.7m
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
@@ -160,29 +245,30 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.13.0
PACKAGE_STRING = CAFE 1.14.4
PACKAGE_TARNAME = cafe
PACKAGE_VERSION = 1.13.0
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.13.0
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/7.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 =
@@ -204,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-1.13.0/lib/SL6-x86_64
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-1.13.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
@@ -231,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 \
@@ -277,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"; \
@@ -292,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; \
@@ -327,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
@@ -344,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
@@ -395,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:
@@ -478,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

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.13.0
# 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/7.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/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc /opt/psi/Programming/gcc/7.3.0/lib64 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64 /lib64 /usr/lib64 /opt/psi/Programming/gcc/7.3.0/lib /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.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/7.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/7.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/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc /opt/psi/Programming/gcc/7.3.0/lib64/../lib64 /opt/psi/Programming/gcc/7.3.0/lib/../lib64 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /opt/psi/Programming/gcc/7.3.0/lib64 /opt/psi/Programming/gcc/7.3.0/lib /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.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/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0/crtbeginS.o"
postdep_objects="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.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/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0 -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc -L/opt/psi/Programming/gcc/7.3.0/lib64/../lib64 -L/opt/psi/Programming/gcc/7.3.0/lib/../lib64 -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/psi/Programming/gcc/7.3.0/lib64 -L/opt/psi/Programming/gcc/7.3.0/lib -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.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/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml -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 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib @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/7.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/7.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/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
CXX = /opt/psi/Programming/gcc/7.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/7.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 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
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 = -lQt5Xml -lpython3.7m
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.13.0
PACKAGE_STRING = CAFE 1.14.4
PACKAGE_TARNAME = cafe
PACKAGE_VERSION = 1.13.0
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.13.0
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/7.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-1.13.0/lib/SL6-x86_64
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-1.13.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

View File

@@ -1 +1,116 @@
# dummy
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

@@ -1 +1,123 @@
# dummy
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

@@ -1 +1,68 @@
# dummy
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;

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
@@ -41,10 +85,9 @@ host_triplet = x86_64-unknown-linux-gnu
#am__append_1 = zbsCafeService.cpp zbsDataHolders.cpp \
# bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c bitshuffle/iochain.c
#am__append_2 = pycafe/PyCafe_sf.cpp
am__append_3 = pycafe/PyCafe.cpp
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 \
@@ -77,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 =
@@ -89,17 +138,12 @@ am__libcafe_la_SOURCES_DIST = cafe.cpp cafeCache.cpp cafeGroup.cpp \
policyHelper.cpp conduitGroup.cpp connectGroup.cpp \
transpose.cpp restorePVGroupXMLParser.cpp zbsCafeService.cpp \
zbsDataHolders.cpp bitshuffle/bitshuffle_core.c \
bitshuffle/bitshuffle.c bitshuffle/iochain.c \
pycafe/PyCafe_sf.cpp pycafe/PyCafe.cpp
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__objects_2 = \
# pycafe/PyCafe_sf.lo
am__objects_3 = \
pycafe/PyCafe.lo
am_libcafe_la_OBJECTS = cafe.lo cafeCache.lo cafeGroup.lo \
cafeVectors.lo cafeXML.lo callbackHandlerCreate.lo \
callbackHandlerMonitor.lo conduit.lo connect.lo \
@@ -107,56 +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) \
$(am__objects_3)
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/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml -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 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
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/7.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/7.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/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
CXX = /opt/psi/Programming/gcc/7.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/7.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
@@ -168,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 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
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 = -lQt5Xml -lpython3.7m
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
@@ -198,29 +306,30 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.13.0
PACKAGE_STRING = CAFE 1.14.4
PACKAGE_TARNAME = cafe
PACKAGE_VERSION = 1.13.0
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.13.0
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/7.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 =
@@ -242,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-1.13.0/lib/SL6-x86_64
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-1.13.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
@@ -270,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 14:0:13
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 \
@@ -278,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) $(am__append_3)
transpose.cpp restorePVGroupXMLParser.cpp $(am__append_1)
all: all-am
.SUFFIXES:
@@ -314,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 \
@@ -324,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)"; \
}
@@ -339,12 +449,14 @@ 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
@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)
@@ -357,31 +469,14 @@ bitshuffle/bitshuffle.lo: bitshuffle/$(am__dirstamp) \
bitshuffle/$(DEPDIR)/$(am__dirstamp)
bitshuffle/iochain.lo: bitshuffle/$(am__dirstamp) \
bitshuffle/$(DEPDIR)/$(am__dirstamp)
pycafe/$(am__dirstamp):
@$(MKDIR_P) pycafe
@: > pycafe/$(am__dirstamp)
pycafe/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) pycafe/$(DEPDIR)
@: > pycafe/$(DEPDIR)/$(am__dirstamp)
pycafe/PyCafe_sf.lo: pycafe/$(am__dirstamp) \
pycafe/$(DEPDIR)/$(am__dirstamp)
pycafe/PyCafe.lo: pycafe/$(am__dirstamp) \
pycafe/$(DEPDIR)/$(am__dirstamp)
libcafe.la: $(libcafe_la_OBJECTS) $(libcafe_la_DEPENDENCIES)
$(libcafe_la_LINK) -rpath $(libdir) $(libcafe_la_OBJECTS) $(libcafe_la_LIBADD) $(LIBS)
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/bitshuffle.$(OBJEXT)
-rm -f bitshuffle/bitshuffle.lo
-rm -f bitshuffle/bitshuffle_core.$(OBJEXT)
-rm -f bitshuffle/bitshuffle_core.lo
-rm -f bitshuffle/iochain.$(OBJEXT)
-rm -f bitshuffle/iochain.lo
-rm -f pycafe/PyCafe.$(OBJEXT)
-rm -f pycafe/PyCafe.lo
-rm -f pycafe/PyCafe_sf.$(OBJEXT)
-rm -f pycafe/PyCafe_sf.lo
-rm -f bitshuffle/*.$(OBJEXT)
-rm -f bitshuffle/*.lo
distclean-compile:
-rm -f *.tab.c
@@ -413,56 +508,54 @@ include ./$(DEPDIR)/zbsDataHolders.Plo
include bitshuffle/$(DEPDIR)/bitshuffle.Plo
include bitshuffle/$(DEPDIR)/bitshuffle_core.Plo
include bitshuffle/$(DEPDIR)/iochain.Plo
include pycafe/$(DEPDIR)/PyCafe.Plo
include pycafe/$(DEPDIR)/PyCafe_sf.Plo
.c.o:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(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
# source='$<' object='$@' libtool=no \
# $(AM_V_CC)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c -o $@ $<
# $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
.c.obj:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
$(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
# source='$<' object='$@' libtool=no \
# $(AM_V_CC)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
$(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
# source='$<' object='$@' libtool=yes \
# $(AM_V_CC)source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LTCOMPILE) -c -o $@ $<
# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $<
.cpp.o:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(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
# source='$<' object='$@' libtool=no \
# $(AM_V_CXX)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(CXXCOMPILE) -c -o $@ $<
# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
$(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
# source='$<' object='$@' libtool=no \
# $(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:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
$(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
# source='$<' object='$@' libtool=yes \
# $(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
@@ -470,28 +563,16 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
-rm -rf bitshuffle/.libs bitshuffle/_libs
-rm -rf pycafe/.libs pycafe/_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; \
@@ -503,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
@@ -520,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
@@ -571,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:
@@ -584,8 +681,6 @@ distclean-generic:
-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)
-rm -f pycafe/$(DEPDIR)/$(am__dirstamp)
-rm -f pycafe/$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -596,7 +691,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR) bitshuffle/$(DEPDIR) pycafe/$(DEPDIR)
-rm -rf ./$(DEPDIR) bitshuffle/$(DEPDIR)
-rm -f makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -642,7 +737,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR) bitshuffle/$(DEPDIR) pycafe/$(DEPDIR)
-rm -rf ./$(DEPDIR) bitshuffle/$(DEPDIR)
-rm -f makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -663,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,13 +12,13 @@ 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 14:0:13
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_
@@ -29,13 +29,14 @@ if HAVE_ZEROMQ_
libcafe_la_SOURCES += zbsCafeService.cpp zbsDataHolders.cpp \
bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c bitshuffle/iochain.c
if HAVE_PYCAFE_EXT_
libcafe_la_SOURCES += pycafe/PyCafe_sf.cpp
endif
else
if HAVE_PYTHON_
libcafe_la_SOURCES += pycafe/PyCafe.cpp
endif
#if HAVE_PYCAFE_EXT_
#libcafe_la_SOURCES += PyCafe.cpp
#endif
#else
#if HAVE_PYTHON_
#libcafe_la_SOURCES += pycafe/PyCafe.cpp
#endif
endif
AM_CPPFLAGS = @AM_CPPFLAGS@ @CAFE_CPPFLAGS@

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;

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

166161
src/pycafe/PyCafe_35_sf.cpp Normal file

File diff suppressed because it is too large Load Diff

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

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)
{