AllJoynUnity.AllJoyn.BusAttachment.AddMatch C# (CSharp) Method

AddMatch() public method

public AddMatch ( string rule ) : QStatus
rule string
return QStatus
            public QStatus AddMatch(string rule)
            {
                return alljoyn_busattachment_addmatch(_busAttachment, rule);
            }

Usage Example

		public void UnregisterSignalHandler()
		{
			AllJoyn.QStatus status = AllJoyn.QStatus.FAIL;

			// create bus attachment
			AllJoyn.BusAttachment bus = null;
			bus = new AllJoyn.BusAttachment("BusAttachmentTest", true);
			Assert.NotNull(bus);

			// create the interface description
			AllJoyn.InterfaceDescription testIntf = null;
			status = bus.CreateInterface("org.alljoyn.test.BusAttachment", out testIntf);
			Assert.Equal(AllJoyn.QStatus.OK, status);
			Assert.NotNull(testIntf);

			// add the signal member to the interface
			status = testIntf.AddSignal("testSignal", "s", "msg", 0);
			Assert.Equal(AllJoyn.QStatus.OK, status);

			// activate the interface
			testIntf.Activate();

			// start the bus attachment
			status = bus.Start();
			Assert.Equal(AllJoyn.QStatus.OK, status);

			// connect to the bus
			status = bus.Connect(AllJoynTestCommon.GetConnectSpec());
			Assert.Equal(AllJoyn.QStatus.OK, status);

			// create the bus object &
			// add the interface to the bus object
			TestBusObject testBusObject = new TestBusObject(bus, "/test");
			bus.RegisterBusObject(testBusObject);

			// get the signal member from the interface description
			AllJoyn.InterfaceDescription.Member testSignalMember = testIntf.GetMember("testSignal");

			// register both signal handlers
			status = bus.RegisterSignalHandler(this.TestSignalHandlerOne, testSignalMember, null);
			Assert.Equal(AllJoyn.QStatus.OK, status);
			status = bus.RegisterSignalHandler(this.TestSignalHandlerTwo, testSignalMember, null);
			Assert.Equal(AllJoyn.QStatus.OK, status);

			// add match for the signal
			status = bus.AddMatch("type='signal',member='testSignal'");
			Assert.Equal(AllJoyn.QStatus.OK, status);

			handledSignalsOne = false;
			handledSignalsTwo = false;
			signalOneMsg = null;
			signalTwoMsg = null;

			// send a signal
			testBusObject.SendTestSignal("test msg");

			WaitEventOne(TimeSpan.FromSeconds(2));
			WaitEventTwo(TimeSpan.FromSeconds(2));

			// make sure that both handlers got the signal
			Assert.Equal(true, handledSignalsOne);
			Assert.Equal("test msg", signalOneMsg);
			Assert.Equal(true, handledSignalsTwo);
			Assert.Equal("test msg", signalTwoMsg);

			// now unregister one handler & make sure it doesn't receive the signal
			handledSignalsOne = false;
			handledSignalsTwo = false;
			signalOneMsg = null;
			signalTwoMsg = null;

			status = bus.UnregisterSignalHandler(this.TestSignalHandlerOne, testSignalMember, null);
			Assert.Equal(AllJoyn.QStatus.OK, status);

			// send another signal
			testBusObject.SendTestSignal("test msg");

			// wait to see if we receive the signal
			WaitEventTwo(TimeSpan.FromSeconds(2));

			// make sure that only the second handler got the signal
			Assert.Equal(false, handledSignalsOne);
			Assert.Null(signalOneMsg);
			Assert.Equal(true, handledSignalsTwo);
			Assert.Equal("test msg", signalTwoMsg);

			// TODO: move these into a teardown method?
			bus.Dispose();
		}
All Usage Examples Of AllJoynUnity.AllJoyn.BusAttachment::AddMatch
AllJoyn.BusAttachment