public Status Read(Key *key, Input *input, Output *output, Context *userContext, long monotonicSerialNum) { var context = default(PendingContext); var internalStatus = InternalRead(key, input, output, userContext, ref context); var status = default(Status); if (internalStatus == OperationStatus.SUCCESS || internalStatus == OperationStatus.NOTFOUND) { status = (Status)internalStatus; } else { status = HandleOperationStatus(threadCtx, context, internalStatus); } threadCtx.serialNum = monotonicSerialNum; return(status); }
public static Output *MoveToContext(Output *value) { return(value); }
public static void ConcurrentReader(AdId *key, Input *input, NumClicks *value, Output *dst) { NumClicks.AcquireReadLock(value); NumClicks.Copy(value, (NumClicks *)dst); NumClicks.ReleaseReadLock(value); }
public static void SingleReader(AdId *key, Input *input, NumClicks *value, Output *dst) { NumClicks.Copy(value, (NumClicks *)dst); }
public static void ReadCompletionCallback(AdId *key, Input *input, Output *output, Empty *ctx, Status status) { }
public static void ReadCompletionCallback(AdId *key, Input *input, Output *output, Empty *ctx, Status status) { Assert.IsTrue(status == Status.OK); Assert.IsTrue(output->value.numClicks == key->adId); }
public static void SingleReader(Key *key, Input *input, Value *value, Output *dst) { Value.Copy(value, (Value *)dst); }
public static void ConcurrentReader(Key *key, Input *input, Value *value, Output *dst) { Value.AcquireReadLock(value); Value.Copy(value, (Value *)dst); Value.ReleaseReadLock(value); }
public static void ReadCompletionCallback(Key *key, Input *input, Output *output, Context *ctx, Status status) { }