public static void ReleaseReadLock(NumClicks *value) { }
public static void AcquireWriteLock(NumClicks *value) { }
public static void Copy(NumClicks *src, NumClicks *dst) { dst->numClicks = src->numClicks; }
// Shared read/write capabilities on value public static void AcquireReadLock(NumClicks *value) { }
public static void Free(NumClicks *key) { throw new NotImplementedException(); }
public static int GetLength(NumClicks *input) { return(physicalSize); }
public static void InitialUpdater(AdId *key, Input *input, NumClicks *value) { NumClicks.Copy(&input->numClicks, value); }
public static void Deserialize(NumClicks *key, Stream fromStream) { throw new InvalidOperationException(); }
public static void SingleWriter(AdId *key, NumClicks *src, NumClicks *dst) { NumClicks.Copy(src, dst); }
public static void ConcurrentWriter(AdId *key, NumClicks *src, NumClicks *dst) { NumClicks.AcquireWriteLock(dst); NumClicks.Copy(src, dst); NumClicks.ReleaseWriteLock(dst); }
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 UpsertCompletionCallback(AdId *key, NumClicks *input, Empty *ctx) { }
public static void ReleaseWriteLock(NumClicks *value) { }
public static void InPlaceUpdater(AdId *key, Input *input, NumClicks *value) { Interlocked.Add(ref value->numClicks, input->numClicks.numClicks); }
public static NumClicks *MoveToContext(NumClicks *value) { return(value); }
public static void CopyUpdater(AdId *key, Input *input, NumClicks *oldValue, NumClicks *newValue) { newValue->numClicks += oldValue->numClicks + input->numClicks.numClicks; }
public static void Free(NumClicks *key) { throw new InvalidOperationException(); }
public static void Deserialize(NumClicks *key, Stream fromStream) { throw new NotImplementedException(); }