private final List<ActorSelection> alternates;
private final DataTree dataTree;
private final ActorRef backend;
+ private final long maxMessages;
ConnectClientSuccess(final ClientIdentifier target, final ActorRef backend, final List<ActorSelection> alternates,
- final Optional<DataTree> dataTree) {
+ final Optional<DataTree> dataTree, final long maxMessages) {
super(target);
this.backend = Preconditions.checkNotNull(backend);
this.alternates = ImmutableList.copyOf(alternates);
this.dataTree = dataTree.orElse(null);
+ Preconditions.checkArgument(maxMessages > 0, "Maximum messages has to be positive, not %s", maxMessages);
+ this.maxMessages = maxMessages;
}
public ConnectClientSuccess(final @Nonnull ClientIdentifier target, final @Nonnull ActorRef backend,
- final @Nonnull List<ActorSelection> alternates,
- final @Nonnull DataTree dataTree) {
- this(target, backend, alternates, Optional.of(dataTree));
+ final @Nonnull List<ActorSelection> alternates, final @Nonnull DataTree dataTree, final long maxMessages) {
+ this(target, backend, alternates, Optional.of(dataTree), maxMessages);
}
/**
return Optional.ofNullable(dataTree);
}
+ public long getMaxMessages() {
+ return maxMessages;
+ }
+
@Override
protected ConnectClientSuccessProxyV1 externalizableProxy(final ABIVersion version) {
return new ConnectClientSuccessProxyV1(this);
private List<ActorSelection> alternates;
private ActorRef backend;
+ private long maxMessages;
public ConnectClientSuccessProxyV1() {
// For Externalizable
for (ActorSelection b : alternates) {
out.writeObject(b.toSerializationFormat());
}
+
+ out.writeLong(maxMessages);
}
@Override
for (int i = 0; i < backendsSize; ++i) {
alternates.add(ActorSelection.apply(ActorRef.noSender(), (String)in.readObject()));
}
+
+ maxMessages = in.readLong();
}
@Override
protected ConnectClientSuccess createSuccess(final ClientIdentifier target) {
- return new ConnectClientSuccess(target, backend, alternates, Optional.empty());
+ return new ConnectClientSuccess(target, backend, alternates, Optional.empty(), maxMessages);
}
@Override