Files
pvAccess/src/pva/pvaVersion.cpp
2018-10-04 21:08:15 -07:00

75 lines
1.8 KiB
C++

/**
* Copyright - See the COPYRIGHT that is included with this distribution.
* pvAccessCPP is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
*/
#include <sstream>
#define epicsExportSharedSymbols
#include <pv/pvaVersion.h>
#include <pv/pvaConstants.h>
using std::stringstream;
using std::string;
namespace epics {
namespace pvAccess {
const std::string PVACCESS_DEFAULT_PROVIDER("local");
const std::string PVACCESS_ALL_PROVIDERS("<all>");
const std::string PVACCESS_DEBUG("EPICS_PVA_DEBUG");
Version::Version(std::string const & productName,
std::string const & implementationLangugage,
int majorVersion, int minorVersion,
int maintenanceVersion, bool developmentFlag) :
_productName(productName),
_implementationLanguage(implementationLangugage),
_majorVersion(majorVersion),
_minorVersion(minorVersion),
_maintenanceVersion(maintenanceVersion),
_developmentFlag(developmentFlag)
{
}
const std::string Version::getProductName() const {
return _productName;
}
const std::string Version::getImplementationLanguage() const {
return _implementationLanguage;
}
int Version::getMajorVersion() const {
return _majorVersion;
}
int Version::getMinorVersion() const {
return _minorVersion;
}
int Version::getMaintenanceVersion() const {
return _maintenanceVersion;
}
bool Version::isDevelopmentVersion() const {
return _developmentFlag;
}
const string Version::getVersionString() const {
stringstream ret;
ret<<getProductName()<<" v"<<getMajorVersion()<<'.'<<getMinorVersion()<<'.'<<getMaintenanceVersion();
if (isDevelopmentVersion())
ret<<"-SNAPSHOT";
return ret.str();
}
std::ostream& operator<<(std::ostream& o, const Version& v) {
return o << v.getVersionString();
}
}
}