4using System.Threading.Tasks;
36 private static readonly
string[] contentTypes =
new string[] {
ContentType };
74 KeyValuePair<string, string>[] Fields, Uri BaseUri,
ICodecProgress Progress)
94 if (
string.Compare(FileExtension,
"mixed",
true) == 0)
117 FileExtension =
"mixed";
121 FileExtension =
string.Empty;
156 public async Task<ContentResponse>
EncodeAsync(
object Object, Encoding Encoding,
162 string Boundary = Guid.NewGuid().ToString();
163 string ContentType = MixedCodec.ContentType +
"; boundary=\"" + Boundary +
"\"";
167 return new ContentResponse(
new ArgumentException(
"Unable to encode object, or content type not accepted.", nameof(Object)));
Contains information about a response to a content request.
Static class managing encoding and decoding of internet content.
static bool IsAccepted(string ContentType, params string[] AcceptedContentTypes)
Checks if a given content type is acceptable.
static async Task< KeyValuePair< byte[], string > > Encode(IEnumerable< EmbeddedContent > Content, ICodecProgress Progress)
Encodes multi-part form data
static async Task< Exception > Decode(byte[] Data, KeyValuePair< string, string >[] Fields, Dictionary< string, object > Form, ChunkedList< EmbeddedContent > List, Uri BaseUri, ICodecProgress Progress)
Decodes a multipart object
MixedCodec()
Codec of mixed data.
string[] ContentTypes
Supported content types.
async Task< ContentResponse > EncodeAsync(object Object, Encoding Encoding, ICodecProgress Progress, params string[] AcceptedContentTypes)
Encodes an object.
bool Encodes(object Object, out Grade Grade, params string[] AcceptedContentTypes)
If the encoder encodes a given object.
async Task< ContentResponse > DecodeAsync(string ContentType, byte[] Data, Encoding Encoding, KeyValuePair< string, string >[] Fields, Uri BaseUri, ICodecProgress Progress)
Decodes an object.
bool TryGetFileExtension(string ContentType, out string FileExtension)
Tries to get the file extension of an item, given its Content-Type.
string[] FileExtensions
Supported file extensions.
bool Decodes(string ContentType, out Grade Grade)
If the decoder decodes an object with a given content type.
bool TryGetContentType(string FileExtension, out string ContentType)
Tries to get the content type of an item, given its file extension.
const string ContentType
multipart/mixed
Represents mixed content, encoded with multipart/mixed
A chunked list is a linked list of chunks of objects of type T .
T[] ToArray()
Returns an array containing all elements of the collection.
Interface for reporting progress about an encoding or decoding.
Basic interface for Internet Content decoders. A class implementing this interface and having a defau...
Basic interface for Internet Content encoders. A class implementing this interface and having a defau...