Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DataTableReaderListener.cs
Go to the documentation of this file.
2
3namespace System.Data;
4
5internal sealed class DataTableReaderListener
6{
8
9 private bool _isSubscribed;
10
11 private readonly WeakReference _readerWeak;
12
14 {
15 if (reader == null)
16 {
17 throw ExceptionBuilder.ArgumentNull("DataTableReader");
18 }
19 if (_currentDataTable != null)
20 {
22 }
23 _readerWeak = new WeakReference(reader);
25 if (_currentDataTable != null)
26 {
28 }
29 }
30
31 internal void CleanUp()
32 {
34 }
35
36 internal void UpdataTable(DataTable datatable)
37 {
38 if (datatable == null)
39 {
40 throw ExceptionBuilder.ArgumentNull("DataTable");
41 }
43 _currentDataTable = datatable;
45 }
46
47 private void SubscribeEvents()
48 {
49 if (_currentDataTable != null && !_isSubscribed)
50 {
51 _currentDataTable.Columns.ColumnPropertyChanged += SchemaChanged;
52 _currentDataTable.Columns.CollectionChanged += SchemaChanged;
53 _currentDataTable.RowChanged += DataChanged;
54 _currentDataTable.RowDeleted += DataChanged;
55 _currentDataTable.TableCleared += DataTableCleared;
56 _isSubscribed = true;
57 }
58 }
59
60 private void UnSubscribeEvents()
61 {
62 if (_currentDataTable != null && _isSubscribed)
63 {
64 _currentDataTable.Columns.ColumnPropertyChanged -= SchemaChanged;
65 _currentDataTable.Columns.CollectionChanged -= SchemaChanged;
66 _currentDataTable.RowChanged -= DataChanged;
67 _currentDataTable.RowDeleted -= DataChanged;
68 _currentDataTable.TableCleared -= DataTableCleared;
69 _isSubscribed = false;
70 }
71 }
72
73 private void DataTableCleared(object sender, DataTableClearEventArgs e)
74 {
76 if (dataTableReader != null)
77 {
78 dataTableReader.DataTableCleared();
79 }
80 else
81 {
83 }
84 }
85
86 private void SchemaChanged(object sender, CollectionChangeEventArgs e)
87 {
89 if (dataTableReader != null)
90 {
91 dataTableReader.SchemaChanged();
92 }
93 else
94 {
96 }
97 }
98
99 private void DataChanged(object sender, DataRowChangeEventArgs args)
100 {
102 if (dataTableReader != null)
103 {
104 dataTableReader.DataChanged(args);
105 }
106 else
107 {
109 }
110 }
111}
void SchemaChanged(object sender, CollectionChangeEventArgs e)
void DataChanged(object sender, DataRowChangeEventArgs args)
void DataTableCleared(object sender, DataTableClearEventArgs e)
void DataChanged(DataRowChangeEventArgs args)
static Exception ArgumentNull(string paramName)
virtual ? object Target