/// <summary> /// Perform synchronous out operation returning value. /// </summary> /// <param name="type">Operation type.</param> /// <param name="action">Action.</param> /// <returns>Native projection.</returns> private IUnmanagedTarget DoProjetionOutOp(int type, Action <BinaryWriter> action) { using (var stream = IgniteManager.Memory.Allocate().GetStream()) { var writer = Marshaller.StartMarshal(stream); action(writer); FinishMarshal(writer); return(UU.ProjectionOutOpRet(Target, type, stream.SynchronizeOutput())); } }