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,
"alternative",
true) == 0)
117 FileExtension =
"alternative";
121 FileExtension =
string.Empty;
156 public async Task<ContentResponse>
EncodeAsync(
object Object, Encoding Encoding,
162 string Boundary = Guid.NewGuid().ToString();
163 string ContentType = AlternativeCodec.ContentType +
"; boundary=\"" + Boundary +
"\"";
168 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.
Codec of alternative data.
async Task< ContentResponse > DecodeAsync(string ContentType, byte[] Data, Encoding Encoding, KeyValuePair< string, string >[] Fields, Uri BaseUri, ICodecProgress Progress)
Decodes an object.
string[] FileExtensions
Supported file extensions.
const string ContentType
multipart/alternative
bool TryGetFileExtension(string ContentType, out string FileExtension)
Tries to get the file extension of an item, given its Content-Type.
async Task< ContentResponse > EncodeAsync(object Object, Encoding Encoding, ICodecProgress Progress, params string[] AcceptedContentTypes)
Encodes an object.
AlternativeCodec()
Codec of alternative data.
bool Encodes(object Object, out Grade Grade, params string[] AcceptedContentTypes)
If the encoder encodes a given object.
string[] ContentTypes
Supported content types.
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.
Represents alternative versions of the same content, encoded with multipart/alternative
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
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...