10 #ifdef epicsExportSharedSymbols
11 # define pvaVersionEpicsExportSharedSymbols
12 # undef epicsExportSharedSymbols
15 #include <pv/pvType.h>
16 #include <pv/noDefaultMethods.h>
18 #ifdef pvaVersionEpicsExportSharedSymbols
19 # define epicsExportSharedSymbols
20 # undef pvaVersionEpicsExportSharedSymbols
25 #include "pv/pvaVersionNum.h"
28 # define VERSION_INT(V,R,M,P) ( ((V)<<24) | ((R)<<16) | ((M)<<8) | (P))
31 #define PVACCESS_VERSION_INT VERSION_INT(EPICS_PVA_MAJOR_VERSION, EPICS_PVA_MINOR_VERSION, EPICS_PVA_MAINTENANCE_VERSION, 0)
36 class epicsShareClass Version {
37 EPICS_NOT_COPYABLE(Version)
48 Version(std::
string const & productName,
49 std::
string const & implementationLangugage,
50 int majorVersion,
int minorVersion,
51 int maintenanceVersion,
bool developmentFlag);
54 const std::
string getProductName() const;
58 const std::
string getImplementationLanguage() const;
68 int getMajorVersion() const;
78 int getMinorVersion() const;
87 int getMaintenanceVersion() const;
98 bool isDevelopmentVersion() const;
104 const std::
string getLongVersionString() const;
110 const std::
string getVersionString() const;
113 std::
string _productName;
114 std::
string _implementationLanguage;
117 int _maintenanceVersion;
118 bool _developmentFlag;
121 epicsShareFunc std::
ostream& operator<<(std::
ostream& o, const Version& v);