public FudgeSerializationContext(FudgeContext context, SerializationTypeMap typeMap, IFudgeStreamWriter writer, IFudgeTypeMappingStrategy typeMappingStrategy) { this.context = context; this.writer = writer; this.typeMap = typeMap; this.typeMappingStrategy = typeMappingStrategy; }
/// <summary> /// Convenience method for writing a <see cref="FudgeMsg"/> to a <see cref="IFudgeStreamWriter"/>. /// </summary> /// <param name="writer">Writer to write the data.</param> /// <param name="msg">Message to write.</param> public static void WriteMsg(this IFudgeStreamWriter writer, FudgeMsg msg) { var reader = new FudgeMsgStreamReader(msg.Context, msg); var pipe = new FudgeStreamPipe(reader, writer); pipe.ProcessOne(); }
/// <summary> /// Serializes an object graph to a Fudge message stream. /// </summary> /// <param name="writer">Stream to write the messages to.</param> /// <param name="graph">Starting point for graph of objects to serialize.</param> public void Serialize(IFudgeStreamWriter writer, object graph) { if (graph == null) { throw new ArgumentNullException("graph"); } // Delegate to FudgeSerializationContext to do the work var serializationContext = new FudgeSerializationContext(context, typeMap, writer, TypeMappingStrategy); serializationContext.SerializeGraph(graph); }
/// <summary> /// Constructs a new pipe from an <see cref="IFudgeStreamReader"/> to an <see cref="IFudgeStreamWriter"/>. /// </summary> /// <param name="reader"><see cref="IFudgeStreamReader"/> from which to fetch the data.</param> /// <param name="writer"><see cref="IFudgeStreamWriter"/> to output the data.</param> public FudgeStreamPipe(IFudgeStreamReader reader, IFudgeStreamWriter writer) { this.reader = reader; this.writer = writer; }