public void Add(IIdentifier id, IStreamedData data) { _storage.Add(new IdentifierStringToLowerBased(id.IdentyString), data); var storedData = _storage.Datas.First(sd => sd.Id.IdentyString == id.IdentyString); _dataIdentifiers.Value.Add(new StreamableDataWithIdSimple(new IdentifierStringToLowerBased(id.IdentyString), storedData.Data)); // data must be taken from storage after adding }
public IStreamedData Add(IIdentifier id, IStreamedData data, Action <double> progressChangeAction) { var newlyStoredData = _streamedDataStorage.Add(id, data, progressChangeAction); _streamedDatas.Add(new PsnDataRelayStream(newlyStoredData, id)); return(newlyStoredData); }
public PsnDataFaultReasonStorageFtpStream(IStreamedData relayOnStream, IIdentifier id) { _relayOnStream = relayOnStream; _id = id; _faultReason = new Lazy <string>(() => { var buffer = new byte[10]; using (var stream = _relayOnStream.GetStreamForReading()) { stream.Read(buffer, 0, 10); } var result = string.Empty; result += "Номер протокола: 0x" + buffer[0].ToString("X2") + buffer[1].ToString("X2") + Environment.NewLine; result += "Причина создания дампа: " + buffer[3].ToString("X2") + " " + buffer[4].ToString("X2") + " " + buffer[5].ToString("X2") + " " + buffer[6].ToString("X2") + " " + " " + buffer[7].ToString("X2") + " " + buffer[8].ToString("X2") + " " + buffer[9].ToString("X2") + " " + buffer[10].ToString("X2"); return(result); }); }
public sealed override IStreamedData ExecuteInMemory(IStreamedData input) { var sequenceInput = ArgumentUtility.CheckNotNullAndType <StreamedSequence>("input", input); var executeMethod = s_executeMethod.MakeGenericMethod(sequenceInput.DataInfo.ResultItemType); return((StreamedValue)InvokeExecuteMethod(executeMethod, sequenceInput)); }
public PsnDataRelayStream(IStreamedData relayOnStream, IIdentifier id) { _relayOnStream = relayOnStream; Id = id; var handler = new PsnBinHandlerMappedLite(GetStreamForReading); _psnDataHandler = handler; _psnDataHandlerBack = handler; PagesInformation = new PsnDataPagedHandlerRelay(handler); _loadedTrendsCount = 0; }
public void Add(IIdentifier id, IStreamedData data) { var filename = Path.Combine(_directoryPath, id.IdentyString); if (File.Exists(filename)) { throw new Exception("File allready exists " + filename); } using (var dst = File.Create(filename)) { using (var src = data.GetStreamForReading()) { src.CopyTo(dst); } } }
/// <inheritdoc /> public sealed override IStreamedData ExecuteInMemory(IStreamedData input) { if (input == null) { throw new ArgumentNullException(nameof(input)); } if (!(input is StreamedSequence streamedSequence)) { throw new ArgumentException($"{nameof(input)} must be of type {typeof(StreamedSequence)}"); } var executeMethod = ExecuteMethod.MakeGenericMethod(streamedSequence.DataInfo.ResultItemType); return((AsyncStreamedValue)InvokeExecuteMethod(executeMethod, streamedSequence)); }
public IStreamedData Add(IIdentifier id, IStreamedData data, Action <double> progressChangeAction) { var saveFilename = Path.Combine(_path, "PSN." + id + ".data.bin"); if (File.Exists(saveFilename)) { throw new Exception("Ћог с такими данными уже сохранен в репозитории"); } using (var s = data.GetStreamForReading()) { using (var d = File.Create(saveFilename)) { s.CopyToWithProgress(d, progressChangeAction); } } return(new StreamedFile(saveFilename)); }
/// <summary> /// Invokes a given generic method on an <see cref="IStreamedData"/> input via Reflection. Use this to implement /// <see cref="ExecuteInMemory(IStreamedData)"/> by defining a strongly typed, generic variant /// of <see cref="ExecuteInMemory(IStreamedData)"/>; then invoke that strongly typed /// variant via <see cref="InvokeGenericExecuteMethod{TInput,TResult}"/>. /// </summary> /// <typeparam name="TInput">The type of <see cref="IStreamedData"/> expected as an input to <paramref name="genericExecuteCaller"/>.</typeparam> /// <typeparam name="TResult">The type of <see cref="IStreamedData"/> expected as the output of <paramref name="genericExecuteCaller"/>.</typeparam> /// <param name="input">The input <see cref="IStreamedData"/> object to invoke the method on..</param> /// <param name="genericExecuteCaller">A delegate holding exactly one public generic method with exactly one generic argument. This method is /// called via Reflection on the given <paramref name="input"/> argument.</param> /// <returns>The result of invoking the method in <paramref name="genericExecuteCaller"/> on <paramref name="input"/>.</returns> /// <example> /// The <see cref="CountResultOperator"/> uses this method as follows: /// <code> /// public IStreamedData ExecuteInMemory (IStreamedData input) /// { /// ArgumentUtility.CheckNotNull ("input", input); /// return InvokeGenericExecuteMethod<StreamedSequence, StreamedValue> (input, ExecuteInMemory<object>); /// } /// /// public StreamedValue ExecuteInMemory<T> (StreamedSequence input) /// { /// var sequence = input.GetTypedSequence<T> (); /// var result = sequence.Sequence.Count (); /// return new StreamedValue (result); /// } /// </code> /// </example> protected TResult InvokeGenericExecuteMethod <TInput, TResult>(IStreamedData input, Func <TInput, TResult> genericExecuteCaller) where TInput : IStreamedData where TResult : IStreamedData { var method = genericExecuteCaller.Method; if (!method.IsGenericMethod || method.GetGenericArguments().Length != 1) { throw new ArgumentException( "Method to invoke ('" + method.Name + "') must be a generic method with exactly one generic argument.", "genericExecuteCaller"); } var closedGenericMethod = input.DataInfo.MakeClosedGenericExecuteMethod(method.GetGenericMethodDefinition()); return((TResult)InvokeExecuteMethod(closedGenericMethod, input)); }
public IStreamedData Add(IIdentifier id, IStreamedData sourceData, Action <double> progressChangeAction) { progressChangeAction(0.0); using (var zipFile = CreateZipFileInstance(_zipFilename)) { var saveFilename = "PSN." + id + ".data.bin"; if (zipFile.ContainsEntry(saveFilename)) { throw new Exception("Ћог с такими данными уже сохранен в репозитории"); } progressChangeAction(25.0); using (var stream = sourceData.GetStreamForReading()) { progressChangeAction(50.0); zipFile.UpdateEntry(saveFilename, stream); progressChangeAction(75.0); zipFile.Save(); // Ќевозможно использовать вне блока using } progressChangeAction(100.0); return(new PsnDataRelayStream(new StreamedZippedFile(_zipFilename, saveFilename), id)); } }
public override IStreamedData ExecuteInMemory(IStreamedData input) { throw new NotImplementedException(); }
public override IStreamedData ExecuteInMemory(IStreamedData input) { return input; }
public StreamableDataWithIdSimple(IIdentifier id, IStreamedData data) { _id = id; _data = data; }
/// <summary> /// Создает новый экземпляр хранилища /// </summary> /// <param name="streamReadableObj">Объект, читающий данные из потока (для чтения данных из хранилища)</param> /// <param name="streamWritableObj">Объект, записывающий данные в поток (для записи данных в хранилище)</param> public PsnDataFaultReasonStorageXDocument(IStreamedData streamReadableObj, IStreamedDataWritable streamWritableObj) { _streamReadableObject = streamReadableObj; _streamWritableObject = streamWritableObj; }
public StreamReadableObjectBasedOnData(IStreamedData data) { _data = data; }
public IStreamedData Add(IIdentifier id, IStreamedData data, Action <double> progressChangeAction) { throw new Exception("На устройство нельзя добавлять логи"); }
/// <summary> /// Создает новый экземпляр хранилища /// </summary> /// <param name="streamReadableObj">Объект, читающий данные из потока (для чтения данных из хранилища)</param> /// <param name="streamWritableObj">Объект, записывающий данные в поток (для записи данных в хранилище)</param> public PsnDataCustomConfigurationsStorageXDocument(IStreamedData streamReadableObj, IStreamedDataWritable streamWritableObj) { _streamReadableObject = streamReadableObj; _streamWritableObject = streamWritableObj; }
public override IStreamedData ExecuteInMemory(IStreamedData input) { return(input); }
public IStreamedData Add(IIdentifier id, IStreamedData data, Action <double> progressChangeAction) { throw new Exception("Операция добавления данных не поддерживается данным хранилищем"); }
public override IStreamedData ExecuteInMemory(IStreamedData input) { ArgumentUtility.CheckNotNull("input", input); return(InvokeGenericExecuteMethod <StreamedSequence, StreamedValue> (input, ExecuteInMemory <object>)); }
public new TResult InvokeGenericExecuteMethod <TSource, TResult> (IStreamedData input, Func <TSource, TResult> genericMethodCaller) where TSource : IStreamedData where TResult : IStreamedData { return(base.InvokeGenericExecuteMethod(input, genericMethodCaller)); }
/// <summary> /// Создает новый экземпляр хранилища /// </summary> /// <param name="streamReadableObj">Объект для чтения данных из хранилища</param> /// <param name="streamWritableObj">Объект для записи данных в хранилище</param> public PsnDataInformationStorageXDocument(IStreamedData streamReadableObj, IStreamedDataWritable streamWritableObj) { _streamReadableObject = streamReadableObj; _streamWritableObject = streamWritableObj; }
public override IStreamedData ExecuteInMemory(IStreamedData input) { return(InvokeGenericExecuteMethod <StreamedSequence, StreamedSequence>(input, ExecuteInMemory <object>)); }
public StreamReadableObjectRelaySubStream(IStreamedData relayOnStreamed, long beginPositionInStream, long streamLength) { _streamReadableObject = relayOnStreamed; _beginPositionInStream = beginPositionInStream; _streamLength = streamLength; }
/// <summary> /// Executes this result operator in memory, on a given input. Executing result operators in memory should only be /// performed if the target query system does not support the operator. /// </summary> /// <param name="input">The input for the result operator. This must match the type of <see cref="IStreamedData"/> expected by the operator.</param> /// <returns>The result of the operator.</returns> public abstract IStreamedData ExecuteInMemory(IStreamedData input);
public IStreamedData Add(IIdentifier id, IStreamedData data, Action <double> progressChangeAction) { throw new NotImplementedException(); }
public void Add(IIdentifier id, IStreamedData data) { throw new NotSupportedException("Cannot add data to storage, operation is not supported"); }