helper functions used to extract handle_index in instant.h for pyvind11 compatability

This commit is contained in:
2021-07-27 16:49:07 +02:00
parent 275bf4ad10
commit cecf4a3f11
20 changed files with 4611 additions and 519 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

View File

@@ -22,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.14.1"
CAFE_V="cafe-1.14.2"
#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")
@@ -36,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"
@@ -258,7 +258,7 @@ 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-epics7=${EPICS}/base-7 \
--with-epics3=${EPICS}/base \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \

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

@@ -9,7 +9,7 @@
# Standard macros
AC_PREREQ(2.63)
AC_COPYRIGHT([CAFE,Jan Chrin, 2010-2021])
AC_INIT([CAFE], [1.14.1], [Bug reports to: jan.chrin@psi.ch])
AC_INIT([CAFE], [1.14.2], [Bug reports to: jan.chrin@psi.ch])
AC_CONFIG_AUX_DIR(./)

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.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
@@ -18,9 +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 +29,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.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

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

View File

@@ -8,6 +8,8 @@
#ifndef INSTANT_CPP
#define INSTANT_CPP
//include <instant.h>
/**
* \brief Set values of data type CTYPE
* \param _handle input: handle to CAFEConduit object
@@ -44,6 +46,8 @@ template <class CTYPE> int Instant<CTYPE>::set(const unsigned int _handle, con
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())
@@ -139,12 +143,11 @@ template <class CTYPE> int Instant<CTYPE>::get(const unsigned int _handle,
std::cout << "CAFE WILL THUS TAKE CONTROL OF ALLOCATING APPROPIATE DBR_TYPE" << std::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())
{
@@ -184,6 +187,8 @@ template <class CTYPE> int Instant<CTYPE>::get(const unsigned int _handle,
else
{
std::cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << std::endl;
const char * _pv = helper.getPVFromHandle(_handle);
std::cout << "Failed to find handle " << _handle << " for pv " << _pv << std::endl;
cafeStatus.report(ECAFE_INVALID_HANDLE);
return ECAFE_INVALID_HANDLE;
}

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

@@ -188,9 +188,9 @@ CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
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/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_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base-7/include/ -I/usr/local/epics/base-7/include/os/Linux -I/usr/local/epics/base-7/include/compiler/gcc -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/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
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/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
AM_LDFLAGS = -L/usr/local/epics/base-7/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base-7/lib/RHEL7-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
AR = ar
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoheader
@@ -201,7 +201,7 @@ CC = /opt/psi/Programming/gcc/7.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/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base-7/include/ -I/usr/local/epics/base-7/include/os/Linux -I/usr/local/epics/base-7/include/compiler/gcc -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/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
CXXDEPMODE = depmode=gcc3
@@ -225,7 +225,7 @@ 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/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/RHEL7-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LDFLAGS = -L/usr/local/epics/base-7/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base-7/lib/RHEL7-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LIBOBJS =
LIBS = -lQt5Xml -lQt5Core
LIBTOOL = $(SHELL) $(top_builddir)/libtool
@@ -245,17 +245,17 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.14.1
PACKAGE_STRING = CAFE 1.14.2
PACKAGE_TARNAME = cafe
PACKAGE_URL =
PACKAGE_VERSION = 1.14.1
PACKAGE_VERSION = 1.14.2
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.14.1
VERSION = 1.14.2
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
@@ -290,7 +290,7 @@ 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.14.1-gcc-7.3.0/lib/RHEL7-x86_64
libdir = /opt/gfa/cafe/cpp/cafe-1.14.2-sls2-gcc-7.3.0/lib/RHEL7-x86_64
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
@@ -298,7 +298,7 @@ mandir = ${datarootdir}/man
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /opt/gfa/cafe/cpp/cafe-1.14.1-gcc-7.3.0
prefix = /opt/gfa/cafe/cpp/cafe-1.14.2-sls2-gcc-7.3.0
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin

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

View File

@@ -1,5 +1,5 @@
#! /bin/sh
# Generated automatically by config.status (cafe) 1.14.1
# Generated automatically by config.status (cafe) 1.14.2
# Libtool was configured on host sf-lc7a.psi.ch:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
@@ -285,7 +285,7 @@ hardcode_into_libs=yes
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 "
# Detected run-time system search path for libraries.
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib64/atlas /usr/lib64//bind9-export/ /usr/lib64/dyninst /usr/lib64/mysql /usr/lib64/tcl8.5/tclx8.4 "
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=""

View File

@@ -232,9 +232,9 @@ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
distcleancheck_listfiles = find . -type f -print
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/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_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base-7/include/ -I/usr/local/epics/base-7/include/os/Linux -I/usr/local/epics/base-7/include/compiler/gcc -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/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_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/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib @CAFE_LIBS@
AM_LDFLAGS = -L/usr/local/epics/base-7/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base-7/lib/RHEL7-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib @CAFE_LIBS@
AR = ar
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoheader
@@ -245,7 +245,7 @@ CC = /opt/psi/Programming/gcc/7.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/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base-7/include/ -I/usr/local/epics/base-7/include/os/Linux -I/usr/local/epics/base-7/include/compiler/gcc -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/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
CXXDEPMODE = depmode=gcc3
@@ -269,7 +269,7 @@ 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/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/RHEL7-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LDFLAGS = -L/usr/local/epics/base-7/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base-7/lib/RHEL7-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LIBOBJS =
LIBS = -lQt5Xml -lQt5Core
LIBTOOL = $(SHELL) $(top_builddir)/libtool
@@ -289,17 +289,17 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.14.1
PACKAGE_STRING = CAFE 1.14.2
PACKAGE_TARNAME = cafe
PACKAGE_URL =
PACKAGE_VERSION = 1.14.1
PACKAGE_VERSION = 1.14.2
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.14.1
VERSION = 1.14.2
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
@@ -334,7 +334,7 @@ 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.14.1-gcc-7.3.0/lib/RHEL7-x86_64
libdir = /opt/gfa/cafe/cpp/cafe-1.14.2-sls2-gcc-7.3.0/lib/RHEL7-x86_64
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
@@ -342,7 +342,7 @@ mandir = ${datarootdir}/man
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /opt/gfa/cafe/cpp/cafe-1.14.1-gcc-7.3.0
prefix = /opt/gfa/cafe/cpp/cafe-1.14.2-sls2-gcc-7.3.0
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin

View File

@@ -1657,6 +1657,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 +1806,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 +1828,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();
}
}
@@ -2491,7 +2613,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

View File

@@ -249,9 +249,9 @@ AMTAR = $${TAR-tar}
#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/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_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base-7/include/ -I/usr/local/epics/base-7/include/os/Linux -I/usr/local/epics/base-7/include/compiler/gcc -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/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_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/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
AM_LDFLAGS = -L/usr/local/epics/base-7/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base-7/lib/RHEL7-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
AR = ar
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing autoheader
@@ -262,7 +262,7 @@ CC = /opt/psi/Programming/gcc/7.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/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base-7/include/ -I/usr/local/epics/base-7/include/os/Linux -I/usr/local/epics/base-7/include/compiler/gcc -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/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
CXXDEPMODE = depmode=gcc3
@@ -286,7 +286,7 @@ 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/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/RHEL7-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LDFLAGS = -L/usr/local/epics/base-7/lib/RHEL7-x86_64 -Wl,-rpath,/usr/local/epics/base-7/lib/RHEL7-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LIBOBJS =
LIBS = -lQt5Xml -lQt5Core
LIBTOOL = $(SHELL) $(top_builddir)/libtool
@@ -306,17 +306,17 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.14.1
PACKAGE_STRING = CAFE 1.14.2
PACKAGE_TARNAME = cafe
PACKAGE_URL =
PACKAGE_VERSION = 1.14.1
PACKAGE_VERSION = 1.14.2
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.14.1
VERSION = 1.14.2
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
@@ -351,7 +351,7 @@ 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.14.1-gcc-7.3.0/lib/RHEL7-x86_64
libdir = /opt/gfa/cafe/cpp/cafe-1.14.2-sls2-gcc-7.3.0/lib/RHEL7-x86_64
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
@@ -359,7 +359,7 @@ mandir = ${datarootdir}/man
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /opt/gfa/cafe/cpp/cafe-1.14.1-gcc-7.3.0
prefix = /opt/gfa/cafe/cpp/cafe-1.14.2-sls2-gcc-7.3.0
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
@@ -379,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 15:1:14
libcafe_la_LDFLAGS = -version-info 15:2:14
libcafe_la_SOURCES = cafe.cpp cafeCache.cpp cafeGroup.cpp \
cafeVectors.cpp cafeXML.cpp callbackHandlerCreate.cpp \
callbackHandlerMonitor.cpp conduit.cpp connect.cpp \

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 15:1:14
libcafe_la_LDFLAGS = -version-info 15:2: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_

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