Пример #1
0
        public override AmountBookmark MaterializeBix(BixReader reader)
        {
            var v   = reader.ReadAmount();
            var pid = reader.ReadLong();
            var adr = reader.ReadInt();

            return(new AmountBookmark(v, new Bookmark(pid, adr)));
        }
Пример #2
0
        public override DecimalBookmark MaterializeBix(BixReader reader)
        {
            var v   = reader.ReadDecimal();
            var pid = reader.ReadLong();
            var adr = reader.ReadInt();

            return(new DecimalBookmark(v, new Bookmark(pid, adr)));
        }
Пример #3
0
        public override IJsonDataObject MaterializeBix(BixReader reader)
        {
            var json = reader.ReadString();

            if (json == null)
            {
                return(null);
            }
            return(JsonReader.DeserializeDataObject(json, true));
        }
Пример #4
0
        public static T Deserialize <T>(BixReader reader, BixContext ctx = null) where T : TypedDoc
        {
            var(got, ok) = TryDeserializeRootOrInternal <T>(true, reader, ctx);

            if (!ok)
            {
                throw new BixException(StringConsts.BIX_TYPE_NOT_SUPPORTED_ERROR.Args(typeof(T).FullName));
            }

            return(got);
        }
Пример #5
0
        /// <summary>
        /// Mounts an existing volume backed by an optional `IPageCache` implementation instance
        /// </summary>
        public DefaultVolume(ICryptoManager crypto, IPageCache cache, Stream stream, bool ownsStream = true)
        {
            m_Crypto = crypto.NonNull(nameof(crypto));
            m_Cache  = cache;
            m_Stream = stream.NonNull(nameof(stream));
            (m_Stream.Length > 0).IsTrue("stream.Empty");

            m_Reader = new BixReader(m_Stream);
            m_Writer = new BixWriter(m_Stream);

            m_Metadata = readVolumeHeader();

            ctor();
        }
Пример #6
0
        /// <summary>
        /// Creates a new volume backed by an optional `IPageCache` implementation instance
        /// </summary>
        public DefaultVolume(ICryptoManager crypto, IPageCache cache, VolumeMetadataBuilder metadataBuilder, Stream stream, bool ownsStream = true)
        {
            m_Crypto = crypto.NonNull(nameof(crypto));
            m_Cache  = cache;
            m_Stream = stream.NonNull(nameof(stream));
            (m_Stream.Length == 0).IsTrue("stream.!Empty");
            metadataBuilder.Assigned.IsTrue("meta.!Assigned");

            m_Reader = new BixReader(m_Stream);
            m_Writer = new BixWriter(m_Stream);

            m_Metadata = metadataBuilder.Built;
            writeVolumeHeader();

            ctor();
        }
Пример #7
0
        public override Message MaterializeBix(BixReader reader)
        {
            Message result = null;

            if (reader.ReadBool())//if non-null message
            {
                result = new Message();

                var ngdid = reader.ReadNullableGDID();
                result.Gdid = ngdid.HasValue ? ngdid.Value : GDID.ZERO;

                result.Guid = reader.ReadGuid();

                var nrel = reader.ReadNullableGuid();
                result.RelatedTo = nrel.HasValue ? nrel.Value : Guid.Empty;

                result.Channel      = reader.ReadAtom();
                result.App          = reader.ReadAtom();
                result.Type         = (MessageType)reader.ReadInt();
                result.Source       = reader.ReadInt();
                result.UTCTimeStamp = reader.ReadDateTime();

                result.Host              = reader.ReadString();
                result.From              = reader.ReadString();
                result.Topic             = reader.ReadString();
                result.Text              = reader.ReadString();
                result.Parameters        = reader.ReadString();
                result.ArchiveDimensions = reader.ReadString();

                var edata = reader.ReadString();
                if (edata != null)
                { //this could be serialized using bix for better performance
                    result.ExceptionData = JsonReader.ToDoc <WrappedExceptionData>(edata);
                }
            }

            return(result);
        }
Пример #8
0
 public override byte[] MaterializeBix(BixReader reader) => reader.ReadByteArray();
Пример #9
0
 public static object DeserializeAny(BixReader reader, BixContext ctx = null)
 {
     return(null);
 }
Пример #10
0
 public override string MaterializeBix(BixReader reader) => reader.ReadString();
Пример #11
0
 /// <summary>
 /// Deserializes typed data document from BixReader
 /// </summary>
 public abstract void Deserialize(BixReader reader, TypedDoc doc, BixContext ctx);