コード例 #1
0
 // Subscription Callbacks
 public void onCreate(MamaSubscription subscription)
 {
     if (!quiet)
     {
         Console.WriteLine("Created inbound subscription.");
     }
 }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 public void onQuality(MamaSubscription subscription, mamaQuality quality, string symbol)
 {
     if (!quiet)
     {
         Console.WriteLine("Subscription {0} quality changed to {1}", symbol, quality);
     }
 }
コード例 #4
0
		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);
			}
		}
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        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();
        }
コード例 #7
0
 /// <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;
     }
 }
コード例 #8
0
            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);
                }
            }
コード例 #9
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);
        }
コード例 #10
0
ファイル: MamaSubscriberCS.cs プロジェクト: varauder/OpenMAMA
        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);
            }
        }
コード例 #11
0
ファイル: MamaPublisherCS.cs プロジェクト: jacobraj/MAMA
        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;
        }
コード例 #12
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;
            }
コード例 #13
0
 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);
     }
 }
コード例 #14
0
        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);
        }
コード例 #15
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));
                }
            }
コード例 #16
0
        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);
        }
コード例 #17
0
			/*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);
			}
コード例 #18
0
 public void onQuality(MamaSubscription subscription,
                       mamaQuality quality, string symbol)
 {
     Console.WriteLine("Subscription quality:" + (int)quality);
 }
コード例 #19
0
 public void onGap(MamaSubscription subscription)
 {
     Console.WriteLine("Subscription gap");
 }
コード例 #20
0
ファイル: MamdaSubscription.cs プロジェクト: jacobraj/MAMA
			public void onGap (
				MamaSubscription  subscription)
			{
			}
コード例 #21
0
 // Subscription callbacks
 public void onCreate(MamaSubscription subscription)
 {
     Console.WriteLine("onCreate, " + subscription.subscSymbol);
 }
コード例 #22
0
ファイル: MamdaSubscription.cs プロジェクト: jacobraj/MAMA
            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));
                }
            }
コード例 #23
0
ファイル: MamaChurnCS.cs プロジェクト: jacobraj/MAMA
        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");
            }
        }
コード例 #24
0
		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.");
				}
			}
		}
コード例 #25
0
 public void onError(MamaSubscription subscription, MamaStatus.mamaStatus status, string subject)
 {
     Console.WriteLine("Error creating subscription: {0}", MamaStatus.stringForStatus(status));
     Exit(1);
 }
コード例 #26
0
 public void onDestroy(
     MamaSubscription subscription)
 {
     subscription.deallocate();
     mSubscription = null;
 }
コード例 #27
0
ファイル: MamdaMultiPartTicker.cs プロジェクト: jacobraj/MAMA
        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;
            }
        }
コード例 #28
0
ファイル: MamdaSubscription.cs プロジェクト: jacobraj/MAMA
		/// <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);
		}
コード例 #29
0
ファイル: MamdaSubscription.cs プロジェクト: jacobraj/MAMA
			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);
				}
			}
コード例 #30
0
ファイル: MamdaSubscription.cs プロジェクト: jacobraj/MAMA
			public void onRecapRequest
				(MamaSubscription subscription)
			{
			}
コード例 #31
0
			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;
				}
			}
コード例 #32
0
			public void onRecapRequest (MamaSubscription subscription)
			{
				Console.WriteLine (subscription.subscSymbol + ": recap requested ");
			}
コード例 #33
0
            /* ************************************************************** */
            #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);
            }
コード例 #34
0
ファイル: MamaChurnCS.cs プロジェクト: jacobraj/MAMA
 public void onRecapRequest(MamaSubscription subscription)
 {
     Console.WriteLine("Subscription recap request");
 }
コード例 #35
0
ファイル: MamaChurnCS.cs プロジェクト: jacobraj/MAMA
 public void onQuality(MamaSubscription subscription,
     mamaQuality quality,
     string symbol)
 {
     Console.WriteLine("Subscription quality:" + (int)quality);
 }
コード例 #36
0
ファイル: MamaChurnCS.cs プロジェクト: jacobraj/MAMA
        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++;
            }
        }
コード例 #37
0
ファイル: MamaChurnCS.cs プロジェクト: jacobraj/MAMA
 public void onGap(MamaSubscription subscription)
 {
     Console.WriteLine("Subscription gap");
 }
コード例 #38
0
ファイル: MamdaSubscription.cs プロジェクト: jacobraj/MAMA
			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);
				}
			}
コード例 #39
0
ファイル: MamaChurnCS.cs プロジェクト: jacobraj/MAMA
 public void onDestroy(MamaSubscription subscription)
 {
 }
コード例 #40
0
 public void onRecapRequest
     (MamaSubscription subscription)
 {
 }
コード例 #41
0
			public void onGap (MamaSubscription subscription)
			{
				Console.WriteLine (subscription.subscSymbol + ": gap detected ");
			}
コード例 #42
0
		// Subscription callbacks
		public void onCreate(MamaSubscription subscription)
		{
			Console.WriteLine("onCreate, " + subscription.subscSymbol);
		}
コード例 #43
0
 public void onError(MamaSubscription subscription,
                     MamaStatus.mamaStatus status, string subject)
 {
     Console.WriteLine("Subscription error:" + subject);
 }
コード例 #44
0
		public void onError(MamaSubscription subscription,
			MamaStatus.mamaStatus status, string subject)
		{
			Console.WriteLine("Subscription error:" + subject);
		}
コード例 #45
0
 public void onMsg(MamaSubscription subscription, MamaMsg msg)
 {
     Console.WriteLine("Received msg:");
     displayAllFields(msg);
 }
コード例 #46
0
		public void onMsg(MamaSubscription subscription, MamaMsg msg)
		{
			Console.WriteLine("Received msg:");
			displayAllFields(msg);
		}
コード例 #47
0
 public void onRecapRequest(MamaSubscription subscription)
 {
     Console.WriteLine("Subscription recap request");
 }
コード例 #48
0
ファイル: MamaChurnCS.cs プロジェクト: jacobraj/MAMA
        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]);
            }
        }
コード例 #49
0
			public void onCreate (MamaSubscription subscription)
			{
				if (quietness < 1)
				{
					Console.WriteLine("Created symbol list subscription.\n");
				}    
			}
コード例 #50
0
ファイル: MamaChurnCS.cs プロジェクト: jacobraj/MAMA
        /// <summary>
        /// Subscription callbacks
        /// </summary>
        /// <param name="args"></param>
        ////////////////////////////////////////////////////////////////////////////////////      

        public void onCreate(MamaSubscription subscription)
        {
            stats.mCreateMsgCount++;
        }
コード例 #51
0
            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));
                }
            }
コード例 #52
0
ファイル: MamaChurnCS.cs プロジェクト: jacobraj/MAMA
 public void onError(MamaSubscription subscription,
     MamaStatus.mamaStatus status,
     string subject)
 {
     stats.mErrorCount++;
 }
コード例 #53
0
 public void onGap(
     MamaSubscription subscription)
 {
 }
コード例 #54
0
ファイル: MamdaSubscription.cs プロジェクト: jacobraj/MAMA
			/// <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;
				}
			}
コード例 #55
0
 public void onDestroy(
     MamaSubscription subscription)
 {
 }
コード例 #56
0
		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();
		}