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:
@@ -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 \
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user