};
}
@Override
public SubscriptionDataManager newSubscriptionDataManager() {
final SubscriptionDataManager sdm = factory.newSubscriptionDataManager();
return new SubscriptionDataManager() {
@Override
public void close() throws IOException {
sdm.close();
}
@Override
public void createSubscriptionData(ByteString topic, ByteString subscriberId, SubscriptionData data,
Callback<Version> callback, Object ctx) {
sdm.createSubscriptionData(topic, subscriberId, data, callback, ctx);
}
@Override
public boolean isPartialUpdateSupported() {
return sdm.isPartialUpdateSupported();
}
@Override
public void updateSubscriptionData(ByteString topic, ByteString subscriberId,
SubscriptionData dataToUpdate, Version version, Callback<Version> callback, Object ctx) {
if (serviceDownCount > 0) {
--serviceDownCount;
callback.operationFailed(ctx,
new PubSubException.ServiceDownException("Metadata Store is down"));
return;
}
sdm.updateSubscriptionData(topic, subscriberId, dataToUpdate, version, callback, ctx);
}
@Override
public void replaceSubscriptionData(ByteString topic, ByteString subscriberId,
SubscriptionData dataToReplace, Version version, Callback<Version> callback, Object ctx) {
if (serviceDownCount > 0) {
--serviceDownCount;
callback.operationFailed(ctx,
new PubSubException.ServiceDownException("Metadata Store is down"));
return;
}
sdm.replaceSubscriptionData(topic, subscriberId, dataToReplace, version, callback, ctx);
}
@Override
public void deleteSubscriptionData(ByteString topic, ByteString subscriberId, Version version,
Callback<Void> callback, Object ctx) {
sdm.deleteSubscriptionData(topic, subscriberId, version, callback, ctx);
}
@Override
public void readSubscriptionData(ByteString topic, ByteString subscriberId,
Callback<Versioned<SubscriptionData>> callback, Object ctx) {
sdm.readSubscriptionData(topic, subscriberId, callback, ctx);
}
@Override
public void readSubscriptions(ByteString topic,
Callback<Map<ByteString, Versioned<SubscriptionData>>> cb, Object ctx) {
sdm.readSubscriptions(topic, cb, ctx);
}
};
}