[cpp-opensaml] 01/02: Linux backport: MetadataProvider inheritance
Rod Widdowson
rdw at steadingsoftware.com
Tue Jan 9 05:42:41 EST 2018
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch master
in repository cpp-opensaml.
View the commit online:
http://git.shibboleth.net/view/?p=cpp-opensaml.git;a=commit;h=f715631c8dcaeb14711577ebaa80c5c295d3821b
commit f715631c8dcaeb14711577ebaa80c5c295d3821b
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Jan 9 10:01:12 2018 +0000
Linux backport: MetadataProvider inheritance
MAKE_NONCOPYABLE requires a no parameter constructor, but we really
dont want anyone calling it, so make it private and force calling
of the real one in all derived classes.
---
saml/saml2/metadata/MetadataProvider.h | 7 +++++++
saml/saml2/metadata/impl/AbstractDynamicMetadataProvider.cpp | 2 +-
saml/saml2/metadata/impl/AbstractMetadataProvider.cpp | 2 +-
saml/saml2/metadata/impl/MetadataProvider.cpp | 4 +++-
4 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/saml/saml2/metadata/MetadataProvider.h b/saml/saml2/metadata/MetadataProvider.h
index 8f338ee..e860040 100644
--- a/saml/saml2/metadata/MetadataProvider.h
+++ b/saml/saml2/metadata/MetadataProvider.h
@@ -68,6 +68,13 @@ namespace opensaml {
class SAML_API MetadataProvider : public virtual xmltooling::CredentialResolver
{
MAKE_NONCOPYABLE(MetadataProvider);
+ /**
+ * Default constructor.
+ * DO NOT CALL. This is needed purely as syntactic sugar to keep
+ * MAKE_NONCOPYABLE work on Linux builds.
+ */
+ private:
+ MetadataProvider();
protected:
/**
* Constructor.
diff --git a/saml/saml2/metadata/impl/AbstractDynamicMetadataProvider.cpp b/saml/saml2/metadata/impl/AbstractDynamicMetadataProvider.cpp
index 23b7109..85c8afd 100644
--- a/saml/saml2/metadata/impl/AbstractDynamicMetadataProvider.cpp
+++ b/saml/saml2/metadata/impl/AbstractDynamicMetadataProvider.cpp
@@ -71,7 +71,7 @@ static const XMLCh validate[] = UNICODE_LITERAL_8(v,a,l,i,d,a,t,e);
AbstractDynamicMetadataProvider::AbstractDynamicMetadataProvider(bool defaultNegativeCache, const DOMElement* e)
- : AbstractMetadataProvider(e),
+ : AbstractMetadataProvider(e), MetadataProvider(e),
m_validate(XMLHelper::getAttrBool(e, false, validate)),
m_id(XMLHelper::getAttrString(e, "Dynamic", id)),
m_lock(RWLock::create()),
diff --git a/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp b/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp
index 4fa8c05..1acc88c 100644
--- a/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp
+++ b/saml/saml2/metadata/impl/AbstractMetadataProvider.cpp
@@ -56,7 +56,7 @@ static const XMLCh _KeyInfoResolver[] = UNICODE_LITERAL_15(K,e,y,I,n,f,o,R,e,s,o
static const XMLCh _type[] = UNICODE_LITERAL_4(t,y,p,e);
AbstractMetadataProvider::AbstractMetadataProvider(const DOMElement* e)
- : ObservableMetadataProvider(e), m_lastUpdate(0), m_resolver(nullptr), m_credentialLock(Mutex::create())
+ : ObservableMetadataProvider(e), MetadataProvider(e), m_lastUpdate(0), m_resolver(nullptr), m_credentialLock(Mutex::create())
{
e = XMLHelper::getFirstChildElement(e, _KeyInfoResolver);
if (e) {
diff --git a/saml/saml2/metadata/impl/MetadataProvider.cpp b/saml/saml2/metadata/impl/MetadataProvider.cpp
index bfd0cfe..c381aad 100644
--- a/saml/saml2/metadata/impl/MetadataProvider.cpp
+++ b/saml/saml2/metadata/impl/MetadataProvider.cpp
@@ -92,6 +92,8 @@ static const XMLCh Exclude[] = UNICODE_LITERAL_7(E,x,c,l,u,d,e);
static const XMLCh Include[] = UNICODE_LITERAL_7(I,n,c,l,u,d,e);
static const XMLCh _type[] = UNICODE_LITERAL_4(t,y,p,e);
+MetadataProvider::MetadataProvider() { throw MetadataException("Illegal constructor call");}
+
MetadataProvider::MetadataProvider(const DOMElement* e) : m_filterContext(nullptr)
{
#ifdef _DEBUG
@@ -287,4 +289,4 @@ bool BatchLoadMetadataFilterContext::isBackingFile() const
void BatchLoadMetadataFilterContext::setBackingFile(bool flag)
{
m_isBackingFile = flag;
-}
\ No newline at end of file
+}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list