public static IUnsafeMarshaller <Dictionary <TKey, TValue> > GetDictionaryMarshaller <TKey, TValue>( IUnsafeMarshaller <TKey> keyMarshaller, IUnsafeMarshaller <TValue> valueMarshaller ) => UnsafeMarshallers.GetCollectionMarshaller( GetKeyValuePairMarshaller(keyMarshaller, valueMarshaller), size => new Dictionary <TKey, TValue>(size) );
protected T4PsiAwareCacheBase( Lifetime lifetime, IPersistentIndexManager persistentIndexManager, IUnsafeMarshaller <TResponse> valueMarshaller ) : base( lifetime, persistentIndexManager, valueMarshaller ) { }
protected T4PsiAwareCacheBase( Lifetime lifetime, [NotNull] IShellLocks locks, [NotNull] IPersistentIndexManager persistentIndexManager, [NotNull] IUnsafeMarshaller <TResponse> valueMarshaller ) : base( lifetime, locks, persistentIndexManager, valueMarshaller ) { }
private static IUnsafeMarshaller <KeyValuePair <TKey, TValue> > GetKeyValuePairMarshaller <TKey, TValue>( IUnsafeMarshaller <TKey> keyMarshaller, IUnsafeMarshaller <TValue> valueMarshaller ) => new UniversalMarshaller <KeyValuePair <TKey, TValue> >( reader => new KeyValuePair <TKey, TValue>( keyMarshaller.Unmarshal(reader), valueMarshaller.Unmarshal(reader) ), (writer, pair) => { var(key, value) = pair; keyMarshaller.Marshal(writer, key); valueMarshaller.Marshal(writer, value); } );
protected DeferredCacheBase(Lifetime lifetime, IPersistentIndexManager persistentIndexManager, IUnsafeMarshaller <T> valueMarshaller) { myPersistentIndexManager = persistentIndexManager; Map = myPersistentIndexManager.GetPersistentMap(lifetime, PersistentId, valueMarshaller); myTimeStamps = myPersistentIndexManager.GetPersistentMap(lifetime, PersistentId + "Time", UnsafeMarshallers.LongMarshaller); }