DotNet Reference

DotNet 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.1
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 
11 namespace Google.OrTools.Util {
12 
13 using System;
14 using System.Runtime.InteropServices;
15 using System.Collections;
16 
17 public 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() {
233  uint ret = operations_research_utilPINVOKE.IntVector_size(swigCPtr);
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) {
258  int ret = operations_research_utilPINVOKE.IntVector_getitemcopy(swigCPtr, 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) {
338  int ret = operations_research_utilPINVOKE.IntVector_LastIndexOf(swigCPtr, 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 }
void InsertRange(int index, IntVector values)
bool swigCMemOwn
bool IsSynchronized
void Reset()
static void IntVector_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3)
static void IntVector_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
void CopyTo(int index, int[] array, int arrayIndex, int count)
IntVector(global::System.Collections.IEnumerable c)
int Count
static global::System.IntPtr IntVector_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
int[] ToArray()
Note that the IEnumerator documentation requires an InvalidOperationException to be thrown whenever t...
void Reverse()
virtual void Dispose(bool disposing)
IntVectorEnumerator(IntVector collection)
void Add(int x)
IntVector(global::System.Collections.Generic.IEnumerable< int > c)
IntVector(int capacity)
void RemoveRange(int index, int count)
static bool IntVector_Contains(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
void Insert(int index, int x)
static void IntVector_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
bool Contains(int value)
static bool Pending
void CopyTo(int[] array)
int LastIndexOf(int value)
static uint IntVector_size(global::System.Runtime.InteropServices.HandleRef jarg1)
static IntVector Repeat(int value, int count)
static void IntVector_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static int IntVector_LastIndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
void Clear()
IntVector()
void Reverse(int index, int count)
bool IsReadOnly
static global::System.Exception Retrieve()
int Capacity
void Dispose()
void AddRange(IntVector values)
static void delete_IntVector(global::System.Runtime.InteropServices.HandleRef jarg1)
IntVector(IntVector other)
static int IntVector_IndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
bool Remove(int value)
static int IntVector_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static void IntVector_Clear(global::System.Runtime.InteropServices.HandleRef jarg1)
void CopyTo(int[] array, int arrayIndex)
static bool IntVector_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
int Current
void RemoveAt(int index)
Definition: Domain.cs:11
static void IntVector_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static global::System.IntPtr IntVector_Repeat(int jarg1, int jarg2)
static void IntVector_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2)
void SetRange(int index, IntVector values)
static void IntVector_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3)
IntVectorEnumerator GetEnumerator()
void Dispose()
static void IntVector_Add(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
IntVector GetRange(int index, int count)
bool MoveNext()
bool IsFixedSize
int IndexOf(int value)
static void IntVector_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1)