diff --git a/.gitignore b/.gitignore index 5430c36..b4ffe99 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ include/ db/ dbd/ html/ +cfg/ envPaths configure/*.local !configure/ExampleRELEASE.local diff --git a/configure/CONFIG_PVA_CORE b/configure/CONFIG_PVA_CORE new file mode 100644 index 0000000..c95db5f --- /dev/null +++ b/configure/CONFIG_PVA_CORE @@ -0,0 +1,6 @@ +EPICS_BASE_PVA_CORE_LIBS = pvAccessIOC pvAccessCA pvAccess pvData + +EPICS_PVA_MAJOR_VERSION = 6 +EPICS_PVA_MINOR_VERSION = 0 +EPICS_PVA_MAINTENANCE_VERSION = 0 +EPICS_PVA_DEVELOPMENT_FLAG = 1 diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE index 61909e9..dc691b0 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -23,20 +23,7 @@ CHECK_RELEASE = YES -include $(TOP)/../CONFIG_SITE.local -include $(TOP)/configure/CONFIG_SITE.local -EPICS_PVA_MAJOR_VERSION = 6 -EPICS_PVA_MINOR_VERSION = 0 -EPICS_PVA_MAINTENANCE_VERSION = 0 -EPICS_PVA_DEVELOPMENT_FLAG = 1 - -SHRLIB_VERSION ?= $(EPICS_PVA_MAJOR_VERSION).$(EPICS_PVA_MINOR_VERSION).$(EPICS_PVA_MAINTENANCE_VERSION) - ifdef WITH_COVERAGE USR_CPPFLAGS += --coverage USR_LDFLAGS += --coverage endif - -ifdef WITH_MICROBENCH -USR_CPPFLAGS += -DWITH_MICROBENCH -MBLIB = pvMB -endif - diff --git a/configure/Makefile b/configure/Makefile index aefe673..97b9fcf 100644 --- a/configure/Makefile +++ b/configure/Makefile @@ -2,6 +2,8 @@ TOP=.. include $(TOP)/configure/CONFIG +CFG += CONFIG_PVA_CORE + TARGETS = $(CONFIG_TARGETS) CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) diff --git a/jenkins/cloudbees_build b/jenkins/cloudbees_build index 89b3f6b..6ca57f4 100644 --- a/jenkins/cloudbees_build +++ b/jenkins/cloudbees_build @@ -21,14 +21,7 @@ installE4 () { local module=$1 local branch=$2 - # If microbench version does not exist, try without - if [ "${MB}" = "WITH_MICROBENCH" ]; then - if ! wget -nv https://openepics.ci.cloudbees.com/job/e4-cpp-${module}-${branch}-build/BASE=${BASE},MB=WITH_MICROBENCH/lastSuccessfulBuild/artifact/${module}.CB-dist.tar.gz; then - wget -nv https://openepics.ci.cloudbees.com/job/e4-cpp-${module}-${branch}-build/BASE=${BASE},MB=NO_MICROBENCH/lastSuccessfulBuild/artifact/${module}.CB-dist.tar.gz - fi - else - wget -nv https://openepics.ci.cloudbees.com/job/e4-cpp-${module}-${branch}-build/BASE=${BASE},MB=NO_MICROBENCH/lastSuccessfulBuild/artifact/${module}.CB-dist.tar.gz - fi + wget -nv https://openepics.ci.cloudbees.com/job/e4-cpp-${module}-${branch}-build/BASE=${BASE}/lastSuccessfulBuild/artifact/${module}.CB-dist.tar.gz tar -xzf ${module}.CB-dist.tar.gz } @@ -37,7 +30,6 @@ installE4 () { DEFAULT_BASE=3.15.4 BASE=${BASE:-${DEFAULT_BASE}} -MB=${MB:-"NO_MICROBENCH"} ########################################### # Dependent module branches @@ -54,10 +46,8 @@ rm -fr ${STUFF} mkdir -p ${STUFF} cd ${STUFF} -installTool Boost 1.61.0 installTool Base ${BASE} -installE4 pvCommon ${PVCOMMON_BRANCH} installE4 pvData ${PVDATA_BRANCH} ########################################### @@ -74,13 +64,6 @@ cat > configure/RELEASE.local << EOF EPICS_BASE=${EPICS_BASE} EOF -if [ "${MB}" = "WITH_MICROBENCH" ]; then - # must use TAB characters here - cat > configure/CONFIG_SITE.local <<- EOF - WITH_MICROBENCH=1 - EOF -fi - make distclean all ########################################### diff --git a/pvtoolsSrc/Makefile b/pvtoolsSrc/Makefile index 8fdedf7..d85a43e 100644 --- a/pvtoolsSrc/Makefile +++ b/pvtoolsSrc/Makefile @@ -20,7 +20,7 @@ pvlist_SRCS += pvlist.cpp PROD_HOST += eget eget_SRCS += eget.cpp -PROD_LIBS += pvAccessCA pvAccess pvData $(MBLIB) ca Com +PROD_LIBS += pvAccessCA pvAccess pvData ca Com PROD_SYS_LIBS_WIN32 += ws2_32 diff --git a/pvtoolsSrc/eget.cpp b/pvtoolsSrc/eget.cpp index 8a347c3..7ae6b8a 100644 --- a/pvtoolsSrc/eget.cpp +++ b/pvtoolsSrc/eget.cpp @@ -1028,9 +1028,9 @@ string request(DEFAULT_REQUEST); void usage (void) { fprintf (stderr, "\nUsage: eget [options] [... | -s ]\n\n" - " -h: Help: Print this message\n" - " -v: Print version and exit\n" "\noptions:\n" + " -h: Help: Print this message\n" + " -V: Print version and exit\n" " -s : Service API compliant based RPC service name (accepts NTURI request argument)\n" " -a : Service argument in 'name[=value]' or 'name value' form\n" " -r : Get request string, specifies what fields to return and options, default is '%s'\n" @@ -1459,12 +1459,12 @@ int main (int argc, char *argv[]) setvbuf(stdout,NULL,_IOLBF,BUFSIZ); /* Set stdout to line buffering */ - while ((opt = getopt(argc, argv, ":hvr:s:a:w:zNtTmxp:qdcF:f:ni")) != -1) { + while ((opt = getopt(argc, argv, ":hVr:s:a:w:zNtTmxp:qdcF:f:ni")) != -1) { switch (opt) { case 'h': /* Print usage */ usage(); return 0; - case 'v': /* Print version */ + case 'V': /* Print version */ { Version version("eget", "cpp", EPICS_PVA_MAJOR_VERSION, diff --git a/pvtoolsSrc/pvget.cpp b/pvtoolsSrc/pvget.cpp index d2cec37..2edc16a 100644 --- a/pvtoolsSrc/pvget.cpp +++ b/pvtoolsSrc/pvget.cpp @@ -53,15 +53,16 @@ char fieldSeparator = ' '; void usage (void) { fprintf (stderr, "\nUsage: pvget [options] ...\n\n" - " -h: Help: Print this message\n" - " -v: Print version and exit\n" "\noptions:\n" + " -h: Help: Print this message\n" + " -V: Print version and exit\n" " -r : Request, specifies what fields to return and options, default is '%s'\n" " -w : Wait time, specifies timeout, default is 3 seconds for get, inf. for monitor\n" " -t: Terse mode - print only value, without names\n" " -i: Do not format standard types (enum_t, time_t, ...)\n" " -m: Monitor mode\n" " -p : Set default provider name, default is '%s'\n" + " -v: Show entire structure\n" " -q: Quiet mode, print only error messages\n" " -d: Enable debug output\n" " -F : Use as an alternate output field separator\n" @@ -365,12 +366,15 @@ int main (int argc, char *argv[]) // ================ Parse Arguments - while ((opt = getopt(argc, argv, ":hvRr:w:tmp:qdcF:f:ni")) != -1) { + while ((opt = getopt(argc, argv, ":hvVRr:w:tmp:qdcF:f:ni")) != -1) { switch (opt) { case 'h': /* Print usage */ usage(); return 0; - case 'v': /* Print version */ + case 'v': + mode = StructureMode; + break; + case 'V': /* Print version */ { Version version("pvget", "cpp", EPICS_PVA_MAJOR_VERSION, diff --git a/pvtoolsSrc/pvinfo.cpp b/pvtoolsSrc/pvinfo.cpp index babef3c..3a30dde 100644 --- a/pvtoolsSrc/pvinfo.cpp +++ b/pvtoolsSrc/pvinfo.cpp @@ -34,9 +34,9 @@ const string noAddress; void usage (void) { fprintf (stderr, "\nUsage: pvinfo [options] ...\n\n" - " -h: Help: Print this message\n" - " -v: Print version and exit\n" "\noptions:\n" + " -h: Help: Print this message\n" + " -V: Print version and exit\n" " -w : Wait time, specifies timeout, default is %f second(s)\n" " -p : Set default provider name, default is '%s'\n" " -d: Enable debug output\n" @@ -70,12 +70,12 @@ int main (int argc, char *argv[]) setvbuf(stdout,NULL,_IOLBF,BUFSIZ); /* Set stdout to line buffering */ - while ((opt = getopt(argc, argv, ":hvw:p:dc")) != -1) { + while ((opt = getopt(argc, argv, ":hVw:p:dc")) != -1) { switch (opt) { case 'h': /* Print usage */ usage(); return 0; - case 'v': /* Print version */ + case 'V': /* Print version */ { Version version("pvinfo", "cpp", EPICS_PVA_MAJOR_VERSION, diff --git a/pvtoolsSrc/pvlist.cpp b/pvtoolsSrc/pvlist.cpp index ebbc7b6..090ec1b 100644 --- a/pvtoolsSrc/pvlist.cpp +++ b/pvtoolsSrc/pvlist.cpp @@ -449,9 +449,9 @@ bool discoverServers(double timeOut) void usage (void) { fprintf (stderr, "\nUsage: pvlist [options] []...\n\n" - " -h: Help: Print this message\n" - " -v: Print version and exit\n" "\noptions:\n" + " -h: Help: Print this message\n" + " -V: Print version and exit\n" " -i Print server info (when server address list/GUID is given)\n" " -w : Wait time, specifies timeout, default is %f second(s)\n" " -q: Quiet mode, print only error messages\n" @@ -498,12 +498,12 @@ int main (int argc, char *argv[]) */ setvbuf(stdout,NULL,_IOLBF,BUFSIZ); /* Set stdout to line buffering */ - while ((opt = getopt(argc, argv, ":hvw:qdF:f:i")) != -1) { + while ((opt = getopt(argc, argv, ":hVw:qdF:f:i")) != -1) { switch (opt) { case 'h': /* Print usage */ usage(); return 0; - case 'v': /* Print version */ + case 'V': /* Print version */ { Version version("pvlist", "cpp", EPICS_PVA_MAJOR_VERSION, diff --git a/pvtoolsSrc/pvput.cpp b/pvtoolsSrc/pvput.cpp index 88b0b9d..8a36926 100644 --- a/pvtoolsSrc/pvput.cpp +++ b/pvtoolsSrc/pvput.cpp @@ -68,13 +68,14 @@ void usage (bool details=false) #endif fprintf (stderr, "\n" + "\noptions:\n" " -h: Help: Print this message\n" " -v: Print version and exit\n" - "\noptions:\n" " -r : Request, specifies what fields to return and options, default is '%s'\n" " -w : Wait time, specifies timeout, default is %f second(s)\n" " -t: Terse mode - print only successfully written value, without names\n" " -p : Set default provider name, default is '%s'\n" + " -v: Show entire structure\n" " -q: Quiet mode, print only error messages\n" " -d: Enable debug output\n" " -F : Use as an alternate output field separator\n" @@ -406,12 +407,15 @@ int main (int argc, char *argv[]) setvbuf(stdout,NULL,_IOLBF,BUFSIZ); /* Set stdout to line buffering */ putenv(const_cast("POSIXLY_CORRECT=")); /* Behave correct on GNU getopt systems; e.g. handle negative numbers */ - while ((opt = getopt(argc, argv, ":hvr:w:tp:qdF:f:ns")) != -1) { + while ((opt = getopt(argc, argv, ":hvVr:w:tp:qdF:f:ns")) != -1) { switch (opt) { case 'h': /* Print usage */ usage(true); return 0; - case 'v': /* Print version */ + case 'v': + mode = StructureMode; + break; + case 'V': /* Print version */ { Version version("pvput", "cpp", EPICS_PVA_MAJOR_VERSION, diff --git a/src/Makefile b/src/Makefile index 93b2604..a97e52d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -27,11 +27,10 @@ include $(PVACCESS_SRC)/mb/Makefile LIBRARY += pvAccess pvAccess_LIBS += pvData -ifdef WITH_MICROBENCH - LIB_LIBS += pvMB -endif LIB_LIBS += Com +SHRLIB_VERSION ?= $(EPICS_PVA_MAJOR_VERSION).$(EPICS_PVA_MINOR_VERSION).$(EPICS_PVA_MAINTENANCE_VERSION) + # needed for Windows LIB_SYS_LIBS_WIN32 += ws2_32 diff --git a/src/ca/Makefile b/src/ca/Makefile index 640dd40..bc376f0 100644 --- a/src/ca/Makefile +++ b/src/ca/Makefile @@ -3,11 +3,10 @@ include $(TOP)/configure/CONFIG LIBRARY += pvAccessCA pvAccessCA_LIBS += ca pvAccess pvData -ifdef WITH_MICROBENCH - LIB_LIBS += pvMB -endif LIB_LIBS += Com +SHRLIB_VERSION ?= $(EPICS_PVA_MAJOR_VERSION).$(EPICS_PVA_MINOR_VERSION).$(EPICS_PVA_MAINTENANCE_VERSION) + # needed for Windows LIB_SYS_LIBS_WIN32 += ws2_32 diff --git a/src/client/pva/client.h b/src/client/pva/client.h index 6cb578b..2c76ed2 100644 --- a/src/client/pva/client.h +++ b/src/client/pva/client.h @@ -311,11 +311,12 @@ public: /** Begin subscription w/o callbacks * - * @param event If not NULL, then subscription events are signaled to this epicsEvent. Test with poll(). - * Otherwise an internal epicsEvent is allocated for use with wait() + * @param event If not NULL, then subscription events are signaled to this epicsEvent. + * Use MonitorSync::test() to see if a subscription has an event waiting. + * Otherwise an internal epicsEvent is allocated for use with MonitorSync::wait() * - * @note For simple usage with a single MonitorSync, pass event=NULL and call wait(). - * If more than one MonitorSync is being created, then pass a custom epicsEvent and use test() to find + * @note For simple usage with a single MonitorSync, pass event=NULL and call MonitorSync::wait(). + * If more than one MonitorSync is being created, then pass a custom epicsEvent and use MonitorSync::test() to find * which subscriptions have events pending. */ MonitorSync monitor(const epics::pvData::PVStructure::const_shared_pointer& pvRequest = epics::pvData::PVStructure::const_shared_pointer(), diff --git a/src/ioc/Makefile b/src/ioc/Makefile index 16b1349..1406613 100644 --- a/src/ioc/Makefile +++ b/src/ioc/Makefile @@ -6,6 +6,8 @@ LIBRARY += pvAccessIOC pvAccessIOC_LIBS += pvAccess pvData pvAccessIOC_LIBS += $(EPICS_BASE_IOC_LIBS) +SHRLIB_VERSION ?= $(EPICS_PVA_MAJOR_VERSION).$(EPICS_PVA_MINOR_VERSION).$(EPICS_PVA_MAINTENANCE_VERSION) + INC += pv/syncChannelFind.h INC += pv/iocshelper.h diff --git a/testApp/Makefile b/testApp/Makefile index 7bd748e..bc3a8f8 100644 --- a/testApp/Makefile +++ b/testApp/Makefile @@ -10,7 +10,7 @@ USR_CPPFLAGS += -I$(TOP)/src/remoteClient PVACCESS_TEST = $(TOP)/testApp -PROD_LIBS += pvAccess pvData $(MBLIB) Com +PROD_LIBS += pvAccess pvData Com include $(PVACCESS_TEST)/utils/Makefile include $(PVACCESS_TEST)/remote/Makefile