@Override public void preStart() throws Exception { remotePublisher = getContext().actorSelection(urlOfPublisher); remotePublisher.tell(new SubscribeReceiver(getSelf()), getSelf()); }
@SuppressWarnings("unchecked") @Override public void onReceive(Object message) throws Exception { if (message instanceof Iterable) { collect((Iterable<Object>) message); } else if (message instanceof Tuple2) { Tuple2<Object, Long> messageTuple = (Tuple2<Object, Long>) message; collect(messageTuple.f0, messageTuple.f1); } else { collect(message); } if (autoAck) { getSender().tell("ack", getSelf()); } }
@Override public boolean equals(Object obj) { if (obj instanceof SubscribeReceiver) { SubscribeReceiver other = (SubscribeReceiver) obj; return other.canEquals(this) && super.equals(other) && receiverActor.equals(other.getReceiverActor()); } else { return false; } }
@Override public void onReceive(Object message) { if (message instanceof SubscribeReceiver) { ActorRef receiver = ((SubscribeReceiver) message).getReceiverActor(); Object data; switch (messageType) { case SINGLE_DATA: data = createSingleDataMessage(); break; case ITERABLE_DATA: data = createIterableOfMessages(); break; case BYTES_DATA: data = createByteMessages(); break; case SINGLE_DATA_WITH_TIMESTAMP: data = createTimestampMessage(); break; default: throw new RuntimeException("Message format specified is incorrect"); } receiver.tell(data, getSelf()); } else if (message instanceof String) { Message.ACK_MESSAGE = message.toString(); } else if (message instanceof UnsubscribeReceiver) { LOG.info("Stop actor!"); } }
@Override public boolean equals(Object obj) { if (obj instanceof UnsubscribeReceiver) { UnsubscribeReceiver other = (UnsubscribeReceiver) obj; return other.canEquals(this) && super.equals(other) && receiverActor.equals(other.getReceiverActor()); } else { return false; } }
@Override public void postStop() throws Exception { remotePublisher.tell(new UnsubscribeReceiver(ActorRef.noSender()), ActorRef.noSender()); } }
@Override public void onReceive(Object message) { if (message instanceof SubscribeReceiver) { ActorRef receiver = ((SubscribeReceiver) message).getReceiverActor(); Object data; switch (messageType) { case SINGLE_DATA: data = createSingleDataMessage(); break; case ITERABLE_DATA: data = createIterableOfMessages(); break; case BYTES_DATA: data = createByteMessages(); break; case SINGLE_DATA_WITH_TIMESTAMP: data = createTimestampMessage(); break; default: throw new RuntimeException("Message format specified is incorrect"); } receiver.tell(data, getSelf()); } else if (message instanceof String) { Message.ACK_MESSAGE = message.toString(); } else if (message instanceof UnsubscribeReceiver) { LOG.info("Stop actor!"); } }
@Override public void preStart() throws Exception { remotePublisher = getContext().actorSelection(urlOfPublisher); remotePublisher.tell(new SubscribeReceiver(getSelf()), getSelf()); }
@SuppressWarnings("unchecked") @Override public void onReceive(Object message) throws Exception { if (message instanceof Iterable) { collect((Iterable<Object>) message); } else if (message instanceof Tuple2) { Tuple2<Object, Long> messageTuple = (Tuple2<Object, Long>) message; collect(messageTuple.f0, messageTuple.f1); } else { collect(message); } if (autoAck) { getSender().tell("ack", getSelf()); } }
@Override public boolean equals(Object obj) { if (obj instanceof SubscribeReceiver) { SubscribeReceiver other = (SubscribeReceiver) obj; return other.canEquals(this) && super.equals(other) && receiverActor.equals(other.getReceiverActor()); } else { return false; } }
@Override public boolean equals(Object obj) { if (obj instanceof UnsubscribeReceiver) { UnsubscribeReceiver other = (UnsubscribeReceiver) obj; return other.canEquals(this) && super.equals(other) && receiverActor.equals(other.getReceiverActor()); } else { return false; } }
@Override public void postStop() throws Exception { remotePublisher.tell(new UnsubscribeReceiver(ActorRef.noSender()), ActorRef.noSender()); } }