Ejemplo n.º 1
0
        public static void CycleInputToOutput(string typeHint)
        {
            var openGammaFudgeContext = new OpenGammaFudgeContext();
            var fudgeSerializer       = openGammaFudgeContext.GetSerializer();

            using (var openStandardInput = Console.OpenStandardInput())
                using (var openStandardOutput = Console.OpenStandardOutput())
                {
                    var fudgeEncodedStreamWriter = new FudgeEncodedStreamWriter(openGammaFudgeContext, openStandardOutput);
                    var fudgeEncodedStreamReader = new FudgeEncodedStreamReader(openGammaFudgeContext, openStandardInput);

                    var mappingStrategy = (IFudgeTypeMappingStrategy)openGammaFudgeContext.GetProperty(ContextProperties.TypeMappingStrategyProperty);

                    var mappedtype = mappingStrategy.GetType(typeHint) ?? typeof(object);

                    var hintType = typeof(TestWrapper <>).MakeGenericType(mappedtype);

                    var wrapper = (ITestWrapper)Deserialize(fudgeSerializer, hintType, fudgeEncodedStreamReader);

                    object hydratedObject = wrapper.TestObject;
                    CheckEqualityIfAppropriate(hydratedObject, mappedtype);

                    fudgeSerializer.Serialize(fudgeEncodedStreamWriter, wrapper);

                    openStandardOutput.Flush();
                }
        }
Ejemplo n.º 2
0
        private static void AssertEncodeDecodeCycle <T>(T obj)
        {
            var openGammaFudgeContext = new OpenGammaFudgeContext();
            var msg          = openGammaFudgeContext.GetSerializer().SerializeToMsg(obj);
            var roundTripped = openGammaFudgeContext.GetSerializer().Deserialize <T>(msg);

            Assert.Equal(obj, roundTripped);
        }
 private static RemoteEngineContextFactory GetContextFactory(Uri serviceUri)
 {
     var fudgeContext = new OpenGammaFudgeContext();
     return new RemoteEngineContextFactory(fudgeContext, serviceUri)
                {
                    GlobalLogger = new ConsoleLogger(LoggerLevel.Debug)
                };
 }
 public void SerializerIsThreadSafe()
 {
     for (int i = 0; i < 1000; i++)
     {
         var context = new OpenGammaFudgeContext();
         Parallel.For(1, 4 * Environment.ProcessorCount, _ => Thrash(context));
     }
 }
 public void SerializerIsThreadSafe()
 {
     for (int i = 0; i < 1000; i++)
     {
         var context = new OpenGammaFudgeContext();
         Parallel.For(1, 4 * Environment.ProcessorCount, _ => Thrash(context));
     }
 }
Ejemplo n.º 6
0
 public TReq Deserialize <TReq>(OpenGammaFudgeContext context, IFudgeStreamReader stream, SerializationTypeMap typeMap)
 {
     if (typeof(TReq) != typeof(T))
     {
         throw new ArgumentException(string.Format("Unexpected type {0}", typeof(TReq)));
     }
     return((TReq)(object)Deserialize(context, stream, typeMap));
 }
        public RemoteEngineContextFactory(OpenGammaFudgeContext fudgeContext, Uri rootUri)
        {
            _fudgeContext = fudgeContext;
            _rootUri      = rootUri;
            _rootRest     = new RestTarget(_fudgeContext, rootUri);

            _componentsMessage   = new Lazy <IFudgeFieldContainer>(GetComponentsMessage);
            _componentRepository = new Lazy <ComponentRepository>(() => GetComponentRepository(_componentsMessage.Value));
        }
Ejemplo n.º 8
0
        protected RestfulJmsResultConsumerBase(OpenGammaFudgeContext fudgeContext, RestTarget clientUri, MQTemplate mqTemplate, Action <object, TListener> resultAction)
        {
            FudgeContext = fudgeContext;
            _mqTemplate  = mqTemplate;
            REST         = clientUri;

            _listenerReference = new ListenerReference(resultAction); //TODO: check that this doesn't reference us
            _heartbeatSender   = new HeartbeatSender(TimeSpan.FromSeconds(10), REST.Resolve("heartbeat"));
        }
Ejemplo n.º 9
0
        private static RemoteEngineContextFactory GetContextFactory(Uri serviceUri)
        {
            var fudgeContext = new OpenGammaFudgeContext();

            return(new RemoteEngineContextFactory(fudgeContext, serviceUri)
            {
                GlobalLogger = new ConsoleLogger(LoggerLevel.Debug)
            });
        }
Ejemplo n.º 10
0
        protected T1 DeserializeStandard <T1>(OpenGammaFudgeContext context, IFudgeStreamReader reader, SerializationTypeMap typeMap)
        {
            //Called just after SubmessageFieldStart for a field containing a T1
            //TODO: should handle T1 being stream serializable
            FudgeMsg dequeueMessage  = ReadOneSubmessage(context, reader);
            var      fudgeSerializer = new FudgeSerializer(context, typeMap);

            return(fudgeSerializer.Deserialize <T1>(dequeueMessage));
        }
        public void SerializerIsFast()
        {
            var context = new OpenGammaFudgeContext();

            for (int i = 0; i < 200000; i++)
            {
                Thrash(context);
            }
        }
        public RemoteEngineContextFactory(OpenGammaFudgeContext fudgeContext, Uri rootUri)
        {
            _fudgeContext = fudgeContext;
            _rootUri = rootUri;
            _rootRest = new RestTarget(_fudgeContext, rootUri);

            _componentsMessage = new Lazy<IFudgeFieldContainer>(GetComponentsMessage);
            _componentRepository = new Lazy<ComponentRepository>(() => GetComponentRepository(_componentsMessage.Value));
        }
        public void SerializerIsFast()
        {
            var context = new OpenGammaFudgeContext();

            for (int i = 0; i < 200000; i++)
            {
                Thrash(context);
            }
        }
        protected override FudgeListWrapper <T> Deserialize(OpenGammaFudgeContext context, IFudgeStreamReader stream, SerializationTypeMap typeMap)
        {
            bool inList = false;
            var  items  = new List <T>();

            while (stream.HasNext)
            {
                switch (stream.MoveNext())
                {
                case FudgeStreamElement.MessageStart:
                    break;

                case FudgeStreamElement.MessageEnd:
                    return(new FudgeListWrapper <T>(items));

                case FudgeStreamElement.SimpleField:
                    if (stream.FieldName == null && stream.FieldOrdinal == 0)
                    {
                        continue;
                    }
                    throw new ArgumentException();

                case FudgeStreamElement.SubmessageFieldStart:
                    if (stream.FieldName == "list" && stream.FieldOrdinal == null)
                    {
                        if (inList)
                        {
                            throw new ArgumentException();
                        }
                        inList = true;
                    }
                    else if (inList)
                    {
                        var deserializeStandard = DeserializeStandard <T>(context, stream, typeMap);
                        items.Add(deserializeStandard);
                    }
                    else
                    {
                        throw new ArgumentException();
                    }
                    break;

                case FudgeStreamElement.SubmessageFieldEnd:
                    if (!inList)
                    {
                        throw new ArgumentException();
                    }
                    inList = false;
                    break;

                default:
                    break;     // Unknown
                }
            }
            throw new ArgumentException();
        }
 private static FudgeSerializer Thrash(OpenGammaFudgeContext context)
 {
     var fudgeSerializer = context.GetSerializer();
     var graph = new A { B = new B { C = new C { A = new A { B = new B() } } } };
     var msg = fudgeSerializer.SerializeToMsg(graph);
     A graphRet = fudgeSerializer.Deserialize<A>(msg);
     Assert.NotNull(graphRet.B.C.A.B);
     Assert.Null(graphRet.B.C.A.B.C);
     return fudgeSerializer;
 }
Ejemplo n.º 16
0
        public ClientResultStream(OpenGammaFudgeContext fudgeContext, MQTemplate mqTemplate, bool checkSeqNumber)
        {
            _mqTemplate = mqTemplate;

            _fudgeMessageDecoder = new FudgeMessageDecoder(fudgeContext, checkSeqNumber);
            _connection          = _mqTemplate.CreateConnection();
            _session             = _connection.CreateSession();

            _destination = _session.CreateTemporaryQueue();

            _consumer           = _session.CreateConsumer(_destination);
            _consumer.Listener += RawMessageReceived;
            _connection.Start();
        }
Ejemplo n.º 17
0
        public ClientResultStream(OpenGammaFudgeContext fudgeContext, MQTemplate mqTemplate, bool checkSeqNumber)
        {
            _mqTemplate = mqTemplate;

            _fudgeMessageDecoder = new FudgeMessageDecoder(fudgeContext, checkSeqNumber);
            _connection = _mqTemplate.CreateConnection();
            _session = _connection.CreateSession();

            _destination = _session.CreateTemporaryQueue();

            _consumer = _session.CreateConsumer(_destination);
            _consumer.Listener += RawMessageReceived;
            _connection.Start();
        }
Ejemplo n.º 18
0
        public static void CheckEquality <T>(IEquatable <T> obj, Type mappedType)
        {
            if (!obj.Equals((T)obj))
            {
                throw new Exception("Object is not self equal");
            }
            var openGammaFudgeContext = new OpenGammaFudgeContext();
            var fudgeSerializer       = openGammaFudgeContext.GetSerializer();
            //TODO type hint
            FudgeMsg msg        = fudgeSerializer.SerializeToMsg(obj);
            object   rehydrated = fudgeSerializer.Deserialize(msg, mappedType);

            if (!obj.Equals((T)rehydrated))
            {
                throw new Exception("roundtripped object not equals");
            }
        }
Ejemplo n.º 19
0
        private static FudgeMsg ReadOneSubmessage(OpenGammaFudgeContext context, IFudgeStreamReader reader)
        {
            var writer = new FudgeMsgStreamWriter(context);

            writer.StartMessage();

            int depth = 1;

            while (reader.HasNext)
            {
                switch (reader.MoveNext())
                {
                case FudgeStreamElement.MessageStart:
                    throw new ArgumentException();

                case FudgeStreamElement.MessageEnd:
                    throw new ArgumentException();

                case FudgeStreamElement.SimpleField:
                    writer.WriteField(reader.FieldName, reader.FieldOrdinal, reader.FieldType, reader.FieldValue);
                    break;

                case FudgeStreamElement.SubmessageFieldStart:
                    depth++;
                    writer.StartSubMessage(reader.FieldName, reader.FieldOrdinal);
                    break;

                case FudgeStreamElement.SubmessageFieldEnd:
                    depth--;
                    if (depth == 0)
                    {
                        writer.EndMessage();
                        return(writer.DequeueMessage());
                    }
                    writer.EndSubMessage();
                    break;

                default:
                    break;          // Unknown
                }
            }

            throw new ArgumentException();
        }
        private static FudgeSerializer Thrash(OpenGammaFudgeContext context)
        {
            var fudgeSerializer = context.GetSerializer();
            var graph           = new A {
                B = new B {
                    C = new C {
                        A = new A {
                            B = new B()
                        }
                    }
                }
            };
            var msg      = fudgeSerializer.SerializeToMsg(graph);
            A   graphRet = fudgeSerializer.Deserialize <A>(msg);

            Assert.NotNull(graphRet.B.C.A.B);
            Assert.Null(graphRet.B.C.A.B.C);
            return(fudgeSerializer);
        }
Ejemplo n.º 21
0
 public RemoteViewClient(OpenGammaFudgeContext fudgeContext, RestTarget clientUri, MQTemplate mqTemplate, RemoteViewProcessor viewProcessor) : base(fudgeContext, clientUri, mqTemplate, (o, l) => new ResultEvent(o).ApplyTo(l))
 {
     _viewProcessor = viewProcessor;
 }
Ejemplo n.º 22
0
 public FudgeMessageDecoder(OpenGammaFudgeContext fudgeContext, bool checkSeqNumber)
 {
     _fudgeContext   = fudgeContext;
     _checkSeqNumber = checkSeqNumber;
 }
Ejemplo n.º 23
0
        private readonly ManualResetEventSlim _startSignalReceivedEvent = new ManualResetEventSlim(); //NOTE: can't dispose this easily

        #endregion Fields

        #region Constructors

        public ClientResultStream(OpenGammaFudgeContext fudgeContext, MQTemplate mqTemplate)
            : this(fudgeContext, mqTemplate, true)
        {
        }
Ejemplo n.º 24
0
 public ClientResultStream(OpenGammaFudgeContext fudgeContext, MQTemplate mqTemplate)
     : this(fudgeContext, mqTemplate, true)
 {
 }
Ejemplo n.º 25
0
 public FinancialClient(RestTarget rest, OpenGammaFudgeContext fudgeContext)
 {
     _rest = rest;
     _fudgeContext = fudgeContext;
     _heartbeatSender = new HeartbeatSender(TimeSpan.FromMinutes(5), _rest.Resolve("heartbeat"));
 }
 public RemoteHistoricalTimeSeriesSource(OpenGammaFudgeContext fudgeContext, RestTarget rest)
 {
     _fudgeContext = fudgeContext;
     _rest         = rest;
 }
Ejemplo n.º 27
0
 public FinancialUser(OpenGammaFudgeContext fudgeContext, RestTarget restTarget, string userName)
 {
     _fudgeContext = fudgeContext;
     _restTarget   = restTarget;
     _userName     = userName;
 }
Ejemplo n.º 28
0
 public RemoteChangeManger(RestTarget restTarget, OpenGammaFudgeContext fudgeContext)
 {
     _topicTemplate = new Lazy<MQTopicTemplate>(() => GetTopicTemplate(restTarget));
     _fudgeDecoder = new FudgeMessageDecoder(fudgeContext, false);
 }
Ejemplo n.º 29
0
 protected abstract T Deserialize(OpenGammaFudgeContext context, IFudgeStreamReader stream, SerializationTypeMap typeMap);
Ejemplo n.º 30
0
 public FinancialUser(OpenGammaFudgeContext fudgeContext, RestTarget restTarget, string userName)
 {
     _fudgeContext = fudgeContext;
     _restTarget = restTarget;
     _userName = userName;
 }
Ejemplo n.º 31
0
 public RemoteChangeManger(RestTarget restTarget, OpenGammaFudgeContext fudgeContext)
 {
     _topicTemplate = new Lazy <MQTopicTemplate>(() => GetTopicTemplate(restTarget));
     _fudgeDecoder  = new FudgeMessageDecoder(fudgeContext, false);
 }
Ejemplo n.º 32
0
 public RemoteMarketDataSnapshotMaster(RestTarget restTarget, OpenGammaFudgeContext fudgeContext)
 {
     _restTarget   = restTarget;
     _fudgeContext = fudgeContext;
 }
        protected override IDependencyGraph Deserialize(OpenGammaFudgeContext context, IFudgeStreamReader stream, SerializationTypeMap typeMap)
        {
            string calcConfigName = null;
            var    nodes          = new List <DependencyNode>();

            int edgeFrom = -1;

            while (stream.HasNext)
            {
                switch (stream.MoveNext())
                {
                case FudgeStreamElement.MessageStart:
                    break;

                case FudgeStreamElement.MessageEnd:
                    return(new DependencyGraph(calcConfigName, nodes));

                case FudgeStreamElement.SimpleField:
                    switch (stream.FieldName)
                    {
                    case "edge":
                        var int32 = Convert.ToInt32(stream.FieldValue);

                        if (edgeFrom < 0)
                        {
                            edgeFrom = int32;
                        }
                        else
                        {
                            int to = int32;

                            DependencyNode inputNode     = nodes[edgeFrom];
                            DependencyNode dependentNode = nodes[to];
                            dependentNode.AddInputNode(inputNode);
                            edgeFrom = -1;
                        }
                        break;

                    case "calculationConfigurationName":
                        if (calcConfigName != null)
                        {
                            throw new ArgumentException();
                        }
                        calcConfigName = (string)stream.FieldValue;
                        break;

                    default:
                        if (stream.FieldOrdinal == 0 && stream.FieldType == StringFieldType.Instance)
                        {
                            break;
                        }
                        throw new ArgumentException();
                    }
                    break;

                case FudgeStreamElement.SubmessageFieldStart:
                    if (stream.FieldName == "dependencyNode" && stream.FieldOrdinal == null)
                    {
                        var deserializeStandard = DeserializeStandard <DependencyNode>(context, stream, typeMap);
                        nodes.Add(deserializeStandard);
                    }
                    else
                    {
                        throw new ArgumentException();
                    }
                    break;

                case FudgeStreamElement.SubmessageFieldEnd:
                    throw new ArgumentException();

                default:
                    break;     // Unknown
                }
            }
            throw new ArgumentException();
        }
Ejemplo n.º 34
0
 public RemotePortfolioMaster(RestTarget restTarget, OpenGammaFudgeContext fudgeContext)
 {
     _restTarget = restTarget;
     _fudgeContext = fudgeContext;
 }
 public void SerializerKindOfWorks()
 {
     var context = new OpenGammaFudgeContext();
     Thrash(context);
 }
Ejemplo n.º 36
0
 public RemotePortfolioMaster(RestTarget restTarget, OpenGammaFudgeContext fudgeContext)
 {
     _restTarget = restTarget;
     _fudgeContext = fudgeContext;
 }
Ejemplo n.º 37
0
 public RemoteViewProcessor(OpenGammaFudgeContext fudgeContext, RestTarget rest, MQTemplate mqTemplate)
 {
     _fudgeContext = fudgeContext;
     _rest         = rest;
     _mqTemplate   = mqTemplate;
 }
Ejemplo n.º 38
0
 public StreamingFudgeBuilder(OpenGammaFudgeContext context)
 {
     _context = context;
 }
Ejemplo n.º 39
0
 internal RemoteEngineContext(OpenGammaFudgeContext fudgeContext, Uri rootUri, ComponentRepository repository)
 {
     _fudgeContext = fudgeContext;
     _rootUri = rootUri;
     _repository = repository;
 }
Ejemplo n.º 40
0
 public FinancialClient(RestTarget rest, OpenGammaFudgeContext fudgeContext)
 {
     _rest            = rest;
     _fudgeContext    = fudgeContext;
     _heartbeatSender = new HeartbeatSender(TimeSpan.FromMinutes(5), _rest.Resolve("heartbeat"));
 }
Ejemplo n.º 41
0
 internal RemoteEngineContext(OpenGammaFudgeContext fudgeContext, Uri rootUri, ComponentRepository repository)
 {
     _fudgeContext = fudgeContext;
     _rootUri      = rootUri;
     _repository   = repository;
 }
Ejemplo n.º 42
0
 public RemoteViewProcessor(OpenGammaFudgeContext fudgeContext, RestTarget rest, MQTemplate mqTemplate)
 {
     _fudgeContext = fudgeContext;
     _rest = rest;
     _mqTemplate = mqTemplate;
 }
Ejemplo n.º 43
0
 public FudgeMessageDecoder(OpenGammaFudgeContext fudgeContext, bool checkSeqNumber)
 {
     _fudgeContext = fudgeContext;
     _checkSeqNumber = checkSeqNumber;
 }
        public void SerializerKindOfWorks()
        {
            var context = new OpenGammaFudgeContext();

            Thrash(context);
        }
 public RemoteHistoricalTimeSeriesSource(OpenGammaFudgeContext fudgeContext, RestTarget rest)
 {
     _fudgeContext = fudgeContext;
     _rest = rest;
 }