Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
MaxFlow.cs
Go to the documentation of this file.
1//------------------------------------------------------------------------------
2// <auto-generated />
3//
4// This file was automatically generated by SWIG (https://www.swig.org).
5// Version 4.2.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
11namespace Google.OrTools.Graph {
12
13public class MaxFlow : global::System.IDisposable {
14 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
15 protected bool swigCMemOwn;
16
17 internal MaxFlow(global::System.IntPtr cPtr, bool cMemoryOwn) {
18 swigCMemOwn = cMemoryOwn;
19 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
20 }
21
22 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MaxFlow obj) {
23 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
24 }
25
26 internal static global::System.Runtime.InteropServices.HandleRef swigRelease(MaxFlow obj) {
27 if (obj != null) {
28 if (!obj.swigCMemOwn)
29 throw new global::System.ApplicationException("Cannot release ownership as memory is not owned");
30 global::System.Runtime.InteropServices.HandleRef ptr = obj.swigCPtr;
31 obj.swigCMemOwn = false;
32 obj.Dispose();
33 return ptr;
34 } else {
35 return new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
36 }
37 }
38
39 ~MaxFlow() {
40 Dispose(false);
41 }
42
43 public void Dispose() {
44 Dispose(true);
45 global::System.GC.SuppressFinalize(this);
46 }
47
48 protected virtual void Dispose(bool disposing) {
49 lock(this) {
50 if (swigCPtr.Handle != global::System.IntPtr.Zero) {
51 if (swigCMemOwn) {
52 swigCMemOwn = false;
54 }
55 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
56 }
57 }
58 }
59
60 public MaxFlow() : this(operations_research_graphPINVOKE.new_MaxFlow(), true) {
61 }
63 public int AddArcWithCapacity(int tail, int head, long capacity) {
64 int ret = operations_research_graphPINVOKE.MaxFlow_AddArcWithCapacity(swigCPtr, tail, head, capacity);
65 return ret;
66 }
67
68 public int NumNodes() {
70 return ret;
71 }
72
73 public int NumArcs() {
75 return ret;
76 }
77
78 public int Tail(int arc) {
79 int ret = operations_research_graphPINVOKE.MaxFlow_Tail(swigCPtr, arc);
80 return ret;
81 }
82
83 public int Head(int arc) {
84 int ret = operations_research_graphPINVOKE.MaxFlow_Head(swigCPtr, arc);
85 return ret;
86 }
87
88 public long Capacity(int arc) {
89 long ret = operations_research_graphPINVOKE.MaxFlow_Capacity(swigCPtr, arc);
90 return ret;
91 }
92
93 public MaxFlow.Status Solve(int source, int sink) {
95 return ret;
96 }
97
98 public long OptimalFlow() {
100 return ret;
101 }
102
103 public long Flow(int arc) {
104 long ret = operations_research_graphPINVOKE.MaxFlow_Flow(swigCPtr, arc);
105 return ret;
106 }
107
108 public void SetArcCapacity(int arc, long capacity) {
111
112 public enum Status {
113 OPTIMAL,
115 BAD_INPUT,
117 }
118
119}
120
121}
int AddArcWithCapacity(int tail, int head, long capacity)
Definition MaxFlow.cs:65
void SetArcCapacity(int arc, long capacity)
Definition MaxFlow.cs:110
MaxFlow.Status Solve(int source, int sink)
Definition MaxFlow.cs:95
static void delete_MaxFlow(global::System.Runtime.InteropServices.HandleRef jarg1)
static int MaxFlow_NumNodes(global::System.Runtime.InteropServices.HandleRef jarg1)
static void MaxFlow_SetArcCapacity(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, long jarg3)
static int MaxFlow_Tail(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static int MaxFlow_Head(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static long MaxFlow_Flow(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static long MaxFlow_OptimalFlow(global::System.Runtime.InteropServices.HandleRef jarg1)
static int MaxFlow_Solve(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3)
static long MaxFlow_Capacity(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2)
static int MaxFlow_AddArcWithCapacity(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3, long jarg4)
static int MaxFlow_NumArcs(global::System.Runtime.InteropServices.HandleRef jarg1)