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

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