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))); }
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))); }
public override IJsonDataObject MaterializeBix(BixReader reader) { var json = reader.ReadString(); if (json == null) { return(null); } return(JsonReader.DeserializeDataObject(json, true)); }
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); }
/// <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(); }
/// <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(); }
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); }
public override byte[] MaterializeBix(BixReader reader) => reader.ReadByteArray();
public static object DeserializeAny(BixReader reader, BixContext ctx = null) { return(null); }
public override string MaterializeBix(BixReader reader) => reader.ReadString();
/// <summary> /// Deserializes typed data document from BixReader /// </summary> public abstract void Deserialize(BixReader reader, TypedDoc doc, BixContext ctx);