private (string securityToken, DateTime leaseEnd) DecodePayload(ReadOnlySpan <byte> span)
        {
            var reader        = new BinarySpanReader(span);
            var securityToken = reader.ReadString();
            var leaseEnd      = new DateTime(reader.ReadInt64());

            return(securityToken, leaseEnd);
        }
Esempio n. 2
0
        /// <summary>
        /// Binary deserialize
        /// </summary>
        /// <param name="reader">Reader of binary</param>
        public string BinaryDeserialize(ref BinarySpanReader reader)
        {
            int length = BitConverter.ToInt32(reader.Read(sizeof(int)));

            if (length == -1)
            {
                return(null);
            }
            return(new string(MemoryMarshal.Cast <byte, char>(reader.Read(length))));
        }
Esempio n. 3
0
        /// <summary>
        /// Binary deserialize
        /// </summary>
        /// <param name="reader">Reader of binary</param>
        public byte[] BinaryDeserialize(ref BinarySpanReader reader)
        {
            var length = BitConverter.ToInt32(reader.Read(sizeof(int)));

            if (length == 0)
            {
                return(null);
            }
            return(reader.Read(length).ToArray());
        }
Esempio n. 4
0
        private static DebugModuleProperties Decode(ReadOnlySpan <byte> memory)
        {
            var reader       = new BinarySpanReader(memory, ByteOrder.LittleEndian);
            var endPoint     = new EndPointAddress(reader.Read().ToArray()); // TODO: This copies
            var module       = new ModuleIdentifier(reader.ReadString());
            var major        = reader.ReadInt32();
            var minor        = reader.ReadInt32();
            var revision     = reader.ReadInt32();
            var isPreRelease = reader.ReadBool();
            var version      = new ModuleVersion(major, minor, revision, isPreRelease);

            return(new DebugModuleProperties(endPoint, module, version));
        }
Esempio n. 5
0
        private EndPointAddress ReadEndPointAddress(ref BinarySpanReader reader)
        {
            var localEndPointBytesLenght = reader.ReadInt32();

            if (localEndPointBytesLenght == 0)
            {
                return(EndPointAddress.UnknownAddress);
            }

            var utf8EncodedValue = reader.Read(localEndPointBytesLenght);
            var copy             = utf8EncodedValue.ToArray(); // TODO

            return(new EndPointAddress(copy));
        }
        /// <summary>
        /// Binary deserialize
        /// </summary>
        /// <param name="reader">Reader of binary</param>
        public List <T> BinaryDeserialize(ref BinarySpanReader reader)
        {
            var length = BitConverter.ToInt32(reader.Read(sizeof(int)));

            if (length == 0)
            {
                return(null);
            }
            var instance = new List <T>();

            for (int i = 0; i < length; i++)
            {
                instance.Add(typeGoInfo.BinaryDeserialize(ref reader));
            }
            return(instance);
        }
Esempio n. 7
0
        private (EndPointAddress endPoint, IReadOnlyCollection <ReadOnlyMemory <char> > prefixes) ReadRunningModuleEntry(IEntry entry)
        {
            var reader        = new BinarySpanReader(entry.Value.Span, ByteOrder.LittleEndian);
            var endPoint      = ReadEndPointAddress(ref reader);
            var prefixesCount = reader.ReadInt32();

            var prefixes = new List <ReadOnlyMemory <char> >(capacity: prefixesCount);

            for (var i = 0; i < prefixesCount; i++)
            {
                var prefix = reader.ReadString().AsMemory();
                prefixes.Add(prefix);
            }

            return(endPoint, prefixes);
        }
Esempio n. 8
0
        /// <summary>
        /// Binary deserialize
        /// </summary>
        /// <param name="reader">Reader of binary</param>
        public T[] BinaryDeserialize(ref BinarySpanReader reader)
        {
            int length = BitConverter.ToInt32(reader.Read(sizeof(int)));

            if (length == -1)
            {
                return(null);
            }
            else if (length == 0)
            {
                return(new T[0]);
            }
            T[] instance = new T[length];
            for (int i = 0; i < length; i++)
            {
                instance[i] = typeGoInfo.BinaryDeserialize(ref reader);
            }
            return(instance);
        }
Esempio n. 9
0
 /// <summary>
 /// Binary deserialize
 /// </summary>
 /// <param name="reader">Reader of binary</param>
 /// <param name="value"></param>
 internal abstract void BinaryDeserialize(ref BinarySpanReader reader, ref TObject value);
Esempio n. 10
0
        private EndPointAddress ReadModulePrefixEntry(IEntry entry)
        {
            var reader = new BinarySpanReader(entry.Value.Span, ByteOrder.LittleEndian);

            return(ReadEndPointAddress(ref reader));
        }
Esempio n. 11
0
 /// <summary>
 /// Binary deserialize
 /// </summary>
 /// <param name="reader">Reader of binary</param>
 public TObject BinaryDeserialize(ref BinarySpanReader reader)
 {
     if (reader.Read(1)[0] == 0)
     {
         return(default);
Esempio n. 12
0
 internal override void BinaryDeserialize(ref BinarySpanReader reader, ref TObject value)
 {
     SetValue(value, TypeGoInfo.BinaryDeserialize(ref reader));
 }