public void SetUp() { try { //Intialise mama myBridge = new MamaBridge("lbm"); Mama.open(); mDictionary = new MamaDictionary(); mDictionary.create("dictionary.txt"); MamdaCommonFields.setDictionary(mDictionary, null); MamdaTradeFields.reset(); MamdaTradeFields.setDictionary(mDictionary, null); mSubscription = new MamdaSubscription(); mTradeListener = new MamdaTradeListener(); mSubscription.addMsgListener(mTradeListener); ticker = new tradetickerCB(); mTradeListener.addHandler(ticker); } catch (Exception e) { Console.Error.WriteLine(e.ToString()); Environment.Exit(1); } }
public void SetUp() { try { MamaBridge mBridge = Mama.loadBridge("lbm"); Mama.open(); MamaDictionary mDictionary = new MamaDictionary(); mDictionary.create("dictionary.txt"); MamdaCommonFields.setDictionary(mDictionary, null); MamdaQuoteFields.reset(); MamdaQuoteFields.setDictionary(mDictionary, null); mSubscription = new MamdaSubscription(); mQuoteListener = new MamdaQuoteListener(); mSubscription.addMsgListener(mQuoteListener); ticker = new QuoteTicker(); mQuoteListener.addHandler(ticker); } catch (Exception ex) { throw new MamdaDataException(ex.Message, ex); } }
public void SetUp() { try { MamaBridge mBridge = Mama.loadBridge("lbm"); Mama.open(); MamaDictionary mDictionary = new MamaDictionary(); mDictionary.create("dictionary.txt"); MamdaCommonFields.setDictionary(mDictionary, null); MamdaSecurityStatusFields.reset(); MamdaSecurityStatusFields.setDictionary(mDictionary, null); mSubscription = new MamdaSubscription(); } catch (Exception ex) { throw new MamdaDataException(ex.Message, ex); } }
public void SetUp() { try { MamaBridge mBridge = Mama.loadBridge("lbm"); Mama.open(); MamaDictionary mDictionary = new MamaDictionary(); mDictionary.create("dictionary.txt"); MamdaCommonFields.setDictionary(mDictionary, null); MamdaTradeFields.reset(); MamdaTradeFields.setDictionary(mDictionary, null); mSubscription = new MamdaSubscription(); mTradeListener = new MamdaTradeListener(); mSubscription.addMsgListener(mTradeListener); recap = new MamdaConcreteTradeRecap(); } catch (Exception ex) { throw new MamdaDataException(ex.Message, ex); } }
private void initializeMama() { mamaBridge = Mama.loadBridge(mamaMiddlewareName); Console.WriteLine(Mama.getVersion(mamaBridge)); Mama.open(); if (mamaHighWaterMark > 0 || mamaLowWaterMark > 0) { if (mamaHighWaterMark > 0) { Mama.setDefaultQueueHighWatermark(mamaHighWaterMark); } if (mamaLowWaterMark > 0) { try { Mama.setDefaultQueueLowWatermark(mamaLowWaterMark); } catch (Exception e) { Console.WriteLine("Could not set default queue low water mark MamaStatus: " + e); } } } // create the transport mamaTransport = new MamaTransport(); mamaTransport.setTransportCallback(this); // the default throttle rate is 500 msg/sec if (mamaThrottle != -1) { mamaTransport.setOutboundThrottle(MamaTransport.MamaThrottleInstance.MAMA_THROTTLE_DEFAULT, mamaThrottle); } // the default recap throttle rate is 250 msg/sec if (mamaRecapThrottle != -1) { mamaTransport.setOutboundThrottle(MamaTransport.MamaThrottleInstance.MAMA_THROTTLE_RECAP, mamaRecapThrottle); } mamaTransport.create(mamaTransportName, mamaBridge); // create default queue and, if required, queue group createQueues(); mamaDictionarySource = new MamaSource(); mamaDictionarySource.symbolNamespace = mamaDictionarySourceName; mamaDictionarySource.transport = mamaTransport; // download dictionary mamaDictionary = new MamaDictionary(); mamaDictionary.create( mamaDefaultQueue, this, mamaDictionarySource, 3, 10.0f); loadSymbolMap(); Mama.start(mamaBridge); if (!dictionaryComplete) { throw new Exception("Can't create dictionary."); } }
private static MamaDictionary buildDataDictionary( MamaTransport transport, MamaQueue defaultQueue, MamaSource dictionarySource) { bool[] gotDict = new bool[] { false }; MamaDictionaryCallback dictionaryCallback = new DictionaryCallback(gotDict); lock (dictionaryCallback) { MamaSubscription subscription = new MamaSubscription (); MamaDictionary dictionary = new MamaDictionary(); dictionary.create( defaultQueue, dictionaryCallback, dictionarySource, 3, 10); Mama.start(myBridge); if (!gotDict[0]) { if (!Monitor.TryEnter(dictionaryCallback, 30000)) { Console.Error.WriteLine("Timed out waiting for dictionary."); Environment.Exit(0); } Monitor.Exit(dictionaryCallback); } return dictionary; } }
/// <summary> /// This function will create the dictionary. /// </summary> private void createDictionary() { if (m_downloadDictionary) { using (MamaSource dictionarySource = new MamaSource()) { /* If a dictionary transport has been specified then a new one must be created otherwise * the main transport will be re-used. */ MamaTransport dictionaryTransport = null; try { if((m_dictionaryTransportName == null) || (m_dictionaryTransportName == string.Empty)) { dictionarySource.transport = m_transport; } else { dictionaryTransport = new MamaTransport(); dictionaryTransport.create(m_dictionaryTransportName, m_bridge); dictionarySource.transport = dictionaryTransport; } // The symbol namespace must also be set dictionarySource.symbolNamespace = m_dictionarySourceName; // Instantiate a callback class ListenerDictionaryCallback dictionaryCallback = new ListenerDictionaryCallback(m_bridge); // Create the actual dictionary object using the default queue m_dictionary = new MamaDictionary(); m_dictionary.create(m_defaultQueue, dictionaryCallback, dictionarySource, 3, 10.0); // Start the bridge, this will block until the dictionary is downloaded or something goes wrong Mama.start(m_bridge); // If something went wrong then throw an exception if (!dictionaryCallback.DictionaryComplete) { throw new ApplicationException("Can't create dictionary."); } } finally { if (dictionaryTransport != null) { dictionaryTransport.destroy(); } } } } }