@@ -49,7 +49,7 @@ internal TypedColumn(DataViewSchema.Column column, bool isImputed, SharedColumnS
49
49
}
50
50
51
51
internal abstract Delegate GetGetter ( ) ;
52
- internal abstract void InitializeGetter ( DataViewRowCursor cursor , TimeSeriesImputerTransformer transformerParent , string timeSeriesColumn ,
52
+ internal abstract void InitializeGetter ( DataViewRowCursor cursor , TimeSeriesImputerTransformer . TransformerEstimatorSafeHandle transformerParent , string timeSeriesColumn ,
53
53
string [ ] grainColumns , string [ ] dataColumns , string [ ] allColumnNames , Dictionary < string , TypedColumn > allColumns ) ;
54
54
55
55
internal abstract TypeId GetTypeId ( ) ;
@@ -129,7 +129,7 @@ internal override Delegate GetGetter()
129
129
return _getter ;
130
130
}
131
131
132
- internal override unsafe void InitializeGetter ( DataViewRowCursor cursor , TimeSeriesImputerTransformer transformerParent , string timeSeriesColumn ,
132
+ internal override unsafe void InitializeGetter ( DataViewRowCursor cursor , TimeSeriesImputerTransformer . TransformerEstimatorSafeHandle transformer , string timeSeriesColumn ,
133
133
string [ ] grainColumns , string [ ] dataColumns , string [ ] allImputedColumnNames , Dictionary < string , TypedColumn > allColumns )
134
134
{
135
135
if ( Column . Name != IsRowImputedColumnName )
@@ -154,7 +154,7 @@ internal override unsafe void InitializeGetter(DataViewRowCursor cursor, TimeSer
154
154
fixed ( byte * bufferPointer = SharedState . ColumnBuffer )
155
155
{
156
156
var binaryArchiveData = new NativeBinaryArchiveData ( ) { Data = bufferPointer , DataSize = new IntPtr ( bufferLength ) } ;
157
- success = TransformDataNative ( transformerParent . TransformerHandle , binaryArchiveData , out outputData , out outputDataSize , out errorHandle ) ;
157
+ success = TransformDataNative ( transformer , binaryArchiveData , out outputData , out outputDataSize , out errorHandle ) ;
158
158
if ( ! success )
159
159
throw new Exception ( CommonExtensions . GetErrorDetailsAndFreeNativeMemory ( errorHandle ) ) ;
160
160
}
@@ -633,7 +633,7 @@ protected override bool ReleaseHandle()
633
633
private readonly string [ ] _allImputedColumnNames ;
634
634
private readonly DataViewSchema _schema ;
635
635
636
- public TimeSeriesImputerDataView ( IHostEnvironment env , IDataView input , string timeSeriesColumn , string [ ] grainColumns , string [ ] dataColumns , string [ ] allColumnNames , TimeSeriesImputerTransformer parent )
636
+ internal TimeSeriesImputerDataView ( IHostEnvironment env , IDataView input , string timeSeriesColumn , string [ ] grainColumns , string [ ] dataColumns , string [ ] allColumnNames , TimeSeriesImputerTransformer parent )
637
637
{
638
638
_host = env ;
639
639
_source = input ;
@@ -664,7 +664,7 @@ public DataViewRowCursor GetRowCursor(IEnumerable<DataViewSchema.Column> columns
664
664
665
665
// Column WasColumnImputed is new, don't get its value from source
666
666
var input = _source . GetRowCursorForAllColumns ( ) ; //.GetRowCursor(columnsNeeded.Where(x => x.Name != IsRowImputedColumnName));
667
- return new Cursor ( _host , input , _parent , _timeSeriesColumn , _grainColumns , _dataColumns , _allImputedColumnNames , _schema ) ;
667
+ return new Cursor ( _host , input , _parent . CloneTransformer ( ) , _timeSeriesColumn , _grainColumns , _dataColumns , _allImputedColumnNames , _schema ) ;
668
668
}
669
669
670
670
// Can't use parallel cursors so this defaults to calling non-parallel version
@@ -687,9 +687,9 @@ private sealed class Cursor : DataViewRowCursor
687
687
private bool _isGood ;
688
688
private readonly Dictionary < string , TypedColumn > _allColumns ;
689
689
private readonly DataViewSchema _schema ;
690
- private readonly TimeSeriesImputerTransformer _transformerParent ;
690
+ private readonly TimeSeriesImputerTransformer . TransformerEstimatorSafeHandle _transformer ;
691
691
692
- public Cursor ( IChannelProvider provider , DataViewRowCursor input , TimeSeriesImputerTransformer transformerParent , string timeSeriesColumn ,
692
+ public Cursor ( IChannelProvider provider , DataViewRowCursor input , TimeSeriesImputerTransformer . TransformerEstimatorSafeHandle transformer , string timeSeriesColumn ,
693
693
string [ ] grainColumns , string [ ] dataColumns , string [ ] allImputedColumnNames , DataViewSchema schema )
694
694
{
695
695
_ch = provider ;
@@ -699,7 +699,7 @@ public Cursor(IChannelProvider provider, DataViewRowCursor input, TimeSeriesImpu
699
699
var length = input . Schema . Count ;
700
700
_position = - 1 ;
701
701
_schema = schema ;
702
- _transformerParent = transformerParent ;
702
+ _transformer = transformer ;
703
703
704
704
var sharedState = new SharedColumnState ( )
705
705
{
@@ -712,7 +712,7 @@ public Cursor(IChannelProvider provider, DataViewRowCursor input, TimeSeriesImpu
712
712
713
713
foreach ( var column in _allColumns . Values )
714
714
{
715
- column . InitializeGetter ( _input , transformerParent , timeSeriesColumn , grainColumns , dataColumns , allImputedColumnNames , _allColumns ) ;
715
+ column . InitializeGetter ( _input , transformer , timeSeriesColumn , grainColumns , dataColumns , allImputedColumnNames , _allColumns ) ;
716
716
}
717
717
}
718
718
@@ -736,6 +736,12 @@ public override bool IsColumnActive(DataViewSchema.Column column)
736
736
return true ;
737
737
}
738
738
739
+ protected override void Dispose ( bool disposing )
740
+ {
741
+ if ( ! _transformer . IsClosed )
742
+ _transformer . Close ( ) ;
743
+ }
744
+
739
745
/// <summary>
740
746
/// Returns a value getter delegate to fetch the value of column with the given columnIndex, from the row.
741
747
/// This throws if the column is not active in this row, or if the type
0 commit comments