예제 #1
0
 public static Impl FindImpl(IGeneratedStore store)
 {
     while (store?.Parent != null)
     {
         store = store.Parent;                           // walk to the top of the tree
     }
     return(store?.Impl);
 }
예제 #2
0
 public static void ImplTakeRead(IGeneratedStore s) => FindImpl(s).TakeRead();
예제 #3
0
 public static void ImplInvokeChanged(IGeneratedStore s) => FindImpl(s).InvokeChanged();
예제 #4
0
 public static void ImplSignalChanged(IGeneratedStore s) => FindImpl(s).SignalChanged();
예제 #5
0
 public static ReaderWriterLockSlim ImplGetWriteSyncObject(IGeneratedStore s) => FindImpl(s)?.WriteSyncObject;
예제 #6
0
 public static WaitHandle ImplGetSyncObject(IGeneratedStore s) => FindImpl(s).SyncObject;
예제 #7
0
 public Impl(IGeneratedStore store) => generated = store;
예제 #8
0
 public static void ImplWriteTo(IGeneratedStore s, ConfigProvider provider) => FindImpl(s).WriteTo(provider);
예제 #9
0
 public static void ImplReadFrom(IGeneratedStore s, ConfigProvider provider) => FindImpl(s).ReadFrom(provider);
예제 #10
0
 public static IDisposable ImplChangeTransaction(IGeneratedStore s, IDisposable nest) => FindImpl(s).ChangeTransaction(nest);
예제 #11
0
 public static void ImplReleaseWrite(IGeneratedStore s) => FindImpl(s).ReleaseWrite();
예제 #12
0
 public static void ImplTakeWrite(IGeneratedStore s) => FindImpl(s).TakeWrite();
예제 #13
0
 public static void ImplReleaseRead(IGeneratedStore s) => FindImpl(s).ReleaseRead();
 private static IConfigStore Create(Type type, IGeneratedStore parent)
 => GetCreator(type)(parent);
 internal static T Create <T>(IGeneratedStore parent) where T : class => (T)Create(typeof(T), parent);