Esempio n. 1
0
        public void ToBytesSink(IBytesSink to)
        {
            UInt64 man = Mantissa();

            if (IsNative)
            {
                if (!IsNegative)
                {
                    man = man.Or(BinaryFlagIsNonNegativeNative);
                }
                to.Add(man.ToByteArray());
            }
            else
            {
                int    offset = Offset;
                UInt64 packed;

                if (IsZero)
                {
                    packed = BinaryFlagIsIou;
                }
                else if (IsNegative)
                {
                    packed = man.Or(new UInt64(((long)512 + 0 + 97 + offset)).ShiftLeft(64 - 10));
                }
                else
                {
                    packed = man.Or(new UInt64(((long)512 + 256 + 97 + offset)).ShiftLeft(64 - 10));
                }

                to.Add(packed.ToByteArray());
                to.Add(_currency.Bytes);
                to.Add(_issuer.Bytes);
            }
        }
Esempio n. 2
0
        public void ToBytesSink(IBytesSink to)
        {
            int n = 0;

            foreach (var path in this)
            {
                if (n++ != 0)
                {
                    to.Add(PathSeparatorByte);
                }

                foreach (var hop in path)
                {
                    int type = hop.Type;
                    to.Add((byte)type);

                    if (hop.Account != null)
                    {
                        to.Add(hop.Account.Bytes);
                    }

                    if (hop.Currency != null)
                    {
                        to.Add(hop.Currency.Bytes);
                    }

                    if (hop.Issuer != null)
                    {
                        to.Add(hop.Issuer.Bytes);
                    }
                }
            }

            to.Add(PathsetEndByte);
        }
Esempio n. 3
0
 public void Add(byte[] n)
 {
     _sink.Add(n);
 }
Esempio n. 4
0
 public override void ToBytesSink(T obj, IBytesSink to)
 {
     to.Add(obj.ToByteArray());
 }
Esempio n. 5
0
 public void ToBytesSink(IBytesSink to)
 {
     to.Add(Bytes);
 }
Esempio n. 6
0
 public override void ToBytesSink(VariableLength obj, IBytesSink to)
 {
     to.Add(obj._buffer);
 }
Esempio n. 7
0
 public override void ToBytesSink(T obj, IBytesSink to)
 {
     to.Add(obj.HashBytes);
 }