// Subscription Callbacks public void onCreate(MamaSubscription subscription) { if (!quiet) { Console.WriteLine("Created inbound subscription."); } }
private MamaSubscriberCS(string[] args) { try { if (parseCommandLine(args)) { mamaBridge = Mama.loadBridge(middlewareName); Mama.open(); mamaTransport = new MamaTransport(); mamaTransport.setTransportCallback(this); mamaTransport.create(transportName, mamaBridge); mamaDefaultQueue = Mama.getDefaultEventQueue(mamaBridge); mamaSubscription = new MamaSubscription(); mamaSubscription.createBasic( mamaTransport, mamaDefaultQueue, this, // callback topicName); Console.WriteLine("Starting mama..."); Mama.start(mamaBridge); // Prevent over-enthusiastic GC from reclaiming transport object GC.KeepAlive(mamaTransport); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public void onQuality(MamaSubscription subscription, mamaQuality quality, string symbol) { if (!quiet) { Console.WriteLine("Subscription {0} quality changed to {1}", symbol, quality); } }
public static void Main (string[] args) { parseCommandLine (args); try { initializeMama (); buildDataDictionary (); /* Subscribe to the symbol list */ MamaSubscription symbolListSubscription = new MamaSubscription(); symbolListSubscription.setSubscriptionType (mamaSubscriptionType.MAMA_SUBSC_TYPE_SYMBOL_LIST); symbolListSubscription.create (myDefaultQueue, symbolListSubscriptionCallback, mySource, "Symbol List", null); Console.WriteLine( "Type CTRL-C to exit." ); Mama.start (myBridge); } catch (Exception e) { Console.Error.WriteLine(e.ToString()); Environment.Exit(1); } }
/// <summary> /// Activate the subscription. Until this method is invoked, no /// updates will be received. /// </summary> public void activate() { if (mSubscription != null) { return; } mSubscription = new MamaSubscription(); mSubscription.setSubscriptionType(mType); mSubscription.setServiceLevel(mServiceLevel, mServiceLevelOpt); mSubscription.setRequiresInitial(mRequireInitial); mSubscription.setRetries(mRetries); mSubscription.setTimeout(mTimeout); mMamaSource.transport = mTransport; mMamaSource.symbolNamespace = mSource; mSubscription.create( mQueue, new MamdaSubscriptionCallback(this), mMamaSource, mSymbol, null); }
private void createSubscriber(MamaBridge bridge) { MamaSubscription mamaSubscription = new MamaSubscription(); MamaTransport mamaTransport = new MamaTransport(); MamaQueue mamaDefaultQueue = Mama.getDefaultEventQueue(bridge); Dispatcher dispatcher = new Dispatcher(bridge); mamaTransport = new MamaTransport(); mamaTransport.setTransportCallback(this); mamaTransport.create(transportName, bridge); mamaSubscription = new MamaSubscription(); mamaSubscription.createBasic( mamaTransport, mamaDefaultQueue, this, // callback topicName); Console.WriteLine("Starting mama..."); mamaSubscriptions.Add(mamaSubscription); mamaTransports.Add(mamaTransport); Thread startThread = new Thread(new ThreadStart(dispatcher.dispatch)); startThread.Start(); }
/// <summary> /// Method invoked when listener creation is complete, and /// before any calls to <code>onMsg</code>. /// </summary> /// <param name="subscription">The listenerCreated.</param> public void onCreate(MamaSubscription subscription) { lock (mSubscription) { mSubscription.mSubscription = subscription; } }
public void onMsg( MamaSubscription subscription, MamaMsg msg) { mamaMsgType msgType = msg.typeForMsg(); mamaMsgStatus msgStatus = msg.getStatus(); switch (msgType) { case mamaMsgType.MAMA_MSG_TYPE_DELETE: case mamaMsgType.MAMA_MSG_TYPE_EXPIRE: subscription.deallocate(); return; } switch (msgStatus) { case mamaMsgStatus.MAMA_MSG_STATUS_BAD_SYMBOL: case mamaMsgStatus.MAMA_MSG_STATUS_EXPIRED: case mamaMsgStatus.MAMA_MSG_STATUS_TIMEOUT: subscription.deallocate(); return; } for (int i = 0; i < mSubscription.mMsgListeners.Count; i++) { MamdaMsgListener listener = (MamdaMsgListener)mSubscription.mMsgListeners[i]; listener.onMsg(mSubscription, msg, msgType); } }
public int Run() { ParseArgs(); if (helpNeeded) { DisplayUsage(); return(0); } Mama.logToFile(@"mama.log", MamaLogLevel.MAMA_LOG_LEVEL_FINEST); bridge = Mama.loadBridge(middlewareName); Mama.open(); MamaTransport transport = new MamaTransport(); MamaQueue defaultQueue = Mama.getDefaultEventQueue(bridge); MamaTimer timer = new MamaTimer(); MamaSubscription subscription = new MamaSubscription(); MamaPublisherCS publisher = this; transport.create(transportName, bridge); timer.create(defaultQueue, publisher, interval, null); subscription.createBasic(transport, defaultQueue, publisher, inboundTopic); publisher.create(transport, outboundTopic); msg = new MamaMsg(); Mama.start(bridge); Mama.close(); return(0); }
public int Run() { ParseArgs(); if (helpNeeded) { DisplayUsage(); return 0; } Mama.logToFile(@"mama.log", MamaLogLevel.MAMA_LOG_LEVEL_FINEST); bridge = Mama.loadBridge(middlewareName); Mama.open(); MamaTransport transport = new MamaTransport(); MamaQueue defaultQueue = Mama.getDefaultEventQueue(bridge); MamaTimer timer = new MamaTimer(); MamaSubscription subscription = new MamaSubscription(); MamaPublisherCS publisher = this; transport.create(transportName, bridge); timer.create(defaultQueue, publisher, interval, null); subscription.createBasic(transport, defaultQueue, publisher, inboundTopic); publisher.create(transport, outboundTopic); msg = new MamaMsg(); Mama.start(bridge); Mama.close(); return 0; }
/* ************************************************************** */ #region Construction and Finalization /// <summary> /// Constructor initialises all member variables. /// Note that the base class default constructor is used as we don't want to use any /// of the base class implementation. /// </summary> /// <param name="callback"> /// The user callback implementation, can be an instance of the MamaSubscriptionCallbackEx /// interface to receive destroy notifications. /// </param> /// <param name="closure"> /// The closure supplied to the MamaSubscription.create function. /// </param> /// <param name="subscription"> /// The actual C# subscription object. /// </param> internal MamaSubscriptionImpl(MamaSubscriptionCallback callback, object closure, MamaSubscription subscription) : base() { // Save arguments in member variables mCallback = callback; mClosure = closure; mSubscription = subscription; }
public void onQuality( MamaSubscription subscription, mamaQuality quality, string symbol) { for (int i = 0; i < mSubscription.mStaleListeners.Count; i++) { MamdaStaleListener listener = (MamdaStaleListener)mSubscription.mStaleListeners[i]; listener.onStale(mSubscription, quality); } }
public int Run() { ParseArgs(); if (helpNeeded) { DisplayUsage(); return(0); } Mama.logToFile(@"mama.log", MamaLogLevel.MAMA_LOG_LEVEL_NORMAL); bridge = Mama.loadBridge(middlewareName); Mama.open(); MamaQueue defaultQueue = Mama.getDefaultEventQueue(bridge); msg = new MamaMsg(); MamaTimer timer = new MamaTimer(); timer.create(defaultQueue, this, interval, null); queueGroup = new MamaQueueGroup(bridge, 1); MamaTransport transport = new MamaTransport(); transport.create(transportName, bridge); MamaSubscription subscription = null; if (nosub == false) { subscription = new MamaSubscription(); subscription.createBasic(transport, defaultQueue, this, inboundTopic); } publisher = new MamaPublisher(); if (pubCb) { publisher.createWithCallbacks(transport, queueGroup.getNextQueue(), this, null, outboundTopic, null, null); } else { publisher.create(transport, outboundTopic); } Mama.start(bridge); Mama.close(); return(0); }
public void onError( MamaSubscription subscription, MamaStatus.mamaStatus status, string subject) { MamdaErrorSeverity severity = MamdaErrorSeverity.MAMDA_SEVERITY_OK; MamdaErrorCode code = MamdaErrorCode.MAMDA_NO_ERROR; string errStr = "unknown"; switch (status) { case MamaStatus.mamaStatus.MAMA_STATUS_BAD_SYMBOL: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_BAD_SYMBOL; errStr = "bad symbol"; break; case MamaStatus.mamaStatus.MAMA_STATUS_TIMEOUT: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_TIMEOUT; errStr = "timeout"; break; case MamaStatus.mamaStatus.MAMA_STATUS_NOT_ENTITLED: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_NOT_ENTITLED; errStr = "entitlement"; break; case MamaStatus.mamaStatus.MAMA_STATUS_NOT_FOUND: severity = MamdaErrorSeverity.MAMDA_SEVERITY_LOW; code = MamdaErrorCode.MAMDA_ERROR_NOT_FOUND; errStr = "not found"; break; default: break; } for (int i = 0; i < mSubscription.mErrorListeners.Count; i++) { MamdaErrorListener listener = (MamdaErrorListener)mSubscription.mErrorListeners[i]; listener.onError( mSubscription, severity, code, MamdaErrorCodes.stringForMamdaError(code)); } }
public void onMsg(MamaSubscription subscription, MamaMsg msg) { if (!quiet) { Console.WriteLine("Received inbound msg. Sending response"); } if (!msg.isFromInbox) { Console.WriteLine("Inbound msg not from inbox. No reply sent."); return; } Publish(msg); }
/*Invoked if the quality status for the subscription changes*/ public void onQuality (MamaSubscription subscription, mamaQuality quality, string symbol) { Console.WriteLine( "Symbol list subscription: quality is now " + (int)quality); }
public void onQuality(MamaSubscription subscription, mamaQuality quality, string symbol) { Console.WriteLine("Subscription quality:" + (int)quality); }
public void onGap(MamaSubscription subscription) { Console.WriteLine("Subscription gap"); }
public void onGap ( MamaSubscription subscription) { }
// Subscription callbacks public void onCreate(MamaSubscription subscription) { Console.WriteLine("onCreate, " + subscription.subscSymbol); }
public void onError( MamaSubscription subscription, MamaStatus.mamaStatus status, string subject) { MamdaErrorSeverity severity = MamdaErrorSeverity.MAMDA_SEVERITY_OK; MamdaErrorCode code = MamdaErrorCode.MAMDA_NO_ERROR; switch (status) { case MamaStatus.mamaStatus.MAMA_STATUS_BAD_SYMBOL: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_BAD_SYMBOL; break; case MamaStatus.mamaStatus.MAMA_STATUS_TIMEOUT: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_TIMEOUT; break; case MamaStatus.mamaStatus.MAMA_STATUS_NOT_ENTITLED: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_NOT_ENTITLED; break; case MamaStatus.mamaStatus.MAMA_STATUS_NOT_FOUND: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_NOT_FOUND; break; case MamaStatus.mamaStatus.MAMA_STATUS_NO_SUBSCRIBERS: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_NO_SUBSCRIBERS; break; case MamaStatus.mamaStatus.MAMA_STATUS_EXPIRED: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_EXPIRED; break; case MamaStatus.mamaStatus.MAMA_STATUS_NOT_PERMISSIONED: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_NOT_PERMISSIONED; break; case MamaStatus.mamaStatus.MAMA_STATUS_BANDWIDTH_EXCEEDED: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_BANDWIDTH_EXCEEDED; break; case MamaStatus.mamaStatus.MAMA_STATUS_DELETE: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_DELETE; break; case MamaStatus.mamaStatus.MAMA_STATUS_PLATFORM: default: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_PLATFORM_STATUS; break; } for (int i=0;i<mSubscription.mErrorListeners.Count;i++) { MamdaErrorListener listener = (MamdaErrorListener) mSubscription.mErrorListeners[i]; listener.onError( mSubscription, severity, code, MamdaErrorCodes.stringForMamdaError(code)); } }
public void onMsg(MamaSubscription subscription, MamaMsg msg) { if (msg.getType() == mamaMsgType.MAMA_MSG_TYPE_INITIAL) { stats.mInitialMsgCount++; } else stats.mOtherMsgCount++; if (mamaLogLevel > MamaLogLevel.MAMA_LOG_LEVEL_NORMAL) { Console.WriteLine("msg.getSymbol msg.getStatus"); } }
private static void subscribeToSubjects() { int howMany = 0; queueGroup = new MamaQueueGroup (myBridge, numThreads); /* Subscribe to all symbols parsed from the symbol list */ for (IEnumerator enumerator = subjectList.GetEnumerator(); enumerator.MoveNext();) { string symbol = (string) enumerator.Current; MamaSubscription subscription = new MamaSubscription (); subscription.create ( queueGroup.getNextQueue (), subscriptionCallback, mySource, symbol, null); subscriptions.Add (subscription); if (++howMany % 1000 == 0) { Console.WriteLine ("Subscribed to " + howMany + " symbols."); } } }
public void onError(MamaSubscription subscription, MamaStatus.mamaStatus status, string subject) { Console.WriteLine("Error creating subscription: {0}", MamaStatus.stringForStatus(status)); Exit(1); }
public void onDestroy( MamaSubscription subscription) { subscription.deallocate(); mSubscription = null; }
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> /// Activate the subscription. Until this method is invoked, no /// updates will be received. /// </summary> public void activate() { if (mSubscription != null) return; mSubscription = new MamaSubscription(); mSubscription.setSubscriptionType(mType); mSubscription.setServiceLevel(mServiceLevel, mServiceLevelOpt); mSubscription.setRequiresInitial(mRequireInitial); mSubscription.setRetries(mRetries); mSubscription.setTimeout(mTimeout); mMamaSource.transport = mTransport; mMamaSource.symbolNamespace = mSource; mSubscription.create( mQueue, new MamdaSubscriptionCallback(this), mMamaSource, mSymbol, null); }
public void onMsg( MamaSubscription subscription, MamaMsg msg) { mamaMsgType msgType = msg.typeForMsg(); mamaMsgStatus msgStatus = msg.getStatus(); switch (msgType) { case mamaMsgType.MAMA_MSG_TYPE_DELETE: case mamaMsgType.MAMA_MSG_TYPE_EXPIRE: subscription.deallocate(); return; } switch (msgStatus) { case mamaMsgStatus.MAMA_MSG_STATUS_BAD_SYMBOL: case mamaMsgStatus.MAMA_MSG_STATUS_EXPIRED: case mamaMsgStatus.MAMA_MSG_STATUS_TIMEOUT: subscription.deallocate(); return; } for (int i=0;i<mSubscription.mMsgListeners.Count;i++) { MamdaMsgListener listener = (MamdaMsgListener) mSubscription.mMsgListeners[i]; listener.onMsg(mSubscription, msg, msgType); } }
public void onRecapRequest (MamaSubscription subscription) { }
public void onMsg (MamaSubscription subscription, MamaMsg msg) { switch (msg.getType()) { case mamaMsgType.MAMA_MSG_TYPE_INITIAL: char[] delimiter = {','}; string newSymbols = msg.getString (MamaReservedFields.SymbolList.getName(), (ushort)MamaReservedFields.SymbolList.getFid()); string[] parsedSymbols = newSymbols.Split(delimiter); for (int i=0; i<parsedSymbols.Length; i++) { subjectList.Add ((Object)parsedSymbols[i]); } Console.WriteLine("Received initial for symbol list subscription. Updating list of symbols to subscribe to.\n"); break; case mamaMsgType.MAMA_MSG_TYPE_END_OF_INITIALS: Console.WriteLine("End of initials. Subscribing to symbols.\n"); subscribeToSubjects(); break; default: break; } }
public void onRecapRequest (MamaSubscription subscription) { Console.WriteLine (subscription.subscSymbol + ": recap requested "); }
/* ************************************************************** */ #region Internal Operations /// <summary> /// This function creates a new impl and returns an IntPtr that can then be passed to /// the native layer. /// </summary> /// <param name="callback"> /// The user callback implementation, can be an instance of the MamaSubscriptionCallbackEx /// interface to receive destroy notifications. /// </param> /// <param name="closure"> /// The closure supplied to the MamaSubscription.create function. /// </param> /// <param name="subscription"> /// The actual C# subscription object. /// </param> /// <returns> /// The IntPtr that can then be used for the closure. /// </returns> internal static IntPtr Create(MamaSubscriptionCallback callback, object closure, MamaSubscription subscription) { // Allocate a new impl MamaSubscriptionImpl impl = new MamaSubscriptionImpl(callback, closure, subscription); // Create a GC handle GCHandle handle = GCHandle.Alloc(impl); // Return the native pointer return((IntPtr)handle); }
public void onRecapRequest(MamaSubscription subscription) { Console.WriteLine("Subscription recap request"); }
public void onTimer(MamaTimer mamaTimer, object closure) { mamaTimer.destroy(); // Only continue if the application is not shutting down bool shuttingDown = m_killEvent.WaitOne(0, false); if (!shuttingDown) { int i = (int)closure; mamaSubscriptions[i].destroy(); mamaSubscriptions[i] = new MamaSubscription(); mamaSubscriptions[i].setServiceLevel(mamaServiceLevel.MAMA_SERVICE_LEVEL_REAL_TIME); mamaSubscriptions[i].setSubscriptionType(mamaSubscriptionType.MAMA_SUBSC_TYPE_NORMAL); mamaSubscriptions[i].setTimeout(10); mamaSubscriptions[i].setRetries(3); mamaSubscriptions[i].setRequiresInitial(true); mamaSubscriptions[i].create( mamaQueueGroup == null ? mamaDefaultQueue : mamaQueueGroup.getNextQueue(), this, mamaSource, mamaSymbols[i]); stats.mRecreates++; } }
public void onQuality( MamaSubscription subscription, mamaQuality quality, string symbol) { for (int i=0;i<mSubscription.mStaleListeners.Count;i++) { MamdaStaleListener listener = (MamdaStaleListener) mSubscription.mStaleListeners[i]; listener.onStale(mSubscription, quality); } }
public void onDestroy(MamaSubscription subscription) { }
public void onGap (MamaSubscription subscription) { Console.WriteLine (subscription.subscSymbol + ": gap detected "); }
public void onError(MamaSubscription subscription, MamaStatus.mamaStatus status, string subject) { Console.WriteLine("Subscription error:" + subject); }
public void onMsg(MamaSubscription subscription, MamaMsg msg) { Console.WriteLine("Received msg:"); displayAllFields(msg); }
private void createSubscriptions() { mamaSource = new MamaSource(); mamaSource.symbolNamespace = mamaSourceName; mamaSource.transport = mamaTransport; for (int i = 0; i < mamaNumSymbols; i++) { mamaSubscriptions[i] = new MamaSubscription(); mamaSubscriptions[i].setServiceLevel(mamaServiceLevel.MAMA_SERVICE_LEVEL_REAL_TIME); mamaSubscriptions[i].setSubscriptionType(mamaSubscriptionType.MAMA_SUBSC_TYPE_NORMAL); mamaSubscriptions[i].setTimeout(10); mamaSubscriptions[i].setRetries(3); mamaSubscriptions[i].setRequiresInitial(true); mamaSubscriptions[i].create( mamaQueueGroup == null ? mamaDefaultQueue : mamaQueueGroup.getNextQueue(), this, mamaSource, mamaSymbols[i]); } }
public void onCreate (MamaSubscription subscription) { if (quietness < 1) { Console.WriteLine("Created symbol list subscription.\n"); } }
/// <summary> /// Subscription callbacks /// </summary> /// <param name="args"></param> //////////////////////////////////////////////////////////////////////////////////// public void onCreate(MamaSubscription subscription) { stats.mCreateMsgCount++; }
public void onError( MamaSubscription subscription, MamaStatus.mamaStatus status, string subject) { MamdaErrorSeverity severity = MamdaErrorSeverity.MAMDA_SEVERITY_OK; MamdaErrorCode code = MamdaErrorCode.MAMDA_NO_ERROR; switch (status) { case MamaStatus.mamaStatus.MAMA_STATUS_BAD_SYMBOL: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_BAD_SYMBOL; break; case MamaStatus.mamaStatus.MAMA_STATUS_TIMEOUT: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_TIMEOUT; break; case MamaStatus.mamaStatus.MAMA_STATUS_NOT_ENTITLED: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_NOT_ENTITLED; break; case MamaStatus.mamaStatus.MAMA_STATUS_NOT_FOUND: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_NOT_FOUND; break; case MamaStatus.mamaStatus.MAMA_STATUS_NO_SUBSCRIBERS: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_NO_SUBSCRIBERS; break; case MamaStatus.mamaStatus.MAMA_STATUS_EXPIRED: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_EXPIRED; break; case MamaStatus.mamaStatus.MAMA_STATUS_NOT_PERMISSIONED: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_NOT_PERMISSIONED; break; case MamaStatus.mamaStatus.MAMA_STATUS_BANDWIDTH_EXCEEDED: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_BANDWIDTH_EXCEEDED; break; case MamaStatus.mamaStatus.MAMA_STATUS_DELETE: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_DELETE; break; case MamaStatus.mamaStatus.MAMA_STATUS_PLATFORM: default: severity = MamdaErrorSeverity.MAMDA_SEVERITY_HIGH; code = MamdaErrorCode.MAMDA_ERROR_PLATFORM_STATUS; break; } for (int i = 0; i < mSubscription.mErrorListeners.Count; i++) { MamdaErrorListener listener = (MamdaErrorListener)mSubscription.mErrorListeners[i]; listener.onError( mSubscription, severity, code, MamdaErrorCodes.stringForMamdaError(code)); } }
public void onError(MamaSubscription subscription, MamaStatus.mamaStatus status, string subject) { stats.mErrorCount++; }
public void onGap( MamaSubscription subscription) { }
public void onDestroy( MamaSubscription subscription) { }
private void createSubscriber (MamaBridge bridge) { MamaSubscription mamaSubscription = new MamaSubscription(); MamaTransport mamaTransport = new MamaTransport(); MamaQueue mamaDefaultQueue = Mama.getDefaultEventQueue(bridge); Dispatcher dispatcher = new Dispatcher(bridge); mamaTransport = new MamaTransport(); mamaTransport.setTransportCallback(this); mamaTransport.create(transportName, bridge); mamaSubscription = new MamaSubscription(); mamaSubscription.createBasic( mamaTransport, mamaDefaultQueue, this, // callback topicName); Console.WriteLine("Starting mama..."); mamaSubscriptions.Add(mamaSubscription); mamaTransports.Add(mamaTransport); Thread startThread = new Thread (new ThreadStart(dispatcher.dispatch)); startThread.Start(); }