1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.giraph.graph;
20
21 import org.apache.hadoop.io.Writable;
22
23 import java.io.DataInput;
24 import java.io.DataOutput;
25 import java.io.IOException;
26 import java.net.InetSocketAddress;
27
28
29
30
31 public abstract class TaskInfo implements Writable {
32
33 private String hostname;
34
35 private int port;
36
37 private int taskId = -1;
38
39 private String hostOrIp;
40
41
42
43
44 public TaskInfo() {
45 }
46
47
48
49
50
51
52 public String getHostname() {
53 return hostname.toLowerCase();
54 }
55
56
57
58
59
60
61 public String getHostOrIp() {
62 return hostOrIp;
63 }
64
65
66
67
68
69
70 public int getPort() {
71 return port;
72 }
73
74
75
76
77
78
79
80 public void setInetSocketAddress(InetSocketAddress address, String host) {
81 this.port = address.getPort();
82 this.hostname = address.getHostName();
83 this.hostOrIp = host;
84 }
85
86
87
88
89
90
91 public InetSocketAddress getInetSocketAddress() {
92 return new InetSocketAddress(hostOrIp, port);
93 }
94
95
96
97
98
99
100 public void setTaskId(int taskId) {
101 this.taskId = taskId;
102 }
103
104
105
106
107
108
109 public int getTaskId() {
110 return taskId;
111 }
112
113
114
115
116
117
118 public String getHostnameId() {
119 return getHostname() + "_" + getTaskId();
120 }
121
122 @Override
123 public boolean equals(Object other) {
124 if (other instanceof TaskInfo) {
125 TaskInfo taskInfo = (TaskInfo) other;
126 if (getHostname().equals(taskInfo.getHostname()) &&
127 getHostOrIp().equals(taskInfo.getHostOrIp()) &&
128 (getTaskId() == taskInfo.getTaskId()) &&
129 (port == taskInfo.getPort() &&
130 (taskId == taskInfo.getTaskId()))) {
131 return true;
132 }
133 }
134 return false;
135 }
136
137 @Override
138 public String toString() {
139 return "hostname=" + getHostname() +
140 " hostOrIp=" + getHostOrIp() +
141 ", MRtaskID=" + getTaskId() +
142 ", port=" + getPort();
143 }
144
145 @Override
146 public void readFields(DataInput input) throws IOException {
147 hostname = input.readUTF();
148 hostOrIp = input.readUTF();
149 port = input.readInt();
150 taskId = input.readInt();
151 }
152
153 @Override
154 public void write(DataOutput output) throws IOException {
155 output.writeUTF(hostname);
156 output.writeUTF(hostOrIp);
157 output.writeInt(port);
158 output.writeInt(taskId);
159 }
160
161 @Override
162 public int hashCode() {
163 int result = 17;
164 result = 37 * result + getPort();
165 result = 37 * result + hostname.hashCode();
166 result = 37 * result + hostOrIp.hashCode();
167 result = 37 * result + getTaskId();
168 return result;
169 }
170
171 }