/// <summary> /// Initializes a new instance of the <see cref="ComputeOutFuncWrapper"/> class. /// </summary> /// <param name="reader">The reader.</param> public ComputeOutFuncWrapper(IPortableReader reader) { var reader0 = (PortableReaderImpl)reader.RawReader(); _func = PortableUtils.ReadPortableOrSerializable <object>(reader0); _invoker = DelegateTypeDescriptor.GetComputeOutFunc(_func.GetType()); }
/// <summary> /// Initializes a new instance of the <see cref="ComputeOutFuncWrapper"/> class. /// </summary> /// <param name="reader">The reader.</param> public ComputeOutFuncWrapper(IBinaryReader reader) { var reader0 = (BinaryReader)reader.GetRawReader(); _func = reader0.ReadObject <object>(); _invoker = DelegateTypeDescriptor.GetComputeOutFunc(_func.GetType()); }
/// <summary> /// Executes <see cref="IComputeOutFunc"/>. /// </summary> /// <param name="memPtr">Memory pointer.</param> private long ComputeOutFuncExecute(long memPtr) { using (var stream = IgniteManager.Memory.Get(memPtr).GetStream()) { var func = stream.ReadBool() ? _handleRegistry.Get <object>(stream.ReadLong(), true) : _ignite.Marshaller.Unmarshal <object>(stream); stream.Reset(); var invoker = DelegateTypeDescriptor.GetComputeOutFunc(func.GetType()); ComputeRunner.ExecuteJobAndWriteResults(_ignite, stream, func, invoker); } return(0); }