Rename authentication flag.
[shibboleth/xmltooling.git] / xmltooling / soap / SOAPTransport.h
index cb8d9b6..55ec9e0 100644 (file)
@@ -29,6 +29,7 @@
 namespace xmltooling {
     
     class XMLTOOL_API Credential;
+    class XMLTOOL_API CredentialCriteria;
     class XMLTOOL_API CredentialResolver;
     class XMLTOOL_API X509TrustEngine;
     
@@ -45,7 +46,31 @@ namespace xmltooling {
         SOAPTransport() {}
     public:
         virtual ~SOAPTransport() {}
-        
+
+        /**
+         * A simple structure to capture SOAP addressing information.
+         */
+        struct XMLTOOL_API Address {
+            /**
+             * Constructor.
+             *
+             * @param from      name of sender
+             * @param to        name of recipient
+             * @param endpoint  endpoint URL
+             */
+            Address(const char* from, const char* to, const char* endpoint) : m_from(from), m_to(to), m_endpoint(endpoint) {
+            }
+
+            /** Name of sender. */
+            const char* m_from;
+
+            /** Name of recipient. */
+            const char* m_to;
+
+            /** Endpoint URL. */
+            const char* m_endpoint;
+        };
+
         /**
          * Indicates whether transport provides confidentiality.
          * 
@@ -131,6 +156,21 @@ namespace xmltooling {
 #endif
 
         /**
+         * Sets an implementation-specific transport provider option.
+         * 
+         * <p>Requires knowledge of the underlying SOAPTransport implementation.
+         * Without the proper knowledge and inputs, crashes may result.
+         * 
+         * @param provider  name of the SOAPTransport class the caller believes is in use
+         * @param option    implementation-specific string containing the option to set
+         * @param value     implementation- and option-specific string to use
+         * @return  true iff the transport supports the option and value supplied
+         */
+        virtual bool setProviderOption(const char* provider, const char* option, const char* value) {
+            return false;
+        }
+        
+        /**
          * Sends a stream of data over the transport. The function may return without
          * having received any data, depending on the nature of the transport.
          * 
@@ -151,7 +191,7 @@ namespace xmltooling {
          * 
          * @return true iff TrustEngine or other mechanism successfully authenticated the peer
          */
-        virtual bool isSecure() const=0;
+        virtual bool isAuthenticated() const=0;
 
         /**
          * Returns the MIME type of the response, if any.