Eliminated need for encoding contractID, made all registered services

available as styles in the default encoding, and fixed to create
services.


git-svn-id: svn://10.0.0.236/branches/SOAP_20010403_BRANCH@108824 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
rayw%netscape.com
2001-11-22 23:14:03 +00:00
parent 5e6cfecab1
commit 0945394e50
10 changed files with 30 additions and 40 deletions

View File

@@ -177,8 +177,6 @@ interface nsISOAPEncoding : nsISupports {
{ /* 06fb035c-1dd2-11b2-bc30-f6d8e314d6b9 */ \
0x06fb035c, 0x1dd2, 0x11b2, \
{0xbc, 0x30, 0xf6, 0xd8, 0xe3, 0x14, 0xd6, 0xb9} }
#define NS_SOAPENCODING_CONTRACTID \
"@mozilla.org/xmlextras/soap/encoding;1"
#define NS_SOAPENCODING_CONTRACTID_PREFIX \
"@mozilla.org/xmlextras/soap/encoding;1?uri="
#define NS_DEFAULTSOAPENCODER_CONTRACTID \

View File

@@ -152,7 +152,7 @@ DECLARE_ENCODER(UnsignedByte)
SetDecoder(kSchemaDatatypesNamespaceURI, k##name##SchemaType, handler); \
}
nsDefaultSOAPEncoder::nsDefaultSOAPEncoder(): nsSOAPEncoding(nsSOAPUtils::kSOAPEncodingURI, nsnull)
nsDefaultSOAPEncoder::nsDefaultSOAPEncoder(): nsSOAPEncoding(nsSOAPUtils::kSOAPEncodingURI, nsnull, nsnull)
{
{
nsDefaultEncoder *handler = new nsDefaultEncoder();

View File

@@ -63,8 +63,13 @@ nsresult nsSOAPEncodingRegistry::GetStyle(const nsAString& aStyleURI, PRBool aCr
*aEncoding = (nsISOAPEncoding*)mEncodings->Get(&styleKey);
if (!*aEncoding)
{
if (aCreateIf) {
*aEncoding = new nsSOAPEncoding(aStyleURI, this);
nsCOMPtr<nsISOAPEncoding> defaultEncoding;
nsCAutoString encodingContractid;
encodingContractid.Assign(NS_SOAPENCODING_CONTRACTID_PREFIX);
encodingContractid.Append(NS_ConvertUCS2toUTF8(aStyleURI));
defaultEncoding = do_GetService(encodingContractid.get());
if (defaultEncoding || aCreateIf) {
*aEncoding = new nsSOAPEncoding(aStyleURI, this, defaultEncoding);
mEncodings->Put(&styleKey, *aEncoding);
}
}
@@ -165,14 +170,11 @@ nsSOAPEncoding::nsSOAPEncoding(): mEncoders(new nsSupportsHashtable),
/* member initializers and constructor code */
mStyleURI.Assign(nsSOAPUtils::kSOAPEncodingURI);
nsCAutoString encodingContractid;
encodingContractid.Assign(NS_SOAPENCODING_CONTRACTID_PREFIX);
encodingContractid.Append(NS_ConvertUCS2toUTF8(mStyleURI));
mDefaultEncoding = do_CreateInstance(encodingContractid.get());
mDefaultEncoding = do_GetService(NS_DEFAULTSOAPENCODER_CONTRACTID);
mRegistry = new nsSOAPEncodingRegistry(this);
}
nsSOAPEncoding::nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistry* aRegistry)
nsSOAPEncoding::nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistry* aRegistry, nsISOAPEncoding* aDefaultEncoding)
: mEncoders(new nsSupportsHashtable), mDecoders(new nsSupportsHashtable)
{
NS_INIT_ISUPPORTS();
@@ -180,13 +182,8 @@ nsSOAPEncoding::nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistr
/* member initializers and constructor code */
mStyleURI.Assign(aStyleURI);
if (aRegistry) {
nsCAutoString encodingContractid;
encodingContractid.Assign(NS_SOAPENCODING_CONTRACTID_PREFIX);
encodingContractid.Append(NS_ConvertUCS2toUTF8(mStyleURI));
mDefaultEncoding = do_CreateInstance(encodingContractid.get());
mRegistry = aRegistry;
}
mRegistry = aRegistry;
mDefaultEncoding = aDefaultEncoding;
}
nsSOAPEncoding::~nsSOAPEncoding()

View File

@@ -61,7 +61,7 @@ public:
NS_DECL_NSISECURITYCHECKEDCOMPONENT
nsSOAPEncoding();
nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistry * aRegistry);
nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistry * aRegistry, nsISOAPEncoding* aDefaultEncoding);
virtual ~nsSOAPEncoding();
/* additional members */

View File

@@ -27,7 +27,7 @@
#include "nsSOAPMessage.h"
#include "nsSOAPParameter.h"
#include "nsSOAPHeaderBlock.h"
#include "nsISOAPEncoding.h"
#include "nsSOAPEncoding.h"
#include "nsIDOMDocument.h"
#include "nsIDOMParser.h"
#include "nsIDOMElement.h"
@@ -419,7 +419,7 @@ NS_IMETHODIMP nsSOAPMessage::GetEncoding(nsISOAPEncoding* * aEncoding)
NS_ENSURE_ARG_POINTER(aEncoding);
if (!mEncoding) {
nsresult rv;
mEncoding = do_CreateInstance(NS_SOAPENCODING_CONTRACTID, &rv);
mEncoding = new nsSOAPEncoding();
if (NS_FAILED(rv))
return rv;
}

View File

@@ -177,8 +177,6 @@ interface nsISOAPEncoding : nsISupports {
{ /* 06fb035c-1dd2-11b2-bc30-f6d8e314d6b9 */ \
0x06fb035c, 0x1dd2, 0x11b2, \
{0xbc, 0x30, 0xf6, 0xd8, 0xe3, 0x14, 0xd6, 0xb9} }
#define NS_SOAPENCODING_CONTRACTID \
"@mozilla.org/xmlextras/soap/encoding;1"
#define NS_SOAPENCODING_CONTRACTID_PREFIX \
"@mozilla.org/xmlextras/soap/encoding;1?uri="
#define NS_DEFAULTSOAPENCODER_CONTRACTID \

View File

@@ -152,7 +152,7 @@ DECLARE_ENCODER(UnsignedByte)
SetDecoder(kSchemaDatatypesNamespaceURI, k##name##SchemaType, handler); \
}
nsDefaultSOAPEncoder::nsDefaultSOAPEncoder(): nsSOAPEncoding(nsSOAPUtils::kSOAPEncodingURI, nsnull)
nsDefaultSOAPEncoder::nsDefaultSOAPEncoder(): nsSOAPEncoding(nsSOAPUtils::kSOAPEncodingURI, nsnull, nsnull)
{
{
nsDefaultEncoder *handler = new nsDefaultEncoder();

View File

@@ -63,8 +63,13 @@ nsresult nsSOAPEncodingRegistry::GetStyle(const nsAString& aStyleURI, PRBool aCr
*aEncoding = (nsISOAPEncoding*)mEncodings->Get(&styleKey);
if (!*aEncoding)
{
if (aCreateIf) {
*aEncoding = new nsSOAPEncoding(aStyleURI, this);
nsCOMPtr<nsISOAPEncoding> defaultEncoding;
nsCAutoString encodingContractid;
encodingContractid.Assign(NS_SOAPENCODING_CONTRACTID_PREFIX);
encodingContractid.Append(NS_ConvertUCS2toUTF8(aStyleURI));
defaultEncoding = do_GetService(encodingContractid.get());
if (defaultEncoding || aCreateIf) {
*aEncoding = new nsSOAPEncoding(aStyleURI, this, defaultEncoding);
mEncodings->Put(&styleKey, *aEncoding);
}
}
@@ -165,14 +170,11 @@ nsSOAPEncoding::nsSOAPEncoding(): mEncoders(new nsSupportsHashtable),
/* member initializers and constructor code */
mStyleURI.Assign(nsSOAPUtils::kSOAPEncodingURI);
nsCAutoString encodingContractid;
encodingContractid.Assign(NS_SOAPENCODING_CONTRACTID_PREFIX);
encodingContractid.Append(NS_ConvertUCS2toUTF8(mStyleURI));
mDefaultEncoding = do_CreateInstance(encodingContractid.get());
mDefaultEncoding = do_GetService(NS_DEFAULTSOAPENCODER_CONTRACTID);
mRegistry = new nsSOAPEncodingRegistry(this);
}
nsSOAPEncoding::nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistry* aRegistry)
nsSOAPEncoding::nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistry* aRegistry, nsISOAPEncoding* aDefaultEncoding)
: mEncoders(new nsSupportsHashtable), mDecoders(new nsSupportsHashtable)
{
NS_INIT_ISUPPORTS();
@@ -180,13 +182,8 @@ nsSOAPEncoding::nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistr
/* member initializers and constructor code */
mStyleURI.Assign(aStyleURI);
if (aRegistry) {
nsCAutoString encodingContractid;
encodingContractid.Assign(NS_SOAPENCODING_CONTRACTID_PREFIX);
encodingContractid.Append(NS_ConvertUCS2toUTF8(mStyleURI));
mDefaultEncoding = do_CreateInstance(encodingContractid.get());
mRegistry = aRegistry;
}
mRegistry = aRegistry;
mDefaultEncoding = aDefaultEncoding;
}
nsSOAPEncoding::~nsSOAPEncoding()

View File

@@ -61,7 +61,7 @@ public:
NS_DECL_NSISECURITYCHECKEDCOMPONENT
nsSOAPEncoding();
nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistry * aRegistry);
nsSOAPEncoding(const nsAString& aStyleURI, nsSOAPEncodingRegistry * aRegistry, nsISOAPEncoding* aDefaultEncoding);
virtual ~nsSOAPEncoding();
/* additional members */

View File

@@ -27,7 +27,7 @@
#include "nsSOAPMessage.h"
#include "nsSOAPParameter.h"
#include "nsSOAPHeaderBlock.h"
#include "nsISOAPEncoding.h"
#include "nsSOAPEncoding.h"
#include "nsIDOMDocument.h"
#include "nsIDOMParser.h"
#include "nsIDOMElement.h"
@@ -419,7 +419,7 @@ NS_IMETHODIMP nsSOAPMessage::GetEncoding(nsISOAPEncoding* * aEncoding)
NS_ENSURE_ARG_POINTER(aEncoding);
if (!mEncoding) {
nsresult rv;
mEncoding = do_CreateInstance(NS_SOAPENCODING_CONTRACTID, &rv);
mEncoding = new nsSOAPEncoding();
if (NS_FAILED(rv))
return rv;
}