GladNet.Message.RequestMessage.Push C# (CSharp) Method

Push() public method

Pushes a new routing key into the message. This key indicates where a message to this message should be routed back to.
public Push ( int routingKey ) : void
routingKey int Unique routing key.
return void
		public void Push(int routingKey)
		{
			lock (syncObj)
			{
				if (_routingCodeStack == null)
					_routingCodeStack = new Stack<int>(1); //most will only need a depth of 2 routing so only 1 slot is needed

				_routingCodeStack.Push(routingKey);
			}
		}

Usage Example

		public static void Test_Serialized_Stack_Results_In_Same_Order()
		{
			ProtobufnetRegistry registry = new ProtobufnetRegistry();

			registry.Register(typeof(NetworkMessage));
			registry.Register(typeof(RequestMessage));
			registry.Register(typeof(EventMessage));
			registry.Register(typeof(ResponseMessage));


			RequestMessage message = new RequestMessage(new StatusChangePayload(Common.NetStatus.Connected));
			message.Push(1);
			message.Push(2);
			message.Push(3);
			message.Push(4);

			ProtobufnetSerializerStrategy serializer = new ProtobufnetSerializerStrategy();

			Assert.NotNull((new ProtobufnetDeserializerStrategy()).Deserialize<RequestMessage>(serializer.Serialize(message as NetworkMessage)));
			RequestMessage deserializedMessage = (new ProtobufnetDeserializerStrategy()).Deserialize<RequestMessage>(serializer.Serialize(message as NetworkMessage));

			//check that the stack is in the same order
			Assert.AreEqual(message.Pop(), deserializedMessage.Pop());
			Assert.AreEqual(message.Pop(), deserializedMessage.Pop());
			Assert.AreEqual(message.Pop(), deserializedMessage.Pop());
			Assert.AreEqual(message.Pop(), deserializedMessage.Pop());
		}
All Usage Examples Of GladNet.Message.RequestMessage::Push