DotNet Reference

.Net Reference

util/IntVector.cs
Go to the documentation of this file.
1//------------------------------------------------------------------------------
2// <auto-generated />
3//
4// This file was automatically generated by SWIG (http://www.swig.org).
5// Version 4.0.2
6//
7// Do not make changes to this file unless you know what you are doing--modify
8// the SWIG interface file instead.
9//------------------------------------------------------------------------------
10
11namespace Google.OrTools.Util {
12
13using System;
14using System.Runtime.InteropServices;
15using System.Collections;
16
17public class IntVector : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IList<int>
18 {
19 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
20 protected bool swigCMemOwn;
21
22 internal IntVector(global::System.IntPtr cPtr, bool cMemoryOwn) {
23 swigCMemOwn = cMemoryOwn;
24 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
25 }
26
27 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(IntVector obj) {
28 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
29 }
30
31 ~IntVector() {
32 Dispose(false);
33 }
34
35 public void Dispose() {
36 Dispose(true);
37 global::System.GC.SuppressFinalize(this);
38 }
39
40 protected virtual void Dispose(bool disposing) {
41 lock(this) {
42 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
43 if (swigCMemOwn) {
44 swigCMemOwn = false;
46 }
47 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
48 }
49 }
50 }
51
52 public IntVector(global::System.Collections.IEnumerable c) : this() {
53 if (c == null)
54 throw new global::System.ArgumentNullException("c");
55 foreach (int element in c) {
56 this.Add(element);
57 }
58 }
59
60 public IntVector(global::System.Collections.Generic.IEnumerable<int> c) : this() {
61 if (c == null)
62 throw new global::System.ArgumentNullException("c");
63 foreach (int element in c) {
64 this.Add(element);
65 }
66 }
67
68 public bool IsFixedSize {
69 get {
70 return false;
71 }
72 }
73
74 public bool IsReadOnly {
75 get {
76 return false;
77 }
78 }
79
80 public int this[int index] {
81 get {
82 return getitem(index);
83 }
84 set {
85 setitem(index, value);
86 }
87 }
88
89 public int Capacity {
90 get {
91 return (int)capacity();
92 }
93 set {
94 if (value < size())
95 throw new global::System.ArgumentOutOfRangeException("Capacity");
96 reserve((uint)value);
97 }
98 }
99
100 public int Count {
101 get {
102 return (int)size();
103 }
104 }
105
106 public bool IsSynchronized {
107 get {
108 return false;
109 }
110 }
111
112 public void CopyTo(int[] array)
113 {
114 CopyTo(0, array, 0, this.Count);
115 }
116
117 public void CopyTo(int[] array, int arrayIndex)
118 {
119 CopyTo(0, array, arrayIndex, this.Count);
120 }
121
122 public void CopyTo(int index, int[] array, int arrayIndex, int count)
123 {
124 if (array == null)
125 throw new global::System.ArgumentNullException("array");
126 if (index < 0)
127 throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
128 if (arrayIndex < 0)
129 throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
130 if (count < 0)
131 throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
132 if (array.Rank > 1)
133 throw new global::System.ArgumentException("Multi dimensional array.", "array");
134 if (index+count > this.Count || arrayIndex+count > array.Length)
135 throw new global::System.ArgumentException("Number of elements to copy is too large.");
136 for (int i=0; i<count; i++)
137 array.SetValue(getitemcopy(index+i), arrayIndex+i);
138 }
139
140 public int[] ToArray() {
141 int[] array = new int[this.Count];
142 this.CopyTo(array);
143 return array;
144 }
145
146 global::System.Collections.Generic.IEnumerator<int> global::System.Collections.Generic.IEnumerable<int>.GetEnumerator() {
147 return new IntVectorEnumerator(this);
148 }
149
150 global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
151 return new IntVectorEnumerator(this);
152 }
153
155 return new IntVectorEnumerator(this);
156 }
157
158 // Type-safe enumerator
163 public sealed class IntVectorEnumerator : global::System.Collections.IEnumerator
164 , global::System.Collections.Generic.IEnumerator<int>
165 {
166 private IntVector collectionRef;
167 private int currentIndex;
168 private object currentObject;
169 private int currentSize;
170
171 public IntVectorEnumerator(IntVector collection) {
172 collectionRef = collection;
173 currentIndex = -1;
174 currentObject = null;
175 currentSize = collectionRef.Count;
176 }
177
178 // Type-safe iterator Current
179 public int Current {
180 get {
181 if (currentIndex == -1)
182 throw new global::System.InvalidOperationException("Enumeration not started.");
183 if (currentIndex > currentSize - 1)
184 throw new global::System.InvalidOperationException("Enumeration finished.");
185 if (currentObject == null)
186 throw new global::System.InvalidOperationException("Collection modified.");
187 return (int)currentObject;
188 }
189 }
190
191 // Type-unsafe IEnumerator.Current
192 object global::System.Collections.IEnumerator.Current {
193 get {
194 return Current;
195 }
196 }
197
198 public bool MoveNext() {
199 int size = collectionRef.Count;
200 bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
201 if (moveOkay) {
202 currentIndex++;
203 currentObject = collectionRef[currentIndex];
204 } else {
205 currentObject = null;
206 }
207 return moveOkay;
208 }
209
210 public void Reset() {
211 currentIndex = -1;
212 currentObject = null;
213 if (collectionRef.Count != currentSize) {
214 throw new global::System.InvalidOperationException("Collection modified.");
215 }
216 }
217
218 public void Dispose() {
219 currentIndex = -1;
220 currentObject = null;
221 }
222 }
223
224 public void Clear() {
226 }
227
228 public void Add(int x) {
230 }
231
232 private uint size() {
234 return ret;
235 }
236
237 private uint capacity() {
238 uint ret = operations_research_utilPINVOKE.IntVector_capacity(swigCPtr);
239 return ret;
240 }
241
242 private void reserve(uint n) {
243 operations_research_utilPINVOKE.IntVector_reserve(swigCPtr, n);
244 }
245
246 public IntVector() : this(operations_research_utilPINVOKE.new_IntVector__SWIG_0(), true) {
247 }
248
249 public IntVector(IntVector other) : this(operations_research_utilPINVOKE.new_IntVector__SWIG_1(IntVector.getCPtr(other)), true) {
251 }
252
253 public IntVector(int capacity) : this(operations_research_utilPINVOKE.new_IntVector__SWIG_2(capacity), true) {
255 }
256
257 private int getitemcopy(int index) {
260 return ret;
261 }
262
263 private int getitem(int index) {
264 int ret = operations_research_utilPINVOKE.IntVector_getitem(swigCPtr, index);
265 if (operations_research_utilPINVOKE.SWIGPendingException.Pending) throw operations_research_utilPINVOKE.SWIGPendingException.Retrieve();
266 return ret;
267 }
268
269 private void setitem(int index, int val) {
270 operations_research_utilPINVOKE.IntVector_setitem(swigCPtr, index, val);
271 if (operations_research_utilPINVOKE.SWIGPendingException.Pending) throw operations_research_utilPINVOKE.SWIGPendingException.Retrieve();
272 }
273
274 public void AddRange(IntVector values) {
277 }
278
279 public IntVector GetRange(int index, int count) {
280 global::System.IntPtr cPtr = operations_research_utilPINVOKE.IntVector_GetRange(swigCPtr, index, count);
281 IntVector ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVector(cPtr, true);
283 return ret;
284 }
285
286 public void Insert(int index, int x) {
289 }
290
291 public void InsertRange(int index, IntVector values) {
292 operations_research_utilPINVOKE.IntVector_InsertRange(swigCPtr, index, IntVector.getCPtr(values));
294 }
295
296 public void RemoveAt(int index) {
299 }
300
301 public void RemoveRange(int index, int count) {
304 }
305
306 public static IntVector Repeat(int value, int count) {
307 global::System.IntPtr cPtr = operations_research_utilPINVOKE.IntVector_Repeat(value, count);
308 IntVector ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntVector(cPtr, true);
310 return ret;
311 }
312
313 public void Reverse() {
315 }
316
317 public void Reverse(int index, int count) {
320 }
321
322 public void SetRange(int index, IntVector values) {
323 operations_research_utilPINVOKE.IntVector_SetRange(swigCPtr, index, IntVector.getCPtr(values));
325 }
326
327 public bool Contains(int value) {
328 bool ret = operations_research_utilPINVOKE.IntVector_Contains(swigCPtr, value);
329 return ret;
330 }
331
332 public int IndexOf(int value) {
333 int ret = operations_research_utilPINVOKE.IntVector_IndexOf(swigCPtr, value);
334 return ret;
335 }
336
337 public int LastIndexOf(int value) {
339 return ret;
340 }
341
342 public bool Remove(int value) {
343 bool ret = operations_research_utilPINVOKE.IntVector_Remove(swigCPtr, value);
344 return ret;
345 }
346
347}
348
349}
Note that the IEnumerator documentation requires an InvalidOperationException to be thrown whenever t...
void CopyTo(int[] array, int arrayIndex)
IntVector(global::System.Collections.Generic.IEnumerable< int > c)
static IntVector Repeat(int value, int count)
void AddRange(IntVector values)
IntVector GetRange(int index, int count)
void InsertRange(int index, IntVector values)
virtual void Dispose(bool disposing)
void CopyTo(int index, int[] array, int arrayIndex, int count)
void RemoveRange(int index, int count)
IntVectorEnumerator GetEnumerator()
IntVector(global::System.Collections.IEnumerable c)
void Insert(int index, int x)
void SetRange(int index, IntVector values)
void Reverse(int index, int count)
static void IntVector_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static bool IntVector_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void IntVector_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
static bool IntVector_Contains(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void IntVector_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1)
static void IntVector_Add(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static int IntVector_IndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static int IntVector_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void IntVector_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static global::System.IntPtr IntVector_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static void IntVector_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3)
static global::System.IntPtr IntVector_Repeat(int jarg1, int jarg2)
static void IntVector_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void delete_IntVector(global::System.Runtime.InteropServices.HandleRef jarg1)
static int IntVector_LastIndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void IntVector_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3)
static void IntVector_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static void IntVector_Clear(global::System.Runtime.InteropServices.HandleRef jarg1)
static uint IntVector_size(global::System.Runtime.InteropServices.HandleRef jarg1)