+namespace shibresolver {
+ class SHIBRESOLVER_DLLLOCAL RemotedResolver : public Remoted {
+ public:
+ RemotedResolver() {}
+ ~RemotedResolver() {}
+
+ void receive(DDF& in, ostream& out);
+ };
+
+ static RemotedResolver g_Remoted;
+};
+
+ShibbolethResolver* ShibbolethResolver::create()
+{
+ return new ShibbolethResolver();
+}
+
+ShibbolethResolver::ShibbolethResolver()
+{
+}
+
+ShibbolethResolver::~ShibbolethResolver()
+{
+ for_each(m_resolvedAttributes.begin(), m_resolvedAttributes.end(), xmltooling::cleanup<Attribute>());
+ if (m_mapper)
+ m_mapper->unlock();
+ if (m_sp)
+ m_sp->unlock();
+}
+
+void ShibbolethResolver::setServiceURI(const char* uri)
+{
+ m_serviceURI.erase();
+ if (uri)
+ m_serviceURI = uri;
+}
+
+void ShibbolethResolver::setApplicationID(const char* appID)
+{
+ m_appID.erase();
+ if (appID)
+ m_appID = appID;
+}
+
+void ShibbolethResolver::setIssuer(const char* issuer)
+{
+ m_issuer.erase();
+ if (issuer)
+ m_issuer = issuer;
+}
+
+void ShibbolethResolver::addToken(
+#ifdef SHIBSP_LITE
+ const XMLObject* token
+#else
+ const saml2::Assertion* token
+#endif
+ )
+{
+ if (token)
+ m_tokens.push_back(token);
+}
+
+void ShibbolethResolver::addAttribute(Attribute* attr)
+{
+ if (attr)
+ m_inputAttributes.push_back(attr);
+}
+
+vector<Attribute*>& ShibbolethResolver::getResolvedAttributes()
+{
+ return m_resolvedAttributes;
+}
+
+RequestMapper::Settings ShibbolethResolver::getSettings() const
+{
+ return m_settings;
+}
+
+void ShibbolethResolver::resolve()
+{
+}
+
+void RemotedResolver::receive(DDF& in, ostream& out)
+{
+}
+
+bool ShibbolethResolver::init(unsigned long features, const char* config, bool rethrow)
+{
+ SPConfig::getConfig().setFeatures(features | SPConfig::AttributeResolution | SPConfig::Metadata | SPConfig::Trust);
+ if (!SPConfig::getConfig().init())
+ return false;
+ if (!SPConfig::getConfig().instantiate(config, rethrow))
+ return false;
+ return true;
+}
+
+/**
+ * Shuts down runtime.
+ *
+ * Each process using the library SHOULD call this function exactly once before terminating itself.
+ */
+void ShibbolethResolver::term()
+{
+ SPConfig::getConfig().term();
+}
+
+