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

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

ASPOSECPP_SHARED_API void set_Credentials (SharedPtr< Net::ICredentials > value) override
 
ASPOSECPP_SHARED_API SharedPtr< Collections::Generic::IEnumerable< SharedPtr< Uri > > > get_PreloadedUris ()
 
ASPOSECPP_SHARED_API XmlPreloadedResolver ()
 Initializes a new instance of the XmlPreloadedResolver class. More...
 
ASPOSECPP_SHARED_API XmlPreloadedResolver (XmlKnownDtds preloadedDtds)
 
ASPOSECPP_SHARED_API XmlPreloadedResolver (const SharedPtr< XmlResolver > &fallbackResolver)
 
ASPOSECPP_SHARED_API XmlPreloadedResolver (const SharedPtr< XmlResolver > &fallbackResolver, XmlKnownDtds preloadedDtds)
 
ASPOSECPP_SHARED_API XmlPreloadedResolver (const SharedPtr< XmlResolver > &fallbackResolver, XmlKnownDtds preloadedDtds, const SharedPtr< Collections::Generic::IEqualityComparer< SharedPtr< Uri >>> &uriComparer)
 
ASPOSECPP_SHARED_API SharedPtr< UriResolveUri (SharedPtr< Uri > baseUri, String relativeUri) override
 
ASPOSECPP_SHARED_API SharedPtr< ObjectGetEntity (SharedPtr< Uri > absoluteUri, String role, const TypeInfo &ofObjectToReturn) override
 
ASPOSECPP_SHARED_API bool SupportsType (SharedPtr< Uri > absoluteUri, const TypeInfo &type) override
 
ASPOSECPP_SHARED_API void Add (const SharedPtr< Uri > &uri, const ArrayPtr< uint8_t > &value)
 
ASPOSECPP_SHARED_API void Add (const SharedPtr< Uri > &uri, const ArrayPtr< uint8_t > &value, int32_t offset, int32_t count)
 
ASPOSECPP_SHARED_API void Add (const SharedPtr< Uri > &uri, const SharedPtr< IO::Stream > &value)
 
ASPOSECPP_SHARED_API void Add (const SharedPtr< Uri > &uri, const String &value)
 
ASPOSECPP_SHARED_API void Remove (const SharedPtr< Uri > &uri)
 
- Public Member Functions inherited from System::Object
ASPOSECPP_SHARED_API Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ASPOSECPP_SHARED_API ~Object ()
 Destroys object. Frees all internal data structures. More...
 
ASPOSECPP_SHARED_API 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...
 
ASPOSECPP_SHARED_API void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
ASPOSECPP_SHARED_API void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual ASPOSECPP_SHARED_API bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual ASPOSECPP_SHARED_API int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual ASPOSECPP_SHARED_API String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ASPOSECPP_SHARED_API ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual ASPOSECPP_SHARED_API const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual ASPOSECPP_SHARED_API bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual ASPOSECPP_SHARED_API 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 ASPOSECPP_SHARED_API bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 
template<>
bool Equals (double const &objA, double const &objB)
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 

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...
 

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]

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

Initializes a new instance of the XmlPreloadedResolver class.

◆ XmlPreloadedResolver() [2/5]

ASPOSECPP_SHARED_API 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]

ASPOSECPP_SHARED_API 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]

ASPOSECPP_SHARED_API 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]

ASPOSECPP_SHARED_API 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]

ASPOSECPP_SHARED_API 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]

ASPOSECPP_SHARED_API 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]

ASPOSECPP_SHARED_API 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]

ASPOSECPP_SHARED_API 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()

ASPOSECPP_SHARED_API 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()

ASPOSECPP_SHARED_API 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()

ASPOSECPP_SHARED_API 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()

ASPOSECPP_SHARED_API 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()

ASPOSECPP_SHARED_API 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()

ASPOSECPP_SHARED_API 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.