/** <inheritDoc /> */ public void WritePortable(IPortableWriter writer) { PortableWriterImpl writer0 = (PortableWriterImpl)writer.RawWriter(); writer0.DetachNext(); PortableUtils.WritePortableOrSerializable(writer0, _clo); writer0.DetachNext(); PortableUtils.WritePortableOrSerializable(writer0, _arg); }
/// <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); } } }