Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
        /// <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());
        }
Exemplo n.º 3
0
        /// <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);
        }