return factory.getTopics();
}
@Override
public TopicPersistenceManager newTopicPersistenceManager() {
final TopicPersistenceManager manager = factory.newTopicPersistenceManager();
return new TopicPersistenceManager() {
@Override
public void close() throws IOException {
manager.close();
}
@Override
public void readTopicPersistenceInfo(ByteString topic,
Callback<Versioned<LedgerRanges>> callback, Object ctx) {
if (serviceDownCount > 0) {
--serviceDownCount;
callback.operationFailed(ctx, new PubSubException.ServiceDownException("Metadata Store is down"));
return;
}
manager.readTopicPersistenceInfo(topic, callback, ctx);
}
@Override
public void writeTopicPersistenceInfo(ByteString topic, LedgerRanges ranges, Version version,
Callback<Version> callback, Object ctx) {
if (serviceDownCount > 0) {
--serviceDownCount;
callback.operationFailed(ctx, new PubSubException.ServiceDownException("Metadata Store is down"));
return;
}
manager.writeTopicPersistenceInfo(topic, ranges, version, callback, ctx);
}
@Override
public void deleteTopicPersistenceInfo(ByteString topic, Version version,
Callback<Void> callback, Object ctx) {
if (serviceDownCount > 0) {
--serviceDownCount;
callback.operationFailed(ctx, new PubSubException.ServiceDownException("Metadata Store is down"));
return;
}
manager.deleteTopicPersistenceInfo(topic, version, callback, ctx);
}
};
}