DECL_STRING_ATTRIB(ProtocolSupportEnumeration,PROTOCOLSUPPORTENUMERATION);
/** Searches the ProtocolSupportEnumeration attribute for the indicated protocol. */
virtual bool hasSupport(const XMLCh* protocol) const=0;
+ /** Adds the indicated protocol to the ProtocolSupportEnumeration attribute. */
+ virtual void addSupport(const XMLCh* protocol)=0;
DECL_STRING_ATTRIB(ErrorURL,ERRORURL);
DECL_TYPED_CHILD(Extensions);
DECL_TYPED_CHILDREN(KeyDescriptor);
}
return false;
}
+
+ void addSupport(const XMLCh* protocol) {
+ if (hasSupport(protocol))
+ return;
+ if (m_ProtocolSupportEnumeration && *m_ProtocolSupportEnumeration) {
+#ifdef HAVE_GOOD_STL
+ xstring pse(m_ProtocolSupportEnumeration);
+ pse = pse + chSpace + protocol;
+ setProtocolSupportEnumeration(pse.c_str());
+#else
+ auto_ptr_char temp(m_ProtocolSupportEnumeration);
+ string pse(temp.get());
+ pse = pse + ' ' + protocol;
+ auto_ptr_XMLCh temp2(pse.c_str());
+ setProtocolSupportEnumeration(temp2.get());
+#endif
+ }
+ else {
+ setProtocolSupportEnumeration(protocol);
+ }
+ }
void setAttribute(const QName& qualifiedName, const XMLCh* value, bool ID=false) {
if (!qualifiedName.hasNamespaceURI()) {