List <byte> IConcreteAction.Serialize(object dataObject)
        {
            IPrimitive primitive = PrimitiveFactory.MakePrimitive(type);

            byte[] representBytes = primitive.GetByteStream(dataObject);
            return(representBytes.ToList());
        }
Ejemplo n.º 2
0
        object IConcreteAction.Deserialize(StreamExtractorHandler streamExtractor)
        {
            IPrimitive lenStrPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort));
            ushort     lenStr          = (ushort)lenStrPrimitive.GetValueField(streamExtractor);

            lenStr *= 2;
            byte[] bytesRepresentString = streamExtractor(lenStr);
            object recordObject         = Encoding.Unicode.GetString(bytesRepresentString);

            return(recordObject);
        }
Ejemplo n.º 3
0
        private int[] RecoveryDimensional(StreamExtractorHandler streamExtractor) //восстановление измерений
        {
            byte rank = RankRecovery(streamExtractor);

            int[]      lengths         = new int[rank];
            IPrimitive lengthPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort));

            for (int dimension = 0; dimension < rank; dimension++)
            {
                lengths[dimension] = (ushort)lengthPrimitive.GetValueField(streamExtractor);
            }
            return(lengths);
        }
Ejemplo n.º 4
0
        List <byte> IConcreteAction.Serialize(object dataObject)
        {
            var resultStream = new List <byte>();

            string     str           = (string)dataObject;
            IPrimitive rankPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort));

            byte[] rank = rankPrimitive.GetByteStream((ushort)str.Length);
            resultStream.AddRange(rank);

            byte[] data = Encoding.Unicode.GetBytes(str);
            resultStream.AddRange(data);

            return(resultStream);
        }
Ejemplo n.º 5
0
        private int[] RecordAndExtractDimensional()
        {
            IPrimitive rankPrimitive = PrimitiveFactory.MakePrimitive(typeof(byte));

            byte[] rank = rankPrimitive.GetByteStream((byte)array.Rank);
            resultStream.AddRange(rank);

            IPrimitive lengthPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort));

            int[] lengths = new int[array.Rank];
            for (int dimension = 0; dimension < array.Rank; dimension++)
            {
                lengths[dimension] = array.GetLength(dimension);

                byte[] bytesToWrite = lengthPrimitive.GetByteStream((ushort)lengths[dimension]);
                resultStream.AddRange(bytesToWrite);
            }
            return(lengths);
        }
Ejemplo n.º 6
0
        private byte RankRecovery(StreamExtractorHandler streamExtractor) // восстановление числа измерений
        {
            IPrimitive rankPrimitive = PrimitiveFactory.MakePrimitive(typeof(byte));

            return((byte)rankPrimitive.GetValueField(streamExtractor));
        }
        object IConcreteAction.Deserialize(StreamExtractorHandler streamExtractor)
        {
            IPrimitive primitive = PrimitiveFactory.MakePrimitive(type);

            return(primitive.GetValueField(streamExtractor));
        }