/// <summary>
 /// Adds a field to a message, unless the value is null.
 /// </summary>
 /// <param name="msg">Message to contain the field.</param>
 /// <param name="ordinal">Ordinal of field to add.</param>
 /// <param name="value">Value to add.</param>
 public static void AddIfNotNull(this IAppendingFudgeFieldContainer msg, int ordinal, object value)
 {
     if (value != null)
     {
         msg.Add(ordinal, value);
     }
 }
Example #2
0
 /// <inheritdoc/>
 public void WriteInline(IAppendingFudgeFieldContainer msg, string fieldName, int?ordinal, object obj)
 {
     if (obj != null)
     {
         WriteObject(fieldName, ordinal, obj, false, false);
     }
 }
        protected override void SerializeImpl(ValueProperties obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
        {
            var finite = obj as FiniteValueProperties;

            if (finite != null)
            {
                finite.Serialize(msg, serializer);
            }
            else
            {
                if (obj is EmptyValueProperties)
                {
                    return;
                }
                var withoutMessage = new FudgeMsg(serializer.Context);

                if (obj is NearlyInfiniteValueProperties)
                {
                    foreach (var without in ((NearlyInfiniteValueProperties)obj).Without)
                    {
                        withoutMessage.Add((string)null, without);
                    }
                }
                msg.Add("without", withoutMessage);
            }
        }
Example #4
0
 private static void WriteNullableTimeSpanField(IAppendingFudgeFieldContainer message, string name, TimeSpan?value)
 {
     if (value.HasValue)
     {
         message.Add(name, (long)value.Value.TotalMilliseconds);
     }
 }
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     foreach (var field in _fields)
     {
         a.Add(field);
     }
 }
Example #6
0
        public static void WriteTypeHeader(this IFudgeSerializer s, IAppendingFudgeFieldContainer a, Type type)
        {
            //Unlike the java library this functionality is not exposed, so we have to duplicate it
            var map = (IFudgeTypeMappingStrategy)s.Context.GetProperty(ContextProperties.TypeMappingStrategyProperty);

            a.Add(0, map.GetName(type));
        }
 /// <summary>
 /// Adds a field to a message, unless the value is null.
 /// </summary>
 /// <param name="msg">Message to contain the field.</param>
 /// <param name="name">Name of field to add.</param>
 /// <param name="value">Value to add.</param>
 public static void AddIfNotNull(this IAppendingFudgeFieldContainer msg, string name, object value)
 {
     if (value != null)
     {
         msg.Add(name, value);
     }
 }
Example #8
0
 private static void AddDateTimeOffsetWithDefault(IAppendingFudgeFieldContainer a, string fieldName, DateTimeOffset value)
 {
     if (value != default(DateTimeOffset))
     {
         a.Add(fieldName, new FudgeDateTime(value));
     }
 }
Example #9
0
        public void ToFudgeMsg(IAppendingFudgeFieldContainer message, IFudgeSerializer s)
        {
            message.Add("name", Name);
            if (_uniqueID != null)
            {
                message.Add("uniqueId", _uniqueID.ToString());
            }
            s.WriteInline(message, "identifier", PortfolioIdentifier);
            s.WriteInline(message, "user", User);
            s.WriteInline(message, "resultModelDefinition", ResultModelDefinition);

            if (DefaultCurrency != null)
            {
                message.Add("currency", DefaultCurrency.ISOCode);
            }

            WriteNullableTimeSpanField(message, "minDeltaCalcPeriod", MinDeltaCalcPeriod);
            WriteNullableTimeSpanField(message, "maxDeltaCalcPeriod", MaxDeltaCalcPeriod);
            WriteNullableTimeSpanField(message, "fullDeltaCalcPeriod", MinFullCalcPeriod);
            WriteNullableTimeSpanField(message, "maxFullCalcPeriod", MaxFullCalcPeriod);

            foreach (var calcConfig in CalculationConfigurationsByName.Values)
            {
                FudgeMsg calcConfigMsg = s.Context.NewMessage();

                calcConfig.ToFudgeMsg(calcConfigMsg, s);

                message.Add("calculationConfiguration", calcConfigMsg);
            }
        }
Example #10
0
        private void SerializeDictionary <K, V>(object obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
        {
            var dictionary = (IDictionary <K, V>)obj;

            SerializeList(dictionary.Keys, msg, serializer, typeData.SubTypeData.Kind, keysOrdinal);
            SerializeList(dictionary.Values, msg, serializer, typeData.SubType2Data.Kind, valuesOrdinal);    // Guaranteed to be matching order
        }
 protected override void SerializeImpl(ExternalIdBundle obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     foreach (var identifier in obj.Identifiers)
     {
         msg.Add("ID", identifier);
     }
 }
        public void Serialize(IAppendingFudgeFieldContainer msg, object obj, Action<object, SerializationInfo, StreamingContext> serializeMethod)
        {
            var si = new SerializationInfo(type, formatterConverter);

            beforeAfterMixin.CallBeforeSerialize(obj);
            serializeMethod(obj, si, streamingContext);
            beforeAfterMixin.CallAfterSerialize(obj);

            // Pull the data out of the SerializationInfo and add to the message
            var e = si.GetEnumerator();
            while (e.MoveNext())
            {
                string name = e.Name;
                object val = e.Value;

                if (val != null)
                {
                    msg.Add(name, val);
                }
                else
                {
                    // .net binary serialization still outputs the member with a null, so we have to do
                    // the same (using Indicator), otherwise deserialization blows up.
                    msg.Add(name, IndicatorType.Instance);
                }
            }
        }
        protected override void SerializeImpl(ValueSpecification obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
        {
            new ComputationTargetSpecificationBuilder(serializer.Context, typeof(ComputationTargetSpecification)).Serialize(obj.TargetSpecification, msg, serializer);

            serializer.WriteInline(msg, "properties", obj.Properties);
            msg.Add("valueName", obj.ValueName);
        }
            public void Serialize(IAppendingFudgeFieldContainer msg, object obj, Action <object, SerializationInfo, StreamingContext> serializeMethod)
            {
                var si = new SerializationInfo(type, formatterConverter);

                beforeAfterMethodHelper.CallBeforeSerialize(obj);
                serializeMethod(obj, si, streamingContext);
                beforeAfterMethodHelper.CallAfterSerialize(obj);

                // Pull the data out of the SerializationInfo and add to the message
                var e = si.GetEnumerator();

                while (e.MoveNext())
                {
                    string name = e.Name;

                    object val = e.Value;

                    if (val != null)
                    {
                        msg.Add(name, val);
                    }
                    else
                    {
                        // .net binary serialization still outputs the member with a null, so we have to do
                        // the same (using Indicator), otherwise deserialization blows up.
                        msg.Add(name, IndicatorType.Instance);
                    }
                }
            }
Example #15
0
        public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
        {
            s.WriteInline(a, "swapTenor", _swapTenor);
            s.WriteInline(a, "optionExpiry", _optionExpiry);

            a.Add("relativeStrike", _relativeStrike);
        }
Example #16
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     foreach (var field in _fields)
     {
         a.Add(field);
     }
 }
            public void Serialize(object obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
            {
                var address = (Address)obj;

                msg.AddIfNotNull("line1", address.Line1);
                msg.AddIfNotNull("line2", address.Line2);
                msg.AddIfNotNull("zip", address.Zip);
            }
Example #18
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     a.Add("target", Target.ToString());
     a.Add("name", Name);
     a.Add("instrumentType", InstrumentType);
     a.Add("quoteType", QuoteType);
     a.Add("quoteUnits", QuoteUnits);
 }
 protected override void SerializeImpl(ComputationTargetSpecification obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     msg.Add("computationTargetType", EnumBuilder <ComputationTargetType> .GetJavaName(obj.Type));
     if (obj.Uid != null)
     {
         msg.Add("computationTargetIdentifier", obj.Uid.ToString());
     }
 }
            public override void Serialize(IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
            {
                // Add our parent's fields
                base.Serialize(msg, serializer);

                // Now tag on ours
                msg.AddAll("siblings", siblings);
            }
Example #21
0
        public void WriteDocumentFields(IAppendingFudgeFieldContainer a)
        {
            AddDateTimeOffsetWithDefault(a, "versionFromInstant", VersionFromInstant);
            AddDateTimeOffsetWithDefault(a, "correctionFromInstant", CorrectionFromInstant);

            AddDateTimeOffsetWithDefault(a, "versionToInstant", VersionToInstant);
            AddDateTimeOffsetWithDefault(a, "correctionToInstant", CorrectionToInstant);
        }
 protected override void SerializeImpl(LiveMarketDataSpecification obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     serializer.WriteTypeHeader(msg, obj.GetType());
     if (obj.DataSource != null)
     {
         msg.Add("dataSource", obj.DataSource);
     }
 }
Example #23
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     a.Add("aggregatePositionOutputMode", EnumBuilder <ResultOutputMode> .GetJavaName(AggregatePositionOutputMode));
     a.Add("positionOutputMode", EnumBuilder <ResultOutputMode> .GetJavaName(PositionOutputMode));
     a.Add("tradeOutputMode", EnumBuilder <ResultOutputMode> .GetJavaName(TradeOutputMode));
     a.Add("securityOutputMode", EnumBuilder <ResultOutputMode> .GetJavaName(SecurityOutputMode));
     a.Add("primitiveOutputMode", EnumBuilder <ResultOutputMode> .GetJavaName(PrimitiveOutputMode));
 }
Example #24
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     a.Add(SchemeFudgeFieldName, Scheme);
     a.Add(ValueFudgeFieldName, Value);
     if (Version != null)
     {
         a.Add(VersionFudgeFieldName, Version);
     }
 }
        public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
        {
            WriteDocumentFields(a);

            if (UniqueId != null)
            {
                a.Add("uniqueId", UniqueId.ToString());
            }
            a.Add("security", Security);
        }
        public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
        {
            WriteDocumentFields(a);

            if (_uniqueId != null)
            {
                a.Add("uniqueId", _uniqueId.ToString());
            }
            a.Add("snapshot", _snapshot);
        }
        public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
        {
            WriteDocumentFields(a);

            if (_uniqueId != null)
            {
                a.Add("uniqueId", _uniqueId.ToString());
            }
            a.Add("snapshot", _snapshot);
        }
Example #28
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     a.Add("type", EnumBuilder <StripInstrumentType> .GetJavaName(InstrumentType));
     s.WriteInline(a, "tenor", CurveNodePointTime);
     a.Add("conventionName", ConventionName);
     if (InstrumentType == StripInstrumentType.Future)
     {
         a.Add("numFutures", NthFutureFromTenor);
     }
 }
        public static void AddMessageFields(IFudgeSerializer fudgeSerializer, IAppendingFudgeFieldContainer msg, ComputationTargetSpecification @object)
        {
            msg.Add("computationTargetType", EnumBuilder <ComputationTargetType> .GetJavaName(@object.Type));
            UniqueId uid = @object.Uid;

            if (uid != null)
            {
                fudgeSerializer.WriteInline(msg, "computationTargetIdentifier", uid);
            }
        }
Example #30
0
        public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
        {
            WriteDocumentFields(a);

            if (UniqueId != null)
            {
                a.Add("uniqueId", UniqueId.ToString());
            }
            a.Add("security", Security);
        }
Example #31
0
        public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
        {
            WriteDocumentFields(a);

            if (UniqueId != null)
            {
                a.Add("uniqueId", UniqueId.ToString());
            }
            a.Add("yieldCurveDefinition", YieldCurveDefinition);
        }
        public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
        {
            WriteDocumentFields(a);

            if (UniqueId != null)
            {
                a.Add("uniqueId", UniqueId.ToString());
            }
            a.Add("yieldCurveDefinition", YieldCurveDefinition);
        }
Example #33
0
        private void WriteTypeInformation(object obj, IAppendingFudgeFieldContainer msg)
        {
            Type type = obj.GetType();

            for (Type currentType = type; currentType != typeof(object); currentType = currentType.BaseType)
            {
                string typeName = typeMappingStrategy.GetName(currentType);
                msg.Add(null, FudgeSerializer.TypeIdFieldOrdinal, StringFieldType.Instance, typeName);
            }
        }
        public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
        {
            s.WriteTypeHeader(a, typeof(ManageableVolatilitySurfaceSnapshot));

            var fudgeSerializer = new FudgeSerializer(s.Context);

            var valuesMessage = MapBuilder.ToFudgeMsg(s, _values, fudgeSerializer.SerializeToMsg, fudgeSerializer.SerializeToMsg);

            a.Add("values", valuesMessage);
        }
Example #35
0
        protected override void SerializeImpl(PortfolioDocument obj, IAppendingFudgeFieldContainer a, IFudgeSerializer serializer)
        {
            obj.WriteDocumentFields(a);

            if (obj.UniqueId != null)
            {
                a.Add("uniqueId", obj.UniqueId.ToString());
            }
            a.Add("portfolio", obj.Portfolio);
        }
Example #36
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     if (_valuationTime != default(DateTimeOffset))
     {
         a.Add("valuation", _valuationTime);
     }
     if (_marketDataSpecification != null)
     {
         s.WriteInline(a, "marketDataSpecification", _marketDataSpecification);
     }
 }
Example #37
0
        public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
        {
            s.WriteTypeHeader(a, GetType());
            var fudgeMsg = new FudgeMsg(s.Context);

            foreach (var viewCycleExecutionOptionse in _executionSequence)
            {
                FudgeMsg msg = ((OpenGammaFudgeContext)s.Context).GetSerializer().SerializeToMsg(viewCycleExecutionOptionse);
                fudgeMsg.Add(null, null, msg);
            }

            a.Add("sequence", fudgeMsg);
        }
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     s.WriteInline(a, "pagingRequest", _pagingRequest);
     if (_name != null)
     {
         a.Add("name", _name);
     }
     if (_portfolioObjectIds != null)
     {
         s.WriteInline(a, "portfolioObjectIds", _portfolioObjectIds);
     }
     if (_nodeObjectIds != null)
     {
         s.WriteInline(a, "nodeObjectIds", _nodeObjectIds);
     }
 }
        public void WriteDocumentFields(IAppendingFudgeFieldContainer a)
        {
            AddDateTimeOffsetWithDefault(a, "versionFromInstant", VersionFromInstant);
            AddDateTimeOffsetWithDefault(a, "correctionFromInstant", CorrectionFromInstant);

            AddDateTimeOffsetWithDefault(a, "versionToInstant", VersionToInstant);
            AddDateTimeOffsetWithDefault(a, "correctionToInstant", CorrectionToInstant);
        }
 /// <inheritdoc/>
 public void Serialize(object obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     helper.Serialize(obj, msg, serializer);
 }
 public void Serialize(IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     msg.Add("Bid", Bid);
     msg.Add("Ask", Ask);
     msg.Add("BidVolume", BidVolume);
     msg.Add("AskVolume", AskVolume);
     msg.Add("Timestamp", Timestamp);
 }
 /// <inheritdoc/>
 public void Serialize(object obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     IFudgeSerializable ser = (IFudgeSerializable)obj;
     ser.Serialize(msg, serializer);
 }
 public void Serialize(IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     msg.Add("ticker", Ticker);
     msg.Add("bid", Bid);
     msg.Add("offer", Offer);
 }
 public void Serialize(object obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     var address = (Address)obj;
     msg.AddIfNotNull("line1", address.Line1);
     msg.AddIfNotNull("line2", address.Line2);
     msg.AddIfNotNull("zip", address.Zip);
 }
            public override void Serialize(IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
            {
                // Add our parent's fields
                base.Serialize(msg, serializer);

                // Now tag on ours
                msg.AddAll("siblings", siblings);
            }
Example #46
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     if (_overrideValue != null)
     {
         a.Add("overrideValue", _overrideValue);
     }
     if (_marketValue != null)
     {
         a.Add("marketValue", _marketValue);
     }
 }
Example #47
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     throw new NotImplementedException();
 }
 public void ToFudgeMsg(IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     msg.Add("number", number);
 }
 /// <inheritdoc/>
 public void Serialize(object obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     toFudgeMsgMethod.Invoke(obj, new object[] { msg, serializer });
 }
Example #50
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     s.WriteTypeHeader(a, typeof(MissingMarketDataSentinel));
 }
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     s.WriteInline(a, "identifiers", _identifiers.ToList());
     a.Add("searchType", EnumBuilder<ExternalIdSearchType>.GetJavaName(_searchType));
 }
Example #52
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer a, IFudgeSerializer s)
 {
     a.Add("aggregatePositionOutputMode", EnumBuilder<ResultOutputMode>.GetJavaName(AggregatePositionOutputMode));
     a.Add("positionOutputMode", EnumBuilder<ResultOutputMode>.GetJavaName(PositionOutputMode));
     a.Add("tradeOutputMode", EnumBuilder<ResultOutputMode>.GetJavaName(TradeOutputMode));
     a.Add("securityOutputMode", EnumBuilder<ResultOutputMode>.GetJavaName(SecurityOutputMode));
     a.Add("primitiveOutputMode", EnumBuilder<ResultOutputMode>.GetJavaName(PrimitiveOutputMode));
 }
 public void Serialize(object obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     throw new NotImplementedException();
 }
 private static void AddDateTimeOffsetWithDefault(IAppendingFudgeFieldContainer a, string fieldName, DateTimeOffset value)
 {
     if (value != default(DateTimeOffset))
     {
         a.Add(fieldName, new FudgeDateTime(value));
     }
 }
Example #55
0
 private static void WriteNullableTimeSpanField(IAppendingFudgeFieldContainer message, string name, TimeSpan? value)
 {
     if (value.HasValue)
     {
         message.Add(name, (long) value.Value.TotalMilliseconds);
     }
 }
 /// <inheritdoc/>
 public void Serialize(object obj, IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     helper.Serialize(msg, obj, (o, si, sc) => {((ISerializable)o).GetObjectData(si, sc);});
 }
Example #57
0
 public void ToFudgeMsg(IAppendingFudgeFieldContainer msg, IFudgeSerializer s)
 {
     msg.Add("valueName", ValueName);
     ComputationTargetSpecificationBuilder.AddMessageFields(s, msg, TargetSpecification);
     s.WriteInline(msg, "constraints", Constraints);
 }
Example #58
0
        public void ToFudgeMsg(IAppendingFudgeFieldContainer message, IFudgeSerializer s)
        {
            message.Add("name", Name);
            if (_uniqueID != null)
            {
                message.Add("uniqueId", _uniqueID.ToString());
            }
            s.WriteInline(message, "identifier", PortfolioIdentifier);
            s.WriteInline(message, "user", User);
            s.WriteInline(message, "resultModelDefinition", ResultModelDefinition);

            if (DefaultCurrency != null)
            {
                message.Add("currency", DefaultCurrency.ISOCode);
            }

            WriteNullableTimeSpanField(message, "minDeltaCalcPeriod", MinDeltaCalcPeriod);
            WriteNullableTimeSpanField(message, "maxDeltaCalcPeriod", MaxDeltaCalcPeriod);
            WriteNullableTimeSpanField(message, "fullDeltaCalcPeriod", MinFullCalcPeriod);
            WriteNullableTimeSpanField(message, "maxFullCalcPeriod", MaxFullCalcPeriod);

            foreach (var calcConfig in CalculationConfigurationsByName.Values)
            {
                FudgeMsg calcConfigMsg = s.Context.NewMessage();

                calcConfig.ToFudgeMsg(calcConfigMsg, s);

                message.Add("calculationConfiguration", calcConfigMsg);
            }
        }
 public void Serialize(IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     msg.AddIfNotNull("message", Message);
     msg.AddIfNotNull("other", Other);
 }
 public virtual void Serialize(IAppendingFudgeFieldContainer msg, IFudgeSerializer serializer)
 {
     msg.Add("name", Name);
     msg.AddIfNotNull("mainAddress", MainAddress);
 }