def subscribe_forward_assets(discount_curve, feed_server_proxy):
    # create update event for discount curve
    discount_curve.forward_rate_update_event = Event()
    # spawn forward_rate_update_event listening loop
    gevent.spawn(respond_to_forward_rate_updates, discount_curve)
    # loop over all forward rate points and subscribe to corresponding asset data feed
    for frp in discount_curve.forward_rate_points:
        # request uuid for forward rate point for feed_proxy id purposes
        assign_uuid(frp)
        # create update closure
        rate_update_closure = forward_rate_update_closure(frp, discount_curve.forward_rate_update_event)
        #subscribe to data feed
        feed_server_proxy.subscribe_to_market_data(frp.asset_id, frp.uuid, rate_update_closure, SUBTYPE_MID)
Esempio n. 2
0
def subscribe_driver_to_asset_updates(driver, feed_proxy):
    # create private update event
    driver.update_event = Event()
    # get uuid for driver to pass to feed_proxy
    assign_uuid(driver)
    # start update event response loop
    driver.greenlets = []
    driver.greenlets.append(gevent.spawn(respond_to_driver_updates, driver))
    # create closure with driver update method for callback on asset_feed update
    callback = driver_update_closure(driver)
    # subscribe to asset feed
    if driver.asset_id is not None:
        feed_proxy.subscribe_to_market_data(driver.asset_id, driver.uuid, callback, SUBTYPE_MID)