private RtConnectorMemoryMapped( IKeyValueMemory keyValueMemory, bool syncWithExistentTopics = false, ILoggerFactory loggerFactory = null) { loggerFactory = loggerFactory ?? Configuration.Configuration.DefaultLoggerFactory; this.rtTags = new HashSet <RtTagMemoryMapped>(); this.logger = loggerFactory.CreateLogger($"{nameof(RtConnectorMemoryMapped)}"); this.keyValueMemory = keyValueMemory; this.syncWithExistentTopics = syncWithExistentTopics; this.extraTopics = new HashSet <string>(); this.keyValueMemory.KeysChanged += KeyValueMemory_KeysChanged; LoadTopics(); }
public override bool Disconnect() { keyValueMemory?.Flush(); keyValueMemory?.Dispose(); keyValueMemory = null; lock (rtTags) { foreach (var tag in rtTags) { tag.RaiseStatusChanged(IsConnected); } } RaiseOnDisconnect(false); return(true); }