Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
PutterBase.cs
1using System;
3using System.Security.Cryptography.X509Certificates;
4using System.Threading.Tasks;
6
8{
12 public abstract class PutterBase : IContentPutter
13 {
17 public PutterBase()
18 {
19 }
20
24 public abstract string[] UriSchemes
25 {
26 get;
27 }
28
35 public abstract bool CanPut(Uri Uri, out Grade Grade);
36
46 public virtual Task<ContentResponse> PutAsync(Uri Uri, object Data, X509Certificate Certificate,
47 EventHandler<RemoteCertificateEventArgs> RemoteCertificateValidator, params KeyValuePair<string, string>[] Headers)
48 {
49 return this.PutAsync(Uri, Data, Certificate, RemoteCertificateValidator, InternetContent.DefaultTimeout, Headers);
50 }
51
62 public virtual async Task<ContentResponse> PutAsync(Uri Uri, object Data, X509Certificate Certificate,
63 EventHandler<RemoteCertificateEventArgs> RemoteCertificateValidator, int TimeoutMs, params KeyValuePair<string, string>[] Headers)
64 {
65 ContentResponse P = await InternetContent.EncodeAsync(Data, System.Text.Encoding.UTF8);
66 if (P.HasError)
67 return P;
68
69 ContentBinaryResponse Result = await this.PutAsync(Uri, P.Encoded, P.ContentType, Certificate,
70 RemoteCertificateValidator, TimeoutMs, Headers);
71
72 if (Result.HasError)
73 return new ContentResponse(Result.Error);
74 else
75 return await InternetContent.DecodeAsync(Result.ContentType, Result.Encoded, Uri);
76 }
77
88 public virtual Task<ContentBinaryResponse> PutAsync(Uri Uri, byte[] EncodedData, string ContentType,
89 X509Certificate Certificate, EventHandler<RemoteCertificateEventArgs> RemoteCertificateValidator, params KeyValuePair<string, string>[] Headers)
90 {
91 return this.PutAsync(Uri, EncodedData, ContentType, Certificate, RemoteCertificateValidator, InternetContent.DefaultTimeout, Headers);
92 }
93
105 public abstract Task<ContentBinaryResponse> PutAsync(Uri Uri, byte[] EncodedData, string ContentType,
106 X509Certificate Certificate, EventHandler<RemoteCertificateEventArgs> RemoteCertificateValidator, int TimeoutMs, params KeyValuePair<string, string>[] Headers);
107
108 }
109}
Contains information about a binary response to a content request.
string ContentType
Internet Content-Type of encoded object.
Contains information about a response to a content request.
byte[] Encoded
Encoded object.
string ContentType
Internet Content-Type of encoded object.
bool HasError
If an error occurred.
Static class managing encoding and decoding of internet content.
static int DefaultTimeout
Default timeout of internet access methods, in milliseconds.
static Task< ContentResponse > EncodeAsync(object Object, Encoding Encoding, params string[] AcceptedContentTypes)
Encodes an object.
static Task< ContentResponse > DecodeAsync(string ContentType, byte[] Data, Encoding Encoding, KeyValuePair< string, string >[] Fields, Uri BaseUri)
Decodes an object.
Abstract base class for putters.
Definition: PutterBase.cs:13
virtual Task< ContentBinaryResponse > PutAsync(Uri Uri, byte[] EncodedData, string ContentType, X509Certificate Certificate, EventHandler< RemoteCertificateEventArgs > RemoteCertificateValidator, params KeyValuePair< string, string >[] Headers)
Puts to a resource, using a Uniform Resource Identifier (or Locator).
Definition: PutterBase.cs:88
abstract bool CanPut(Uri Uri, out Grade Grade)
If the putter is able to put to a resource, given its URI.
PutterBase()
Abstract base class for putters.
Definition: PutterBase.cs:17
abstract string[] UriSchemes
Supported URI schemes.
Definition: PutterBase.cs:25
virtual async Task< ContentResponse > PutAsync(Uri Uri, object Data, X509Certificate Certificate, EventHandler< RemoteCertificateEventArgs > RemoteCertificateValidator, int TimeoutMs, params KeyValuePair< string, string >[] Headers)
Puts to a resource, using a Uniform Resource Identifier (or Locator).
Definition: PutterBase.cs:62
abstract Task< ContentBinaryResponse > PutAsync(Uri Uri, byte[] EncodedData, string ContentType, X509Certificate Certificate, EventHandler< RemoteCertificateEventArgs > RemoteCertificateValidator, int TimeoutMs, params KeyValuePair< string, string >[] Headers)
Puts to a resource, using a Uniform Resource Identifier (or Locator).
virtual Task< ContentResponse > PutAsync(Uri Uri, object Data, X509Certificate Certificate, EventHandler< RemoteCertificateEventArgs > RemoteCertificateValidator, params KeyValuePair< string, string >[] Headers)
Puts to a resource, using a Uniform Resource Identifier (or Locator).
Definition: PutterBase.cs:46
Basic interface for Internet Content putters. A class implementing this interface and having a defaul...
Grade
Grade enumeration
Definition: Grade.cs:7