This field will act as a hint on how many messages may
be queued by the frontend towards the backend at any
given time.
Change-Id: Ibb8bbe2af9595bc0ecee090acea35aa78a9250b7
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
a73c52b4740be611728b4f9c70c67b2b36cf3916)
private final List<ActorSelection> alternates;
private final DataTree dataTree;
private final ActorRef backend;
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,
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);
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,
}
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);
}
return Optional.ofNullable(dataTree);
}
+ public long getMaxMessages() {
+ return maxMessages;
+ }
+
@Override
protected ConnectClientSuccessProxyV1 externalizableProxy(final ABIVersion version) {
return new ConnectClientSuccessProxyV1(this);
@Override
protected ConnectClientSuccessProxyV1 externalizableProxy(final ABIVersion version) {
return new ConnectClientSuccessProxyV1(this);
private List<ActorSelection> alternates;
private ActorRef backend;
private List<ActorSelection> alternates;
private ActorRef backend;
+ private long maxMessages;
public ConnectClientSuccessProxyV1() {
// For Externalizable
public ConnectClientSuccessProxyV1() {
// For Externalizable
for (ActorSelection b : alternates) {
out.writeObject(b.toSerializationFormat());
}
for (ActorSelection b : alternates) {
out.writeObject(b.toSerializationFormat());
}
+
+ out.writeLong(maxMessages);
for (int i = 0; i < backendsSize; ++i) {
alternates.add(ActorSelection.apply(ActorRef.noSender(), (String)in.readObject()));
}
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) {
}
@Override
protected ConnectClientSuccess createSuccess(final ClientIdentifier target) {
- return new ConnectClientSuccess(target, backend, alternates, Optional.empty());
+ return new ConnectClientSuccess(target, backend, alternates, Optional.empty(), maxMessages);