Esempio n. 1
0
        /// <summary>
        /// Initialize the deserializer, consisting of the following stack:
        /// MemoryStream -> Crypto -> GZip
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="key"></param>
        /// <param name="iv"></param>
        protected void InitializeDeserializer(Stream stream, byte[] key, byte[] iv)
        {
            DecryptTransformer dt = new DecryptTransformer(EncryptionAlgorithm.Rijndael);

            dt.IV = iv;
            ICryptoTransform ict = dt.GetCryptoServiceProvider(key);

            decStream    = new CryptoStream(stream, ict, CryptoStreamMode.Read);
            decomp       = new GZipStream(decStream, CompressionMode.Decompress);
            deserializer = new RawDeserializer(decomp);
        }
Esempio n. 2
0
 public ItemReceiver()
 {
     stream = new RecordTakingInputStream();
     deserializer = new RawDeserializer(stream);
 }
Esempio n. 3
0
 /// <summary>
 /// For APIs whose response is a single type of value.
 /// </summary>
 /// <typeparam name="T">Type of the response value</typeparam>
 /// <param name="request">Request JSON body</param>
 /// <param name="deserializer">Response JSON deserializer</param>
 /// <returns></returns>
 protected Task <T> Single <T>(string request, RawDeserializer <T> deserializer
                               , CancellationTokenSource cancel = null)
 {
     return(Core(request, res => deserializer(res), cancel));
 }
Esempio n. 4
0
 /// <summary>
 /// For APIs whose response is a single type of value.
 /// </summary>
 /// <typeparam name="T">Type of the response value</typeparam>
 /// <param name="request">Request JSON body</param>
 /// <param name="deserializer">Response JSON deserializer</param>
 /// <returns></returns>
 protected async Task <T> Single <T>(string request, RawDeserializer <T> deserializer
                                     , CancellationTokenSource cancel = null)
 {
     return(await Core <T>(request, (res) => { return deserializer(res); }, cancel).ConfigureAwait(false));
 }