Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
PosterBase.cs
1using System;
2using System.Collections.Generic;
3using System.Security.Cryptography.X509Certificates;
4using System.Threading.Tasks;
6
8{
12 public abstract class PosterBase : IContentPoster
13 {
17 public PosterBase()
18 {
19 }
20
24 public abstract string[] UriSchemes
25 {
26 get;
27 }
28
35 public abstract bool CanPost(Uri Uri, out Grade Grade);
36
46 public virtual Task<object> PostAsync(Uri Uri, object Data, X509Certificate Certificate,
47 RemoteCertificateEventHandler RemoteCertificateValidator, params KeyValuePair<string, string>[] Headers)
48 {
49 return this.PostAsync(Uri, Data, Certificate, RemoteCertificateValidator, 60000, Headers);
50 }
51
62 public virtual async Task<object> PostAsync(Uri Uri, object Data, X509Certificate Certificate,
63 RemoteCertificateEventHandler RemoteCertificateValidator, int TimeoutMs, params KeyValuePair<string, string>[] Headers)
64 {
65 KeyValuePair<byte[], string> P = await InternetContent.EncodeAsync(Data, System.Text.Encoding.UTF8);
66 KeyValuePair<byte[], string> Result = await this.PostAsync(Uri, P.Key, P.Value, Certificate, RemoteCertificateValidator, TimeoutMs, Headers);
67 return await InternetContent.DecodeAsync(Result.Value, Result.Key, Uri);
68 }
69
80 public virtual Task<KeyValuePair<byte[], string>> PostAsync(Uri Uri, byte[] EncodedData, string ContentType,
81 X509Certificate Certificate, RemoteCertificateEventHandler RemoteCertificateValidator, params KeyValuePair<string, string>[] Headers)
82 {
83 return this.PostAsync(Uri, EncodedData, ContentType, Certificate, RemoteCertificateValidator, 60000, Headers);
84 }
85
97 public abstract Task<KeyValuePair<byte[], string>> PostAsync(Uri Uri, byte[] EncodedData, string ContentType,
98 X509Certificate Certificate, RemoteCertificateEventHandler RemoteCertificateValidator, int TimeoutMs,
99 params KeyValuePair<string, string>[] Headers);
100
101 }
102}
Static class managing encoding and decoding of internet content.
static Task< KeyValuePair< byte[], string > > EncodeAsync(object Object, Encoding Encoding, params string[] AcceptedContentTypes)
Encodes an object.
static Task< object > DecodeAsync(string ContentType, byte[] Data, Encoding Encoding, KeyValuePair< string, string >[] Fields, Uri BaseUri)
Decodes an object.
Abstract base class for posters.
Definition: PosterBase.cs:13
virtual async Task< object > PostAsync(Uri Uri, object Data, X509Certificate Certificate, RemoteCertificateEventHandler RemoteCertificateValidator, int TimeoutMs, params KeyValuePair< string, string >[] Headers)
Posts to a resource, using a Uniform Resource Identifier (or Locator).
Definition: PosterBase.cs:62
virtual Task< KeyValuePair< byte[], string > > PostAsync(Uri Uri, byte[] EncodedData, string ContentType, X509Certificate Certificate, RemoteCertificateEventHandler RemoteCertificateValidator, params KeyValuePair< string, string >[] Headers)
Posts to a resource, using a Uniform Resource Identifier (or Locator).
Definition: PosterBase.cs:80
virtual Task< object > PostAsync(Uri Uri, object Data, X509Certificate Certificate, RemoteCertificateEventHandler RemoteCertificateValidator, params KeyValuePair< string, string >[] Headers)
Posts to a resource, using a Uniform Resource Identifier (or Locator).
Definition: PosterBase.cs:46
abstract string[] UriSchemes
Supported URI schemes.
Definition: PosterBase.cs:25
abstract bool CanPost(Uri Uri, out Grade Grade)
If the poster is able to post to a resource, given its URI.
abstract Task< KeyValuePair< byte[], string > > PostAsync(Uri Uri, byte[] EncodedData, string ContentType, X509Certificate Certificate, RemoteCertificateEventHandler RemoteCertificateValidator, int TimeoutMs, params KeyValuePair< string, string >[] Headers)
Posts to a resource, using a Uniform Resource Identifier (or Locator).
PosterBase()
Abstract base class for posters.
Definition: PosterBase.cs:17
Basic interface for Internet Content posters. A class implementing this interface and having a defaul...
delegate void RemoteCertificateEventHandler(object Sender, RemoteCertificateEventArgs e)
Delegate for remote certificate event handlers.
Grade
Grade enumeration
Definition: Grade.cs:7