System::Xml::Resolvers::XmlPreloadedResolver Class Reference

Represents a class that is used to prepopulate the cache with DTDs or XML streams. More...

#include <xml_preloaded_resolver.h>

Inherits System::Xml::XmlResolver.

Public Types

using Ptr = SharedPtr< XmlPreloadedResolver >
 An alias for shared pointer to an instance of this class. More...
 
- Public Types inherited from System::Xml::XmlResolver
using Ptr = SharedPtr< XmlResolver >
 An alias for shared pointer to an instance of this class. More...
 
- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 

Public Member Functions

void set_Credentials (SharedPtr< Net::ICredentials > value) override
 Sets the credentials that are used to authenticate the underlying Net::WebRequest. More...
 
SharedPtr< Collections::Generic::IEnumerable< SharedPtr< Uri > > > get_PreloadedUris ()
 Returns a collection of preloaded URIs. More...
 
 XmlPreloadedResolver ()
 Initializes a new instance of the XmlPreloadedResolver class. More...
 
 XmlPreloadedResolver (XmlKnownDtds preloadedDtds)
 Initializes a new instance of the XmlPreloadedResolver class with the specified preloaded well-known DTDs. More...
 
 XmlPreloadedResolver (const SharedPtr< XmlResolver > &fallbackResolver)
 Initializes a new instance of the XmlPreloadedResolver class with the specified fallback resolver. More...
 
 XmlPreloadedResolver (const SharedPtr< XmlResolver > &fallbackResolver, XmlKnownDtds preloadedDtds)
 Initializes a new instance of the XmlPreloadedResolver class with the specified fallback resolver and preloaded well-known DTDs. More...
 
 XmlPreloadedResolver (const SharedPtr< XmlResolver > &fallbackResolver, XmlKnownDtds preloadedDtds, const SharedPtr< Collections::Generic::IEqualityComparer< SharedPtr< Uri > > > &uriComparer)
 Initializes a new instance of the XmlPreloadedResolver class with the specified fallback resolver, preloaded well-known DTDs, and URI equality comparer. More...
 
SharedPtr< UriResolveUri (SharedPtr< Uri > baseUri, String relativeUri) override
 Resolves the absolute URI from the base and relative URIs. More...
 
SharedPtr< ObjectGetEntity (SharedPtr< Uri > absoluteUri, String role, const TypeInfo &ofObjectToReturn) override
 Maps a URI to an object that contains the actual resource. More...
 
bool SupportsType (SharedPtr< Uri > absoluteUri, const TypeInfo &type) override
 Determines whether the resolver supports other Types than just Stream. More...
 
void Add (const SharedPtr< Uri > &uri, const ArrayPtr< uint8_t > &value)
 Adds a byte array to the XmlPreloadedResolver store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden. More...
 
void Add (const SharedPtr< Uri > &uri, const ArrayPtr< uint8_t > &value, int32_t offset, int32_t count)
 Adds a byte array to the XmlPreloadedResolver store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden. More...
 
void Add (const SharedPtr< Uri > &uri, const SharedPtr< IO::Stream > &value)
 Adds a Stream to the XmlPreloadedResolver store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden. More...
 
void Add (const SharedPtr< Uri > &uri, const String &value)
 Adds a string with preloaded data to the XmlPreloadedResolver store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden. More...
 
void Remove (const SharedPtr< Uri > &uri)
 Removes the data that corresponds to the URI from the XmlPreloadedResolver. More...
 
virtual void set_Credentials (SharedPtr< Net::ICredentials > value)
 When overridden in a derived class, sets the credentials used to authenticate web requests. More...
 
virtual SharedPtr< ObjectGetEntity (SharedPtr< Uri > absoluteUri, String role, const TypeInfo &ofObjectToReturn)=0
 When overridden in a derived class, maps a URI to an object that contains the actual resource. More...
 
virtual SharedPtr< UriResolveUri (SharedPtr< Uri > baseUri, String relativeUri)
 When overridden in a derived class, resolves the absolute URI from the base and relative URIs. More...
 
virtual bool SupportsType (SharedPtr< Uri > absoluteUri, const TypeInfo &type)
 Enables the resolver to return types other than Stream. More...
 
- Public Member Functions inherited from System::Object
 Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ~Object ()
 Destroys object. Frees all internal data structures. More...
 
 Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared reference counter. More...
 
void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual void SetTemplateWeakPtr (uint32_t argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
virtual bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 Specialization of Object::ReferenceEquals for case of string and nullptr. More...
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 Specialization of Object::ReferenceEquals for case of strings. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Implements C# typeof(System.Object) construct. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool Equals (double const &objA, double const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 

Detailed Description

Represents a class that is used to prepopulate the cache with DTDs or XML streams.

Attention
Objects of this class should only be allocated using System::MakeObject() function. Never create instances of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Member Typedef Documentation

◆ Ptr

An alias for shared pointer to an instance of this class.

Constructor & Destructor Documentation

◆ XmlPreloadedResolver() [1/5]

System::Xml::Resolvers::XmlPreloadedResolver::XmlPreloadedResolver ( )

Initializes a new instance of the XmlPreloadedResolver class.

◆ XmlPreloadedResolver() [2/5]

System::Xml::Resolvers::XmlPreloadedResolver::XmlPreloadedResolver ( XmlKnownDtds  preloadedDtds)

Initializes a new instance of the XmlPreloadedResolver class with the specified preloaded well-known DTDs.

Parameters
preloadedDtdsThe well-known DTDs that should be prepopulated into the cache.

◆ XmlPreloadedResolver() [3/5]

System::Xml::Resolvers::XmlPreloadedResolver::XmlPreloadedResolver ( const SharedPtr< XmlResolver > &  fallbackResolver)

Initializes a new instance of the XmlPreloadedResolver class with the specified fallback resolver.

Parameters
fallbackResolverThe XmlResolver or your own resolver.

◆ XmlPreloadedResolver() [4/5]

System::Xml::Resolvers::XmlPreloadedResolver::XmlPreloadedResolver ( const SharedPtr< XmlResolver > &  fallbackResolver,
XmlKnownDtds  preloadedDtds 
)

Initializes a new instance of the XmlPreloadedResolver class with the specified fallback resolver and preloaded well-known DTDs.

Parameters
fallbackResolverThe XmlResolver or your own resolver.
preloadedDtdsThe well-known DTDs that should be prepopulated into the cache.

◆ XmlPreloadedResolver() [5/5]

System::Xml::Resolvers::XmlPreloadedResolver::XmlPreloadedResolver ( const SharedPtr< XmlResolver > &  fallbackResolver,
XmlKnownDtds  preloadedDtds,
const SharedPtr< Collections::Generic::IEqualityComparer< SharedPtr< Uri > > > &  uriComparer 
)

Initializes a new instance of the XmlPreloadedResolver class with the specified fallback resolver, preloaded well-known DTDs, and URI equality comparer.

Parameters
fallbackResolverThe XmlResolver or your own resolver.
preloadedDtdsThe well-known DTDs that should be prepopulated into cache.
uriComparerThe implementation of the IEqualityComparer interface to use when you compare URIs.

Member Function Documentation

◆ Add() [1/4]

void System::Xml::Resolvers::XmlPreloadedResolver::Add ( const SharedPtr< Uri > &  uri,
const ArrayPtr< uint8_t > &  value 
)

Adds a byte array to the XmlPreloadedResolver store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden.

Parameters
uriThe URI of the data that is being added to the XmlPreloadedResolver store.
valueA byte array with the data that corresponds to the provided URI.
Exceptions
ArgumentNullExceptionuri or value is nullptr.

◆ Add() [2/4]

void System::Xml::Resolvers::XmlPreloadedResolver::Add ( const SharedPtr< Uri > &  uri,
const ArrayPtr< uint8_t > &  value,
int32_t  offset,
int32_t  count 
)

Adds a byte array to the XmlPreloadedResolver store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden.

Parameters
uriThe URI of the data that is being added to the XmlPreloadedResolver store.
valueA byte array with the data that corresponds to the provided URI.
offsetThe offset in the provided byte array where the data starts.
countThe number of bytes to read from the byte array, starting at the provided offset.
Exceptions
ArgumentNullExceptionuri or value is nullptr.
ArgumentOutOfRangeExceptionoffset or count is less than 0. or The length of the value minus offset is less than count.

◆ Add() [3/4]

void System::Xml::Resolvers::XmlPreloadedResolver::Add ( const SharedPtr< Uri > &  uri,
const SharedPtr< IO::Stream > &  value 
)

Adds a Stream to the XmlPreloadedResolver store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden.

Parameters
uriThe URI of the data that is being added to the XmlPreloadedResolver store.
valueA Stream with the data that corresponds to the provided URI.
Exceptions
ArgumentNullExceptionuri or value is nullptr.

◆ Add() [4/4]

void System::Xml::Resolvers::XmlPreloadedResolver::Add ( const SharedPtr< Uri > &  uri,
const String value 
)

Adds a string with preloaded data to the XmlPreloadedResolver store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden.

Parameters
uriThe URI of the data that is being added to the XmlPreloadedResolver store.
valueA String with the data that corresponds to the provided URI.
Exceptions
ArgumentNullExceptionuri or value is nullptr.

◆ get_PreloadedUris()

SharedPtr< Collections::Generic::IEnumerable< SharedPtr< Uri > > > System::Xml::Resolvers::XmlPreloadedResolver::get_PreloadedUris ( )

Returns a collection of preloaded URIs.

Returns
The collection of preloaded URIs.

◆ GetEntity()

SharedPtr< Object > System::Xml::Resolvers::XmlPreloadedResolver::GetEntity ( SharedPtr< Uri absoluteUri,
String  role,
const TypeInfo ofObjectToReturn 
)
overridevirtual

Maps a URI to an object that contains the actual resource.

Parameters
absoluteUriThe URI returned from XmlResolver::ResolveUri(SharedPtr<Uri>,String) call.
roleCurrently not used.
ofObjectToReturnThe type of object to return. The XmlPreloadedResolver supports Stream objects and TextReader objects for URIs that were added as String. If the requested type is not supported by the resolver, an exception will be thrown. Use the XmlPreloadedResolver::SupportsType(SharedPtr<Uri>,TypeInfo) method to determine whether a certain Type is supported by this resolver.
Returns
A Stream or TextReader object that corresponds to the actual source.
Exceptions
ArgumentNullExceptionabsoluteUri is nullptr.
XmlExceptionCannot resolve URI passed in absoluteUri. or ofObjectToReturn is not of a supported type.

Implements System::Xml::XmlResolver.

◆ Remove()

void System::Xml::Resolvers::XmlPreloadedResolver::Remove ( const SharedPtr< Uri > &  uri)

Removes the data that corresponds to the URI from the XmlPreloadedResolver.

Parameters
uriThe URI of the data that should be removed from the XmlPreloadedResolver store.
Exceptions
ArgumentNullExceptionuri is nullptr.

◆ ResolveUri()

SharedPtr< Uri > System::Xml::Resolvers::XmlPreloadedResolver::ResolveUri ( SharedPtr< Uri baseUri,
String  relativeUri 
)
overridevirtual

Resolves the absolute URI from the base and relative URIs.

Parameters
baseUriThe base URI used to resolve the relative URI.
relativeUriThe URI to resolve. The URI can be absolute or relative. If absolute, this value effectively replaces the baseUri value. If relative, it combines with the baseUri to make an absolute URI.
Returns
The Uri representing the absolute URI or nullptr if the relative URI cannot be resolved.
Exceptions
ArgumentNullExceptionuri is nullptr.

Reimplemented from System::Xml::XmlResolver.

◆ set_Credentials()

void System::Xml::Resolvers::XmlPreloadedResolver::set_Credentials ( SharedPtr< Net::ICredentials value)
overridevirtual

Sets the credentials that are used to authenticate the underlying Net::WebRequest.

Parameters
valueThe value to set.

Reimplemented from System::Xml::XmlResolver.

◆ SupportsType()

bool System::Xml::Resolvers::XmlPreloadedResolver::SupportsType ( SharedPtr< Uri absoluteUri,
const TypeInfo type 
)
overridevirtual

Determines whether the resolver supports other Types than just Stream.

Parameters
absoluteUriThe absolute URI to check.
typeThe Type to return.
Returns
true if the Type is supported; otherwise, false.
Exceptions
ArgumentNullExceptionuri is nullptr.

Reimplemented from System::Xml::XmlResolver.