Hie.Core.ApplicationHost.PushPipelineData C# (CSharp) Method

PushPipelineData() public method

public PushPipelineData ( IEndpoint endpoint, Message message ) : void
endpoint IEndpoint
message Message
return void
		public void PushPipelineData(IEndpoint endpoint, Message message)
		{
			Queue<IPipelineComponent> pipeline;
			if (!_pipelines.TryGetValue(endpoint, out pipeline))
			{
				//TODO: Temporary for testing
				endpoint.ProcessMessage(endpoint, message.GetBytes());
			}
			else
			{
				byte[] data = null;
				foreach (IAssembler component in pipeline.OfType<IAssembler>())
				{
					component.AddMessage(message);
					data = component.Assemble();

					// Decide what to do if data is returned.
					// Right now, we break out and go to encoders
					if (data != null) break;
				}

				if (data == null) data = message.GetBytes();

				foreach (IEncoder component in pipeline.OfType<IEncoder>())
				{
					data = component.Encode(data);
				}

				if (data != null)
				{
					endpoint.ProcessMessage(endpoint, data);
				}
			}
		}
	}

Same methods

ApplicationHost::PushPipelineData ( IEndpoint endpoint, byte data ) : void