예제 #1
0
        /** <inheritdoc /> */
        public IPlatformTargetInternal InStreamOutObject(int type, Action <IBinaryStream> writeAction)
        {
            try
            {
                using (var stream = IgniteManager.Memory.Allocate().GetStream())
                {
                    writeAction(stream);

                    var target = UU.TargetInStreamOutObject(_target, type, stream.SynchronizeOutput());

                    return(target == null ? null : new PlatformJniTarget(target, _marsh));
                }
            }
            catch (JavaException jex)
            {
                throw ConvertException(jex);
            }
        }
예제 #2
0
        public IPlatformTarget InStreamOutObject(int type, Action <IBinaryRawWriter> writeAction)
        {
            try
            {
                using (var stream = IgniteManager.Memory.Allocate().GetStream())
                {
                    var writer = _marsh.StartMarshal(stream);

                    writeAction(writer);

                    FinishMarshal(writer);

                    return(GetPlatformTarget(UU.TargetInStreamOutObject(_target, type, stream.SynchronizeOutput())));
                }
            }
            catch (JavaException jex)
            {
                throw ConvertException(jex);
            }
        }