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)
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)