public void onTradeCorrection( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeCorrection correction, MamdaTradeRecap recap) { prettyPrint("Trade correction ({0}):", sub.getSymbol()); }
public void onOptionSeriesUpdate( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionSeriesUpdate update, MamdaOptionChain chain) { printView(); }
public void onTradeClosing( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeClosing closing, MamdaTradeRecap recap) { prettyPrint("Trade closing ({0}):", sub.getSymbol()); }
public void onTradeCancelOrError( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeCancelOrError cancelOrError, MamdaTradeRecap recap) { prettyPrint("Trade error/cancel ({0}):", sub.getSymbol()); }
private void handleUpdate( MamdaSubscription subscription, MamaMsg msg) { foreach (MamdaAuctionHandler handler in mHandlers) { handler.onAuctionUpdate(subscription, this, msg, this, this); } }
public void onSecurityStatusRecap( MamdaSubscription subscription, MamdaSecurityStatusListener listener, MamaMsg msg, MamdaSecurityStatusRecap recap) { Console.WriteLine("SecStatus recap (" + subscription.getSymbol() + " Status:" + recap.getSecurityStatusStr()); }
public void onOptionChainRecap( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionChain chain) { myGotRecap = true; printView(); }
private void createDeltaFromMamaMsgWithoutVectorFields( MamdaSubscription subscription, MamaMsg msg, bool isRecap) { NullableInt numLevelFields_ = new NullableInt(); int numLevelFieldInMsg = 1; if (msg.tryI32(MamdaOrderBookFields.NUM_LEVELS, ref numLevelFields_)) { numLevelFieldInMsg = numLevelFields_.Value; } int maxLevelFields = MamdaOrderBookFields.getNumLevelFields(); // getNumLevelFields() defaults to 0 but we want to go into the // below loop at least once for flattened messages scenario if (maxLevelFields == 0) { maxLevelFields = 1; } if (numLevelFieldInMsg < maxLevelFields) { maxLevelFields = numLevelFieldInMsg; } mPriceLevels = maxLevelFields; for (int i = 1; i <= maxLevelFields; i++) { clearLevelFields(); mPriceLevel = i; MamaMsg plMsg = null; if (MamdaOrderBookFields.PRICE_LEVEL.Length > 1) { plMsg = msg.getMsg(MamdaOrderBookFields.PRICE_LEVEL[i], null); } if (plMsg == null) { if (numLevelFieldInMsg == 1) { // Price level fields are probably be in the main message. plMsg = msg; } else { throw new MamdaDataException( "cannot find price level fields in MamaMsg"); } } getLevelInfoAndEntries(subscription, msg, plMsg, isRecap); } }
public void onTradeReport( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeReport trade, MamdaTradeRecap recap) { // Do something with a specific trade report. myDisplay.printlnContract(myContract); }
public void onQuoteUpdate( MamdaSubscription sub, MamdaQuoteListener listener, MamaMsg msg, MamdaQuoteUpdate update, MamdaQuoteRecap recap) { // Do something with a specific quote. myDisplay.printlnContract(myContract); }
public void onTradeReport( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeReport trade, MamdaTradeRecap recap) { Console.WriteLine("Underlying trade: " + trade.getTradeVolume() + " @ " + trade.getTradePrice()); }
public void onQuoteUpdate( MamdaSubscription subscription, MamdaQuoteListener listener, MamaMsg msg, MamdaQuoteUpdate update, MamdaQuoteRecap recap) { myShortSaleCircuitBreaker = update.getShortSaleCircuitBreaker(); Console.WriteLine("myShortSaleCircuitBreaker: " + myShortSaleCircuitBreaker); }
public void onTradeCorrection( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeCorrection correction, MamdaTradeRecap recap) { myCorrShortSaleCircuitBreaker = correction.getCorrShortSaleCircuitBreaker(); Console.WriteLine("myCorrShortSaleCircuitBreaker: " + myCorrShortSaleCircuitBreaker); }
public void onTradeCancelOrError( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeCancelOrError cancelOrError, MamdaTradeRecap recap) { myOrigShortSaleCircuitBreaker = cancelOrError.getOrigShortSaleCircuitBreaker(); Console.WriteLine("myOrigShortSaleCircuitBreaker: " + myOrigShortSaleCircuitBreaker); }
public void onTradeReport( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeReport trade, MamdaTradeRecap recap) { myShortSaleCircuitBreaker = trade.getShortSaleCircuitBreaker(); Console.WriteLine("myShortSaleCircuitBreaker: " + myShortSaleCircuitBreaker); }
public void onQuoteGap( MamdaSubscription sub, MamdaQuoteListener listener, MamaMsg msg, MamdaQuoteGap gapEvent, MamdaQuoteRecap recap) { Console.WriteLine("Quote gap (" + gapEvent.getBeginGapSeqNum() + "-" + gapEvent.getEndGapSeqNum() + ")"); }
public void Teardown() { // Reset member variables if (m_msg != null) { m_msg.destroy(); m_msg = null; } Mama.close(); }
public void onBookAtomicClear( MamdaSubscription subscription, MamdaBookAtomicListener listener, MamaMsg msg) { if (myQuietModeLevel < 2) { Console.WriteLine("BOOK CLEAR - " + subscription.getSymbol()); Console.WriteLine(); } }
public void onBookAtomicLevelEntryDelta( MamdaSubscription subscription, MamdaBookAtomicListener listener, MamaMsg msg, MamdaBookAtomicLevelEntry levelEntry) { if (myQuietModeLevel < 2) { prettyPrint(subscription, levelEntry); } }
public void onQuoteGap( MamdaSubscription subscription, MamdaQuoteListener listener, MamaMsg msg, MamdaQuoteGap gap, MamdaQuoteRecap recap) { Console.WriteLine("Quote gap ({0}-{1})", gap.getBeginGapSeqNum(), gap.getEndGapSeqNum()); }
public void onBookAtomicLevelRecap( MamdaSubscription subscription, MamdaBookAtomicListener listener, MamaMsg msg, MamdaBookAtomicLevel level) { if (myQuietModeLevel < 2) { prettyPrint(subscription, level); } }
private void handleRecap( MamdaSubscription subscription, MamaMsg msg) { updateFieldStates(); updateFundamentalFields(msg); foreach (MamdaFundamentalHandler handler in mHandlers) { handler.onFundamentals(subscription, this, msg, this); } }
public void testTradeId() { mMsg = new MamaMsg(); addMamaHeaderFields(mMsg, (byte)mamaMsgType.MAMA_MSG_TYPE_TRADE, (byte)mamaMsgStatus.MAMA_MSG_STATUS_OK, (uint)1); mMsg.addString("wTradeId", 477, "A"); ticker.callMamdaOnMsg(mSubscription, mMsg); Assert.AreEqual("A", ticker.myTradeId); }
/// <summary> /// This function will invoke the message callback on the user supplied callback implementation. /// </summary> /// <param name="nativeMsg"> /// The native MAMA message. /// </param> internal void InvokeMessage(IntPtr nativeMsg) { if (null != mCallback) { // Create a new MamaaMsg using the native handle passed in MamaMsg message = new MamaMsg(nativeMsg); // Invoke the callback mCallback.onMsg(mInbox, message); } }
/// <summary> /// Generic method for dispatching messages to instances of /// MamaMsgListeners. /// </summary> /// <param name="listeners"></param> /// <param name="subscription"></param> /// <param name="msg"></param> /// <param name="msgType"></param> private void forwardMsg( ArrayList listeners, MamdaSubscription subscription, MamaMsg msg, mamaMsgType msgType) { foreach (MamdaMsgListener listener in listeners) { listener.onMsg(subscription, msg, msgType); } }
public void Setup() { Mama.loadBridge("lbm"); Mama.open(); // Create the message m_msg = new MamaMsg(); // Create the array of messages m_vectorPrice = InitialisePriceArray(m_numberPrices, 69); m_vectorPrice2 = InitialisePriceArray(m_numberPrices, 144); }
/// <summary> /// Returns a MamaMsg representing the data dictionary. This message can be /// published or used to create a new MamaDictionary object. /// A new MamaMsg is created for each invocation of the method. It is the /// responsibility of the caller to delete the message when no longer /// needed. /// </summary> public MamaMsg getDictionaryMessage() { EnsurePeerCreated(); MamaMsg myDictMsg; IntPtr mamaMsg = IntPtr.Zero; int code = NativeMethods.mamaDictionary_getDictionaryMessage(nativeHandle, ref mamaMsg); CheckResultCode(code); myDictMsg = new MamaMsg(mamaMsg); return(myDictMsg); }
/// <summary> /// Send a message with the throttle. /// The lifecycle of the message sent is controlled by the user of the API. The /// callback indicates when the API is no longer using the message and can be /// destroyed/reused by the application. /// </summary> /// <param name="message">The mamaMsg to send.</param> /// <param name="callback">Callback invoked once the message has been send on /// the throttle</param> /// <param name="closure">User supplied data returned in the send complete callback.</param> public void sendWithThrottle( MamaMsg message, MamaSendCompleteCallback callback, object closure) { #if MAMA_WRAPPERS_CHECK_ARGUMENTS if (message == null) { throw new ArgumentNullException("message"); } if (callback == null) { throw new ArgumentNullException("callback"); } EnsurePeerCreated(); #endif // MAMA_WRAPPERS_CHECK_ARGUMENTS // Create a new callback wrapper MamaCallbackWrapper <MamaSendCompleteCallback, MamaThrottledSendCompleteDelegate> wrapper = new MamaCallbackWrapper <MamaSendCompleteCallback, MamaThrottledSendCompleteDelegate>( callback, closure, new MamaThrottledSendCompleteDelegate(onSendComplete)); // Add this to the store IntPtr nativeClosure = mCallbackStore.StoreWrapper(wrapper); // Call the native function int code = NativeMethods.mamaPublisher_sendWithThrottle( nativeHandle, message.NativeHandle, (Wombat.MamaPublisher.MamaThrottledSendCompleteDelegate)wrapper.NativeDelegate, nativeClosure); try { CheckResultCode(code); } // If something goes wrong then remove the wrapper from the store catch { // Remove the wrapper mCallbackStore.RemoveWrapper(nativeClosure); // Dispose it ((IDisposable)wrapper).Dispose(); // Rethrow the exception throw; } // Ensure that the message passed will not delete its native peer message.SelfManageLifeTime(false); }
public void addMamaHeaderFields( MamaMsg msg, byte msgType, byte msgStatus, uint seqNum) { msg.addU8(null, 1, msgType); msg.addU8(null, 2, msgStatus); msg.addU32(null, 10, seqNum); msg.addU64(null, 20, 1); }
/// <summary> /// Process initial images. This is most likely when we will be /// notify of the creation of a new security. /// </summary> /// <param name="subscription"></param> /// <param name="msg"></param> /// <param name="msgType"></param> /// <param name="symbol"></param> private void handleFullImage( MamdaSubscription subscription, MamaMsg msg, mamaMsgType msgType, string symbol) { if (!mListeners.containsKey(symbol)) { checkSecurityCreateNotify(subscription, symbol); } }
public void onAuctionUpdate( MamdaSubscription subscription, MamdaAuctionListener listener, MamaMsg msg, MamdaAuctionUpdate update, MamdaAuctionRecap recap) { Console.WriteLine("Auction Update ({0}, Uncross Price {1}({2}), Uncross Vol {3}({4}), Ind {5}({6})", subscription.getSymbol(), update.getUncrossPrice(), update.getUncrossPriceFieldState(), update.getUncrossVolume(), update.getUncrossVolumeFieldState(), update.getUncrossPriceInd(), update.getUncrossPriceIndFieldState()); }
public void onQuoteRecap( MamdaSubscription subscription, MamdaQuoteListener listener, MamaMsg msg, MamdaQuoteRecap recap) { Console.WriteLine("Quote Recap ({0})", subscription.getSymbol()); }
public void onBookClear( MamdaSubscription sub, MamdaOrderBookListener listener, MamaMsg msg, MamdaOrderBookDelta bookDelta, MamdaOrderBookRecap fullBook) { Console.WriteLine("BookClear"); }
public void onTradeCancelOrError( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeCancelOrError cancelOrError, MamdaTradeRecap recap) { }
public void onQuoteRecap( MamdaSubscription sub, MamdaQuoteListener listener, MamaMsg msg, MamdaQuoteRecap recap) { // Refresh the "display" of this contract. if (myView.isVisible(myContract)) myDisplay.printContract (myContract); }
public void onOptionChainRecap( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionChain chain) { myGotRecap = true; printChain(chain); }
public void onTradeReport( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeReport trade, MamdaTradeRecap recap) { prettyPrint( "Trade ({0}:{1}): {2} @ {3} (seq#: {4}; time: {5}; acttime: {6}; qual: {7})", sub.getSymbol(), recap.getTradeCount(), trade.getTradeVolume(), trade.getTradePrice(), trade.getEventSeqNum(), trade.getEventTime(), trade.getActivityTime(), trade.getTradeQual()); }
public void onBookClear( MamdaSubscription sub, MamdaOrderBookListener listener, MamaMsg msg, MamdaOrderBookDelta bookDelta, MamdaOrderBookRecap fullBook) { if (myQuietModeLevel < 2) { Console.WriteLine ("CLEAR!!! (seq# {0}) ", msg.getSeqNum()); } }
public void onMsg( MamdaSubscription subscription, MamaMsg msg, mamaMsgType msgType) { Console.WriteLine("Update ({0})", subscription.getSymbol()); }
public void onBookRecap( MamdaSubscription sub, MamdaOrderBookListener listener, MamaMsg msg, MamdaOrderBookDelta bookDelta, MamdaOrderBookRecap bookRecap) { ++myRecapStats; }
public void onOptionSeriesUpdate( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionSeriesUpdate update, MamdaOptionChain chain) { printChain(chain); }
public void onFundamentals( MamdaSubscription subscription, MamdaFundamentalListener listener, MamaMsg msg, MamdaFundamentals fundamentals) { Console.WriteLine ("Fundamental update (" + subscription.getSymbol() + " wDivFreq:" + fundamentals.getDividendFrequency() + " wMarketSector:" + fundamentals.getMarketSector() + " wMarketSegment:" + fundamentals.getMarketSegment() ); }
public void onOptionChainGap( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionChain chain) { printChain(chain); }
public void onQuoteGap( MamdaSubscription sub, MamdaQuoteListener listener, MamaMsg msg, MamdaQuoteGap gap, MamdaQuoteRecap recap) { }
public void onOptionContractCreate( MamdaSubscription subscription, MamdaOptionChainListener listener, MamaMsg msg, MamdaOptionContract contract, MamdaOptionChain chain) { // (Optional: create a trade/quote handler for the // individual option contract.) OptionContractTicker aTicker = new OptionContractTicker(contract, chain, this); contract.addQuoteHandler(aTicker); contract.addTradeHandler(aTicker); }
public void onBookGap( MamdaSubscription sub, MamdaOrderBookListener listener, MamaMsg msg, MamdaOrderBookGap gapEvent, MamdaOrderBookRecap fullBook) { ++myBookGapStats; }
public void onQuoteClosing( MamdaSubscription sub, MamdaQuoteListener listener, MamaMsg msg, MamdaQuoteClosing quoteClosing, MamdaQuoteRecap recap) { }
public void onTradeCorrection( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeCorrection tradeCorrection, MamdaTradeRecap recap) { }
public void onTradeRecap( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeRecap recap) { // Refresh the "display" of this contract. myDisplay.printlnContract(myContract); }
public void onTradeClosing( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeClosing tradeClosing, MamdaTradeRecap recap) { }
public void onQuoteUpdate( MamdaSubscription subscription, MamdaQuoteListener listener, MamaMsg msg, MamdaQuoteUpdate update, MamdaQuoteRecap recap) { string format = "Quote ({0}:{1}): {2} {3} X {4} {5} (seq#: {6}; time: {7}; qual: {8})"; Console.WriteLine(format, subscription.getSymbol(), recap.getQuoteCount(), update.getBidPrice(), update.getBidSize(), update.getAskSize(), update.getAskPrice(), update.getEventSeqNum(), update.getEventTime(), update.getQuoteQual()); }
public void onTradeGap( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeGap gap, MamdaTradeRecap recap) { }
public void onSecurityStatusUpdate( MamdaSubscription subscription, MamdaSecurityStatusListener listener, MamaMsg msg, MamdaSecurityStatusUpdate update, MamdaSecurityStatusRecap recap) { Console.WriteLine ("SecStatus update (" + subscription.getSymbol () + " Status:" + listener.getSecurityStatusStr ()); }
public void onTradeRecap( MamdaSubscription sub, MamdaTradeListener listener, MamaMsg msg, MamdaTradeRecap recap) { prettyPrint("Trade Recap ({0}): ", sub.getSymbol()); }
public void onBookGap( MamdaSubscription sub, MamdaOrderBookListener listener, MamaMsg msg, MamdaOrderBookGap gapEvent, MamdaOrderBookRecap fullBook) { Console.WriteLine ( "Received book gap " + sub.getSymbol () + " Start: " + gapEvent.getBeginGapSeqNum() + " End: " + gapEvent.getEndGapSeqNum()); }
public void onFailure( MamdaOrderBookCheckType checkType, string reason, MamaMsg msg, MamdaOrderBook realTimeBook, MamdaOrderBook checkBook) { //Failed Check Console.WriteLine("Failure check ({0} - {1})", checkType, reason); Console.WriteLine("msg: {0}", msg); Console.WriteLine("Failed Current Book: "); realTimeBook.dump(); Console.WriteLine("Failed Checking Book: "); checkBook.dump(); }
public void onBookRecap( MamdaSubscription sub, MamdaOrderBookListener listener, MamaMsg msg, MamdaOrderBookDelta bookDelta, MamdaOrderBookRecap bookRecap) { if (myQuietModeLevel < 2) { Console.WriteLine ("RECAP!!! (seq# {0}) ", msg.getSeqNum()); } if (myCacheFullBooks) { prettyPrint(bookRecap.getFullOrderBook()); } else { prettyPrint(bookDelta.getDeltaOrderBook()); } }