public static void Serialize(TypedRow row, WritingStreamer streamer, bool header = true) { ITypeSerializationCore core; var tRow = row.GetType(); if (!s_Serializers.TryGetValue(tRow, out core)) { throw new ArowException(StringConsts.AROW_TYPE_NOT_SUPPORTED_ERROR.Args(tRow.FullName)); } var ar = row as IAmorphousData; if (ar != null) { if (ar.AmorphousDataEnabled) { ar.BeforeSave(AROW_TARGET); } } //1 Header if (header) { Writer.WriteHeader(streamer); } //2 Body core.Serialize(row, streamer); //3 EORow Writer.WriteEORow(streamer); }
public static bool TryDeserialize(TypedRow row, ReadingStreamer streamer, bool header = true) { ITypeSerializationCore core; var tRow = row.GetType(); if (!s_Serializers.TryGetValue(tRow, out core)) { return(false); } //1 Header if (header) { Reader.ReadHeader(streamer); } //2 Body core.Deserialize(row, streamer); var ar = row as IAmorphousData; if (ar != null) { if (ar.AmorphousDataEnabled) { ar.AfterLoad(AROW_TARGET); } } return(true); }
public static object ConsumeUnmatched(TypedRow row, ReadingStreamer streamer, string name, DataType dt, DataType?atp) { object value = null; if (atp.HasValue) { var len = ReadArrayLength(streamer); var arr = new object[len]; for (var i = 0; i < arr.Length; i++) { arr[i] = readOneAsObject(streamer, dt); } value = arr; } else { value = readOneAsObject(streamer, dt); } var arow = row as IAmorphousData; if (arow == null) { return(value); } if (!arow.AmorphousDataEnabled) { return(value); } arow.AmorphousData[name] = value; return(value); }
public static void Deserialize(TypedRow row, ReadingStreamer streamer, bool header = true) { var ok = TryDeserialize(row, streamer, header); if (!ok) { throw new ArowException(StringConsts.AROW_TYPE_NOT_SUPPORTED_ERROR.Args(row.GetType().FullName)); } }
public static object ConsumeUnmatched(TypedRow row, ReadingStreamer streamer, string name, DataType dt, DataType?atp) { object value = null; if (dt != DataType.Null) { if (dt == DataType.Array && !atp.HasValue) { atp = Reader.ReadDataType(streamer); } if (atp.HasValue) { var len = ReadArrayLength(streamer); var arr = new object[len]; for (var i = 0; i < arr.Length; i++) { if (atp.Value == DataType.Row) { var has = streamer.ReadBool(); if (!has) { continue; } } arr[i] = readOneAsObject(streamer, atp.Value); } value = arr; } else { value = readOneAsObject(streamer, dt); } } var arow = row as IAmorphousData; if (arow == null) { return(value); } if (!arow.AmorphousDataEnabled) { return(value); } arow.AmorphousData[name] = value; return(value); }
public static TRow[] ReadRowArray <TRow>(TypedRow rowScope, ReadingStreamer streamer, string name) where TRow : TypedRow, new() { var len = Reader.ReadArrayLength(streamer); var arr = new TRow[len]; for (var i = 0; i < len; i++) { var has = streamer.ReadBool(); if (!has) { continue; } var vrow = new TRow(); if (Reader.TryReadRow(rowScope, vrow, streamer, name + '_' + i.ToString())) { arr[i] = vrow; } } return(arr); }
public static bool TryDeserialize(TypedRow row, ReadingStreamer streamer, bool header = true) { ITypeSerializationCore core; var tRow = row.GetType(); if (!s_Serializers.TryGetValue(tRow, out core)) { return(false); } //1 Header if (header) { Reader.ReadHeader(streamer); } //2 Body core.Deserialize(row, streamer); return(true); }
public static List <TRow> ReadRowList <TRow>(TypedRow rowScope, ReadingStreamer streamer, string name) where TRow : TypedRow, new() { var len = Reader.ReadArrayLength(streamer); var lst = new List <TRow>(len); for (var i = 0; i < len; i++) { var has = streamer.ReadBool(); if (!has) { lst.Add(null); continue; } var vrow = new TRow(); if (Reader.TryReadRow(rowScope, vrow, streamer, name + '_' + i.ToString())) { lst.Add(vrow); } } return(lst); }
public static void Serialize(TypedRow row, WritingStreamer streamer, bool header = true) { ITypeSerializationCore core; var tRow = row.GetType(); if (!s_Serializers.TryGetValue(tRow, out core)) { throw new ArowException(StringConsts.AROW_TYPE_NOT_SUPPORTED_ERROR.Args(tRow.FullName)); } //1 Header if (header) { Writer.WriteHeader(streamer); } //2 Body core.Serialize(row, streamer); //3 EORow Writer.WriteEORow(streamer); }
public static bool TryReadRow(TypedRow rowScope, TypedRow newRow, ReadingStreamer streamer, string name) { var ok = ArowSerializer.TryDeserialize(newRow, streamer, false); if (ok) { return(true); } var map = readRowAsMap(streamer);//unconditionaly to advance stream var arow = rowScope as IAmorphousData; if (arow == null) { return(false); } if (!arow.AmorphousDataEnabled) { return(false); } arow.AmorphousData[name] = map; return(false); }
public RowImplementation(TypedRow row) => _row = row;
public static void WriteRow(WritingStreamer streamer, ulong name, TypedRow row) { streamer.Write(name); streamer.Write((byte)DataType.Row); ArowSerializer.Serialize(row, streamer, false); }
public override byte[] ObjectToNodeBinaryData(string nodeType, TypedRow data) { return(null); //throw new NotImplementedException(); }
/// <summary> /// Convert Row Node to binary data /// </summary> public abstract byte[] ObjectToNodeBinaryData(string nodeType, TypedRow data);