Example #1
0
        /** <inheritDoc /> */
        public void WritePortable(IPortableWriter writer)
        {
            PortableWriterImpl writer0 = (PortableWriterImpl)writer.RawWriter();

            writer0.DetachNext();
            PortableUtils.WritePortableOrSerializable(writer0, _clo);

            writer0.DetachNext();
            PortableUtils.WritePortableOrSerializable(writer0, _arg);
        }
Example #2
0
        /// <summary>
        /// Writes objects to the marshaller.
        /// </summary>
        /// <param name="cb">Optional callback.</param>
        /// <param name="grid">Grid.</param>
        /// <param name="objects">Objects.</param>
        private static void WriteObjects(IUnmanagedTarget cb, Ignite grid, params object[] objects)
        {
            using (var stream = IgniteManager.Memory.Allocate().Stream())
            {
                PortableWriterImpl writer = grid.Marshaller.StartMarshal(stream);

                try
                {
                    foreach (var obj in objects)
                    {
                        writer.DetachNext();
                        writer.WriteObject(obj);
                    }
                }
                finally
                {
                    grid.Marshaller.FinishMarshal(writer);
                }

                if (cb != null)
                {
                    stream.SynchronizeOutput();

                    UnmanagedUtils.CacheStoreCallbackInvoke(cb, stream.MemoryPointer);
                }
            }
        }