Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
BooleanStorage.cs
Go to the documentation of this file.
3using System.Xml;
4
5namespace System.Data.Common;
6
7internal sealed class BooleanStorage : DataStorage
8{
9 private bool[] _values;
10
15
16 public override object Aggregate(int[] records, AggregateType kind)
17 {
18 bool flag = false;
19 try
20 {
21 switch (kind)
22 {
23 case AggregateType.Min:
24 {
25 bool flag3 = true;
26 foreach (int num2 in records)
27 {
28 if (!IsNull(num2))
29 {
30 flag3 = _values[num2] && flag3;
31 flag = true;
32 }
33 }
34 if (flag)
35 {
36 return flag3;
37 }
38 return _nullValue;
39 }
40 case AggregateType.Max:
41 {
42 bool flag2 = false;
43 foreach (int num in records)
44 {
45 if (!IsNull(num))
46 {
47 flag2 = _values[num] || flag2;
48 flag = true;
49 }
50 }
51 if (flag)
52 {
53 return flag2;
54 }
55 return _nullValue;
56 }
57 case AggregateType.First:
58 if (records.Length != 0)
59 {
60 return _values[records[0]];
61 }
62 return null;
63 case AggregateType.Count:
64 return base.Aggregate(records, kind);
65 }
66 }
67 catch (OverflowException)
68 {
69 throw ExprException.Overflow(typeof(bool));
70 }
72 }
73
74 public override int Compare(int recordNo1, int recordNo2)
75 {
76 bool flag = _values[recordNo1];
77 bool flag2 = _values[recordNo2];
78 if (!flag || !flag2)
79 {
81 if (num != 0)
82 {
83 return num;
84 }
85 }
86 return flag.CompareTo(flag2);
87 }
88
89 public override int CompareValueTo(int recordNo, object value)
90 {
91 if (_nullValue == value)
92 {
93 if (IsNull(recordNo))
94 {
95 return 0;
96 }
97 return 1;
98 }
99 bool flag = _values[recordNo];
100 if (!flag && IsNull(recordNo))
101 {
102 return -1;
103 }
104 return flag.CompareTo((bool)value);
105 }
106
107 public override object ConvertValue(object value)
108 {
109 if (_nullValue != value)
110 {
111 value = ((value == null) ? _nullValue : ((object)((IConvertible)value).ToBoolean(base.FormatProvider)));
112 }
113 return value;
114 }
115
116 public override void Copy(int recordNo1, int recordNo2)
117 {
120 }
121
122 public override object Get(int record)
123 {
124 bool flag = _values[record];
125 if (flag)
126 {
127 return flag;
128 }
129 return GetBits(record);
130 }
131
132 public override void Set(int record, object value)
133 {
134 if (_nullValue == value)
135 {
136 _values[record] = false;
137 SetNullBit(record, flag: true);
138 }
139 else
140 {
141 _values[record] = ((IConvertible)value).ToBoolean(base.FormatProvider);
142 SetNullBit(record, flag: false);
143 }
144 }
145
146 public override void SetCapacity(int capacity)
147 {
148 bool[] array = new bool[capacity];
149 if (_values != null)
150 {
152 }
153 _values = array;
154 base.SetCapacity(capacity);
155 }
156
157 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
158 public override object ConvertXmlToObject(string s)
159 {
160 return XmlConvert.ToBoolean(s);
161 }
162
163 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
164 public override string ConvertObjectToXml(object value)
165 {
166 return XmlConvert.ToString((bool)value);
167 }
168
169 protected override object GetEmptyStorage(int recordCount)
170 {
171 return new bool[recordCount];
172 }
173
174 protected override void CopyValue(int record, object store, BitArray nullbits, int storeIndex)
175 {
176 bool[] array = (bool[])store;
179 }
180
181 protected override void SetStorage(object store, BitArray nullbits)
182 {
183 _values = (bool[])store;
185 }
186}
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
Definition Array.cs:624
override object Get(int record)
override int Compare(int recordNo1, int recordNo2)
override object GetEmptyStorage(int recordCount)
override void SetCapacity(int capacity)
override void CopyValue(int record, object store, BitArray nullbits, int storeIndex)
override object ConvertXmlToObject(string s)
override void Copy(int recordNo1, int recordNo2)
override string ConvertObjectToXml(object value)
override object ConvertValue(object value)
override void SetStorage(object store, BitArray nullbits)
override object Aggregate(int[] records, AggregateType kind)
override int CompareValueTo(int recordNo, object value)
override void Set(int record, object value)
void SetNullStorage(BitArray nullbits)
int CompareBits(int recordNo1, int recordNo2)
void SetNullBit(int recordNo, bool flag)
void CopyBits(int srcRecordNo, int dstRecordNo)
object GetBits(int recordNo)
static Exception AggregateException(AggregateType aggregateType, Type type)
static Exception Overflow(Type type)
static byte Min(byte val1, byte val2)
Definition Math.cs:912
static bool ToBoolean(string s)
static string ToString(bool value)