Ejemplo n.º 1
0
        // 書き出す
        public void WriteToBuf(Buf b, ValueType type)
        {
            switch (type)
            {
            case ValueType.Int:
                b.WriteInt(IntValue);
                break;

            case ValueType.Int64:
                b.WriteInt64(Int64Value);
                break;

            case ValueType.Data:
                b.WriteInt((uint)Data.Length);
                b.Write(Data);
                break;

            case ValueType.Str:
                b.WriteStr(StrValue.Trim());
                break;

            case ValueType.UniStr:
                byte[] data = Str.Utf8Encoding.GetBytes(StrValue.Trim());
                b.WriteInt((uint)data.Length + 1);
                b.Write(data);
                b.WriteByte(0);
                break;
            }
        }
Ejemplo n.º 2
0
        public Buf SaveToBuf()
        {
            Buf b = new Buf();

            b.WriteInt64((ulong)this.TimeStamp.Ticks);
            b.WriteInt((uint)this.EntryList.Count);

            foreach (FullRouteIPInfoEntry e in this.EntryList)
            {
                b.WriteInt(e.From);
                b.WriteInt(e.To);
                b.WriteStr(e.Registry);
                b.WriteInt(e.Assigned);
                b.WriteStr(e.Country2);
                b.WriteStr(e.Country3);
                b.WriteStr(e.CountryFull);
            }

            b.Write(Secure.HashSHA1(b.ByteData));

            b.SeekToBegin();

            return(b);
        }