/// <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); }
public ItemReceiver() { stream = new RecordTakingInputStream(); deserializer = new RawDeserializer(stream); }
/// <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)); }
/// <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)); }