@Override public BsonTimestamp getOperationTime() { return wrapped.getOperationTime(); }
private static boolean shouldAddAfterClusterTime(final SessionContext sessionContext) { return sessionContext.isCausallyConsistent() && sessionContext.getOperationTime() != null; }
ChangeStreamBatchCursor(final ChangeStreamOperation<T> changeStreamOperation, final BatchCursor<RawBsonDocument> wrapped, final ReadBinding binding) { changeStreamOperation.startOperationTimeForResume(binding.getSessionContext().getOperationTime()); this.changeStreamOperation = changeStreamOperation; this.resumeToken = changeStreamOperation.getResumeToken(); this.wrapped = wrapped; this.binding = binding.retain(); }
AsyncChangeStreamBatchCursor(final ChangeStreamOperation<T> changeStreamOperation, final AsyncBatchCursor<RawBsonDocument> wrapped, final AsyncReadBinding binding) { changeStreamOperation.startOperationTimeForResume(binding.getSessionContext().getOperationTime()); this.changeStreamOperation = changeStreamOperation; this.resumeToken = changeStreamOperation.getResumeToken(); this.wrapped = wrapped; this.binding = binding; binding.retain(); }
public static BsonDocument getReadConcernDocument(final SessionContext sessionContext) { notNull("sessionContext", sessionContext); BsonDocument readConcernDocument = new BsonDocument(); ReadConcernLevel level = sessionContext.getReadConcern().getLevel(); if (level != null) { readConcernDocument.append("level", new BsonString(level.getValue())); } if (shouldAddAfterClusterTime(sessionContext)) { readConcernDocument.append("afterClusterTime", sessionContext.getOperationTime()); } return readConcernDocument; }
@Override public BsonTimestamp getOperationTime() { return wrapped.getOperationTime(); }
private static boolean shouldAddAfterClusterTime(final SessionContext sessionContext) { return sessionContext.isCausallyConsistent() && sessionContext.getOperationTime() != null; }
ChangeStreamBatchCursor(final ChangeStreamOperation<T> changeStreamOperation, final BatchCursor<RawBsonDocument> wrapped, final ReadBinding binding) { changeStreamOperation.startOperationTimeForResume(binding.getSessionContext().getOperationTime()); this.changeStreamOperation = changeStreamOperation; this.resumeToken = changeStreamOperation.getResumeToken(); this.wrapped = wrapped; this.binding = binding.retain(); }
AsyncChangeStreamBatchCursor(final ChangeStreamOperation<T> changeStreamOperation, final AsyncBatchCursor<RawBsonDocument> wrapped, final AsyncReadBinding binding) { changeStreamOperation.startOperationTimeForResume(binding.getSessionContext().getOperationTime()); this.changeStreamOperation = changeStreamOperation; this.resumeToken = changeStreamOperation.getResumeToken(); this.wrapped = wrapped; this.binding = binding; binding.retain(); }
public static BsonDocument getReadConcernDocument(final SessionContext sessionContext) { notNull("sessionContext", sessionContext); BsonDocument readConcernDocument = new BsonDocument(); ReadConcernLevel level = sessionContext.getReadConcern().getLevel(); if (level != null) { readConcernDocument.append("level", new BsonString(level.getValue())); } if (shouldAddAfterClusterTime(sessionContext)) { readConcernDocument.append("afterClusterTime", sessionContext.getOperationTime()); } return readConcernDocument; }