CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
xml_preloaded_resolver.h
1
2
3#pragma once
4
5#include <xml/xml_resolver.h>
6#include <xml/resolvers/xml_known_dtds.h>
7#include <system/enum_helpers.h>
8#include <system/array.h>
9#include <cstdint>
10
11
13namespace System
14{
15namespace Collections
16{
17namespace Generic
18{
19template <typename, typename> class Dictionary;
20template <typename> class IEnumerable;
21template <typename> class IEqualityComparer;
22} // namespace Generic
23} // namespace Collections
24namespace IO
25{
26class Stream;
27class TextReader;
28} // namespace IO
29namespace Net
30{
31class ICredentials;
32} // namespace Net
33class TypeInfo;
34class Uri;
35} // namespace System
37
38namespace System {
39
40namespace Xml {
41
42namespace Resolvers {
43
48class ASPOSECPP_SHARED_CLASS XmlPreloadedResolver : public XmlResolver
49{
51 typedef XmlResolver BaseType;
52
53 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
54 ASPOSECPP_SHARED_RTTI_INFO_DECL();
55
56public:
57
60
61private:
62
63 class PreloadedData : public System::Object
64 {
65 typedef PreloadedData ThisType;
67
68 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
69 RTTI_INFO_DECL();
70
71 public:
72
74 virtual SharedPtr<IO::Stream> AsStream() = 0;
75 virtual SharedPtr<IO::TextReader> AsTextReader();
76 virtual bool SupportsType(const TypeInfo& type);
78
79 };
80
81 class XmlKnownDtdData : public XmlPreloadedResolver::PreloadedData
82 {
83 typedef XmlKnownDtdData ThisType;
84 typedef XmlPreloadedResolver::PreloadedData BaseType;
85
86 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
87 RTTI_INFO_DECL();
88
89 public:
90
92 String publicId;
93 String systemId;
94
95 XmlKnownDtdData(const String& publicId, const String& systemId, const String& resourceName);
96
97 SharedPtr<IO::Stream> AsStream() override;
99
100 private:
101
102 String _resourceName;
103
104 };
105
106 class ByteArrayChunk : public XmlPreloadedResolver::PreloadedData
107 {
108 typedef ByteArrayChunk ThisType;
109 typedef XmlPreloadedResolver::PreloadedData BaseType;
110
111 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
112 RTTI_INFO_DECL();
113
114 public:
115
117 ByteArrayChunk(const ArrayPtr<uint8_t>& array);
118 ByteArrayChunk(const ArrayPtr<uint8_t>& array, int32_t offset, int32_t length);
119
120 SharedPtr<IO::Stream> AsStream() override;
122
123 protected:
124
125 #ifdef ASPOSE_GET_SHARED_MEMBERS
126 void GetSharedMembers(System::Object::shared_members_type& result) const override;
127 #endif
128
129
130 private:
131
132 ArrayPtr<uint8_t> _array;
133 int32_t _offset;
134 int32_t _length;
135
136 };
137
138 class StringData : public XmlPreloadedResolver::PreloadedData
139 {
140 typedef StringData ThisType;
141 typedef XmlPreloadedResolver::PreloadedData BaseType;
142
143 typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
144 RTTI_INFO_DECL();
145
146 public:
147
149 StringData(const String& str);
150
151 SharedPtr<IO::Stream> AsStream() override;
152 SharedPtr<IO::TextReader> AsTextReader() override;
153 bool SupportsType(const TypeInfo& type) override;
155
156 private:
157
158 String _str;
159
160 };
161
162
163public:
164
167 ASPOSECPP_SHARED_API void set_Credentials(SharedPtr<Net::ICredentials> value) override;
171
173 ASPOSECPP_SHARED_API XmlPreloadedResolver();
176 ASPOSECPP_SHARED_API XmlPreloadedResolver(XmlKnownDtds preloadedDtds);
179 ASPOSECPP_SHARED_API XmlPreloadedResolver(const SharedPtr<XmlResolver>& fallbackResolver);
183 ASPOSECPP_SHARED_API XmlPreloadedResolver(const SharedPtr<XmlResolver>& fallbackResolver, XmlKnownDtds preloadedDtds);
189 ASPOSECPP_SHARED_API XmlPreloadedResolver(const SharedPtr<XmlResolver>& fallbackResolver, XmlKnownDtds preloadedDtds, const SharedPtr<Collections::Generic::IEqualityComparer<SharedPtr<Uri>>>& uriComparer);
190
198 ASPOSECPP_SHARED_API SharedPtr<Uri> ResolveUri(SharedPtr<Uri> baseUri, String relativeUri) override;
211 ASPOSECPP_SHARED_API SharedPtr<Object> GetEntity(SharedPtr<Uri> absoluteUri, String role, const TypeInfo& ofObjectToReturn) override;
217 ASPOSECPP_SHARED_API bool SupportsType(SharedPtr<Uri> absoluteUri, const TypeInfo& type) override;
223 ASPOSECPP_SHARED_API void Add(const SharedPtr<Uri>& uri, const ArrayPtr<uint8_t>& value);
234 ASPOSECPP_SHARED_API void Add(const SharedPtr<Uri>& uri, const ArrayPtr<uint8_t>& value, int32_t offset, int32_t count);
240 ASPOSECPP_SHARED_API void Add(const SharedPtr<Uri>& uri, const SharedPtr<IO::Stream>& value);
246 ASPOSECPP_SHARED_API void Add(const SharedPtr<Uri>& uri, const String& value);
250 ASPOSECPP_SHARED_API void Remove(const SharedPtr<Uri>& uri);
251
252protected:
253
255 #ifdef ASPOSE_GET_SHARED_MEMBERS
256 ASPOSECPP_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
257 #endif
259
260private:
261
262 SharedPtr<XmlResolver> _fallbackResolver;
264 XmlKnownDtds _preloadedDtds;
267
268 void Add(const SharedPtr<Uri>& uri, const SharedPtr<XmlPreloadedResolver::PreloadedData>& data);
269 void AddKnownDtd(const ArrayPtr<SharedPtr<XmlPreloadedResolver::XmlKnownDtdData>>& dtdSet);
270
271 static struct __StaticConstructor__ { __StaticConstructor__(); } s_constructor__;
272
273};
274
275} // namespace Resolvers
276} // namespace Xml
277} // namespace System
278
279
Interface providing means to compare two objects for equality. Objects of this class should only be a...
Definition: iequality_comparer.h:17
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
Represents a particular type and provides information about it.
Definition: type_info.h:109
Represents a class that is used to prepopulate the cache with DTDs or XML streams.
Definition: xml_preloaded_resolver.h:49
XmlPreloadedResolver(const SharedPtr< XmlResolver > &fallbackResolver, XmlKnownDtds preloadedDtds)
Initializes a new instance of the XmlPreloadedResolver class with the specified fallback resolver and...
XmlPreloadedResolver()
Initializes a new instance of the XmlPreloadedResolver class.
void Remove(const SharedPtr< Uri > &uri)
Removes the data that corresponds to the URI from the XmlPreloadedResolver.
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 contai...
SharedPtr< Collections::Generic::IEnumerable< SharedPtr< Uri > > > get_PreloadedUris()
Returns a collection of preloaded URIs.
XmlPreloadedResolver(const SharedPtr< XmlResolver > &fallbackResolver)
Initializes a new instance of the XmlPreloadedResolver class with the specified fallback resolver.
bool SupportsType(SharedPtr< Uri > absoluteUri, const TypeInfo &type) override
Determines whether the resolver supports other Types than just Stream.
XmlPreloadedResolver(XmlKnownDtds preloadedDtds)
Initializes a new instance of the XmlPreloadedResolver class with the specified preloaded well-known ...
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 contai...
SharedPtr< Uri > ResolveUri(SharedPtr< Uri > baseUri, String relativeUri) override
Resolves the absolute URI from the base and relative URIs.
void set_Credentials(SharedPtr< Net::ICredentials > value) override
Sets the credentials that are used to authenticate the underlying Net::WebRequest.
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,...
SharedPtr< Object > GetEntity(SharedPtr< Uri > absoluteUri, String role, const TypeInfo &ofObjectToReturn) override
Maps a URI to an object that contains the actual resource.
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....
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...
Resolves external XML resources named by a Uniform Resource Identifier (URI).
Definition: xml_resolver.h:27
@ Stream
The type that supports reliable, two-way, connection-based byte streams without duplication of data a...
@ TypeInfo
Specifies that the member is a type.
XmlKnownDtds
The Resolvers::XmlKnownDtds enumeration is used by the Resolvers::XmlPreloadedResolver and defines wh...
Definition: xml_known_dtds.h:19
@ Xml
Serialize according to the XML 1.0 rules.
Definition: db_command.h:9