private async Task WrapTimeSeries() { if (TimeSeriesFactoryCap == null || TimeSeriesCap == null) { return; } var wts = await TimeSeriesFactoryCap.Wrap(Capnp.Rpc.Proxy.Share(TimeSeriesCap)); if (wts == null) { return; } //store wrapper cap if (AlterTimeSeriesWrapperCap != wts) { AlterTimeSeriesWrapperCap?.Dispose(); } AlterTimeSeriesWrapperCap = wts; //let wrapper point also to general time series, but dispose ref to old time series - just remote wrapper still holds ref if (TimeSeriesCap != AlterTimeSeriesWrapperCap) { TimeSeriesCap?.Dispose(); } TimeSeriesCap = AlterTimeSeriesWrapperCap; }
private async Task TimeSeriesFactoryCapabilityChanged(Climate.IAlterTimeSeriesWrapperFactory factory) { if (factory == null) { return; } if (TimeSeriesFactoryCap != factory) { TimeSeriesFactoryCap?.Dispose(); } TimeSeriesFactoryCap = factory; }