-/*
- * Copyright 2001-2007 Internet2
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+/**
+ * Licensed to the University Corporation for Advanced Internet
+ * Development, Inc. (UCAID) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for
+ * additional information regarding copyright ownership.
+ *
+ * UCAID licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the
+ * License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+ * either express or implied. See the License for the specific
+ * language governing permissions and limitations under the License.
*/
/*
#ifdef WIN32
# define _CRT_SECURE_NO_DEPRECATE 1
# define _CRT_NONSTDC_NO_DEPRECATE 1
+# define _SCL_SECURE_NO_WARNINGS 1
#endif
// Export public APIs
#include "SAMLConfig.h"
#include <limits.h>
+#include <vector>
+#include <boost/scoped_ptr.hpp>
+#include <xmltooling/unicode.h>
+
+using namespace xercesc;
// C99 defines LLONG_MIN, LLONG_MAX and ULLONG_MAX, but this part of
// C99 is not yet included into the C++ standard.
#if SIZEOF_TIME_T == 8
# define SAMLTIME_MAX LLONG_MAX
#elif SIZEOF_TIME_T == 4
-# define SAMLTIME_MAX LONG_MAX
+# define SAMLTIME_MAX INT_MAX
#endif
#define SAML_LOGCAT "OpenSAML"
+namespace xmltooling {
+ class XMLTOOL_API Mutex;
+};
+
namespace opensaml {
/// @cond OFF
- class SAMLInternalConfig : public SAMLConfig
+ class SAML_DLLLOCAL SAMLInternalConfig : public SAMLConfig
{
public:
- SAMLInternalConfig() {}
+ SAMLInternalConfig();
+ ~SAMLInternalConfig();
static SAMLInternalConfig& getInternalConfig();
void generateRandomBytes(std::string& buf, unsigned int len);
XMLCh* generateIdentifier();
std::string hashSHA1(const char* data, bool toHex=false);
+ void setContactPriority(const XMLCh*);
+ const saml2md::ContactPerson* getContactPerson(const saml2md::EntityDescriptor&) const;
+ const saml2md::ContactPerson* getContactPerson(const saml2md::RoleDescriptor&) const;
+
private:
+ int m_initCount;
+ boost::scoped_ptr<xmltooling::Mutex> m_lock;
+ std::vector<xmltooling::xstring> m_contactPriority;
};
-
- void log_openssl();
/// @endcond
};