Skip to content
Snippets Groups Projects
TcpReaderActor.java 1.51 KiB
Newer Older
Christian Wulf's avatar
Christian Wulf committed
package kiekerdays.tcpreader;

import kieker.common.record.IMonitoringRecord;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import akka.actor.ActorRef;
import akka.actor.Props;
import akka.actor.UntypedActor;

public class TcpReaderActor extends UntypedActor {

	private static final Logger LOGGER = LoggerFactory.getLogger(TcpReaderActor.class);

	private ActorRef tcpTraceReconstructionActor;

	private TcpReader tcpReader = new TcpReader() {
		@Override
		protected final void send(IMonitoringRecord record) {
			tcpTraceReconstructionActor.tell(record, getSelf());
		};
	};

	public TcpReaderActor(Props tcpTraceReconstructionProps) {
		super();
		this.tcpTraceReconstructionActor = context().actorOf(tcpTraceReconstructionProps);
	}

	@Override
	public void onReceive(Object message) throws Exception {
		// if (message instanceof ) {
		//
		// } else if () {
		//
		// } else {
		// unhandled(message);
		// }
		LOGGER.debug("Message: " + message.getClass().getName());
		try {
			tcpReader.onStarting();
			tcpReader.execute();
			tcpReader.onTerminating();
		} catch (Exception e) {
			LOGGER.error("Exception while executing TcpReader.", e);
		}
		// context().stop(getSelf());
		// getSelf().tell(PoisonPill.getInstance(), getSelf());
		// tcpTraceReconstructionActor.tell(PoisonPill.getInstance(), getSelf());
		// context().parent().tell(PoisonPill.getInstance(), getSelf());
		// context().system().terminate();
	}

	@Override
	public void postStop() throws Exception {
		LOGGER.info("stopped");
		super.postStop();
	}

}