blob: 6f13080103d7cae563a1c3d5e52acc52cc2ca855 [file] [log] [blame]
HIGUCHI Yuta20514902013-06-12 11:24:16 -07001package net.onrc.onos.ofcontroller.core;
Pankaj Berde1b8a42f2013-02-15 08:25:03 -08002
HIGUCHI Yuta60a10142013-06-14 15:50:10 -07003import net.onrc.onos.ofcontroller.flowmanager.web.DatapathSummarySerializer;
Jonathan Hart01f2d272013-04-04 20:03:46 -07004
Pankaj Berde1b8a42f2013-02-15 08:25:03 -08005import org.codehaus.jackson.annotate.JsonIgnore;
6import org.codehaus.jackson.annotate.JsonProperty;
Jonathan Hart01f2d272013-04-04 20:03:46 -07007import org.codehaus.jackson.map.annotate.JsonSerialize;
Pankaj Berde1b8a42f2013-02-15 08:25:03 -08008
9import com.tinkerpop.blueprints.Direction;
10import com.tinkerpop.frames.Adjacency;
Pankaj Berde1b8a42f2013-02-15 08:25:03 -080011import com.tinkerpop.frames.Property;
12import com.tinkerpop.frames.annotations.gremlin.GremlinGroovy;
Pankaj Berdef2f2f032013-06-10 21:08:14 -070013import com.tinkerpop.frames.annotations.gremlin.GremlinParam;
Pankaj Berde1b8a42f2013-02-15 08:25:03 -080014import com.tinkerpop.frames.VertexFrame;
15
Teru68076a42013-06-27 14:57:49 -070016/*
17 * This is the interfaces to make the objects for Cassandra DB.
18 * They are interfaces, but it is also implementation,
19 * so this handles various control to the objects.
20 * Please take a look at tinkerpop/frames annotation doc to understand more.
21 */
Pankaj Berde1b8a42f2013-02-15 08:25:03 -080022public interface INetMapTopologyObjects {
23
24public interface IBaseObject extends VertexFrame {
25
26 @JsonProperty("state")
27 @Property("state")
28 public String getState();
Pankaj Berde1cde50b2013-02-19 20:16:06 -080029
Pankaj Berde1b8a42f2013-02-15 08:25:03 -080030 @Property("state")
31 public void setState(final String state);
32
33 @JsonIgnore
34 @Property("type")
35 public String getType();
36 @Property("type")
37 public void setType(final String type);
38
39}
40
41public interface ISwitchObject extends IBaseObject{
42
43 @JsonProperty("dpid")
44 @Property("dpid")
45 public String getDPID();
46
47 @Property("dpid")
48 public void setDPID(String dpid);
49
50 @JsonProperty("ports")
51 @Adjacency(label="on")
52 public Iterable<IPortObject> getPorts();
Pankaj Berde62016142013-04-09 15:35:50 -070053
54// Requires Frames 2.3.0
Pankaj Berdef2f2f032013-06-10 21:08:14 -070055 @JsonIgnore
Toshio Koide46dec822013-06-17 14:21:16 -070056 @GremlinGroovy("it.out('on').has('number',port_num)")
Pankaj Berdef2f2f032013-06-10 21:08:14 -070057 public IPortObject getPort(@GremlinParam("port_num") final short port_num);
Pankaj Berdeda809572013-02-22 15:31:20 -080058
59 @Adjacency(label="on")
Pankaj Berde1b8a42f2013-02-15 08:25:03 -080060 public void addPort(final IPortObject port);
61
62 @Adjacency(label="on")
63 public void removePort(final IPortObject port);
64
65 @JsonIgnore
Toshio Koide46dec822013-06-17 14:21:16 -070066 @GremlinGroovy("it.out('on').out('host')")
Pankaj Berde1b8a42f2013-02-15 08:25:03 -080067 public Iterable<IDeviceObject> getDevices();
Pankaj Berded0079742013-03-27 17:53:25 -070068
69 @JsonIgnore
Teru68076a42013-06-27 14:57:49 -070070 @Adjacency(label="switch",direction = Direction.IN)
Pankaj Berded0079742013-03-27 17:53:25 -070071 public Iterable<IFlowEntry> getFlowEntries();
Pankaj Berdef2f2f032013-06-10 21:08:14 -070072
Pankaj Berde1b8a42f2013-02-15 08:25:03 -080073 }
74
75 public interface IPortObject extends IBaseObject{
76
77 @JsonProperty("number")
78 @Property("number")
79 public Short getNumber();
80
Pankaj Berdebbd38612013-06-22 05:59:12 -070081 @JsonIgnore
82 @Property("port_id")
83 public void setPortId(String id);
84
85 @JsonIgnore
86 @Property("port_id")
87 public String getPortId();
88
Pankaj Berde15193092013-03-21 17:30:14 -070089 @Property("number")
90 public void setNumber(Short n);
91
Pankaj Berde1b8a42f2013-02-15 08:25:03 -080092 @JsonProperty("desc")
93 @Property("desc")
94 public String getDesc();
95
Pankaj Berde15193092013-03-21 17:30:14 -070096 @Property("desc")
97 public void setDesc(String s);
98
99 @JsonIgnore
Pankaj Berdef1404a72013-04-03 11:50:07 -0700100 @Property("port_state")
Pankaj Berde15193092013-03-21 17:30:14 -0700101 public Integer getPortState();
102
103 @Property("port_state")
104 public void setPortState(Integer s);
105
Pankaj Berde1b8a42f2013-02-15 08:25:03 -0800106 @JsonIgnore
Toshio Koide2bab79f2013-06-17 14:29:15 -0700107// @GremlinGroovy("it.in('on')")
Teru87cd2da2013-06-15 20:33:08 -0700108 @Adjacency(label="on",direction = Direction.IN)
Teru80f75132013-06-16 05:16:32 -0700109 public ISwitchObject getSwitch();
Pankaj Berdea6b80c32013-03-29 09:02:56 -0700110
Pankaj Berdeac1a8c32013-02-26 17:45:57 -0800111 @JsonProperty("devices")
Pankaj Berde1b8a42f2013-02-15 08:25:03 -0800112 @Adjacency(label="host")
113 public Iterable<IDeviceObject> getDevices();
114
115 @Adjacency(label="host")
116 public void setDevice(final IDeviceObject device);
117
118 @Adjacency(label="host")
119 public void removeDevice(final IDeviceObject device);
120
Pankaj Berded0079742013-03-27 17:53:25 -0700121 @JsonIgnore
Teru68076a42013-06-27 14:57:49 -0700122 @Adjacency(label="inport",direction = Direction.IN)
Pankaj Berded0079742013-03-27 17:53:25 -0700123 public Iterable<IFlowEntry> getInFlowEntries();
124
125 @JsonIgnore
Teru68076a42013-06-27 14:57:49 -0700126 @Adjacency(label="outport",direction = Direction.IN)
Pankaj Berded0079742013-03-27 17:53:25 -0700127 public Iterable<IFlowEntry> getOutFlowEntries();
128
Pankaj Berde5fb27632013-04-05 08:56:12 -0700129 @JsonIgnore
130 @Adjacency(label="link")
131 public Iterable<IPortObject> getLinkedPorts();
132
Pankaj Berdea6b80c32013-03-29 09:02:56 -0700133 @Adjacency(label="link")
134 public void removeLink(final IPortObject dest_port);
135
Pankaj Berde5fb27632013-04-05 08:56:12 -0700136 @Adjacency(label="link")
137 public void setLinkPort(final IPortObject dest_port);
138
Pankaj Berde1b8a42f2013-02-15 08:25:03 -0800139// @JsonIgnore
140// @Adjacency(label="link")
141// public Iterable<ILinkObject> getLinks();
142 }
143
144 public interface IDeviceObject extends IBaseObject {
145
146 @JsonProperty("mac")
147 @Property("dl_addr")
148 public String getMACAddress();
149 @Property("dl_addr")
Pankaj Berde2497e542013-02-19 18:51:24 -0800150 public void setMACAddress(String macaddr);
Pankaj Berde1b8a42f2013-02-15 08:25:03 -0800151
152 @JsonProperty("ipv4")
153 @Property("nw_addr")
154 public String getIPAddress();
Teru87cd2da2013-06-15 20:33:08 -0700155 @Property("nw_addr")
Pankaj Berde2497e542013-02-19 18:51:24 -0800156 public void setIPAddress(String ipaddr);
Pankaj Berde1b8a42f2013-02-15 08:25:03 -0800157
158 @JsonIgnore
Teru87cd2da2013-06-15 20:33:08 -0700159 @Adjacency(label="host",direction = Direction.IN)
Pankaj Berde2497e542013-02-19 18:51:24 -0800160 public Iterable<IPortObject> getAttachedPorts();
161
162 @JsonIgnore
Teru68076a42013-06-27 14:57:49 -0700163 @Adjacency(label="host",direction=Direction.IN)
Pankaj Berde2497e542013-02-19 18:51:24 -0800164 public void setHostPort(final IPortObject port);
165
166 @JsonIgnore
Teru68076a42013-06-27 14:57:49 -0700167 @Adjacency(label="host",direction=Direction.IN)
Pankaj Berde2497e542013-02-19 18:51:24 -0800168 public void removeHostPort(final IPortObject port);
Pankaj Berde1b8a42f2013-02-15 08:25:03 -0800169
170 @JsonIgnore
Toshio Koide13260102013-06-17 13:44:27 -0700171 @GremlinGroovy("it.in('host').in('on')")
Pankaj Berde2497e542013-02-19 18:51:24 -0800172 public Iterable<ISwitchObject> getSwitch();
173
Pankaj Berdeac1a8c32013-02-26 17:45:57 -0800174/* @JsonProperty("dpid")
175 @GremlinGroovy("_().in('host').in('on').next().getProperty('dpid')")
176 public Iterable<String> getSwitchDPID();
177
178 @JsonProperty("number")
179 @GremlinGroovy("_().in('host').transform{it.number}")
180 public Iterable<Short> getPortNumber();
181
Pankaj Berde2497e542013-02-19 18:51:24 -0800182 @JsonProperty("AttachmentPoint")
183 @GremlinGroovy("_().in('host').in('on').path(){it.number}{it.dpid}")
Pankaj Berdeac1a8c32013-02-26 17:45:57 -0800184 public Iterable<SwitchPort> getAttachmentPoints();*/
Pankaj Berde1b8a42f2013-02-15 08:25:03 -0800185 }
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800186
187public interface IFlowPath extends IBaseObject {
Jonathan Hart01f2d272013-04-04 20:03:46 -0700188 @JsonProperty("flowId")
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800189 @Property("flow_id")
190 public String getFlowId();
191
192 @Property("flow_id")
193 public void setFlowId(String flowId);
194
Jonathan Hart01f2d272013-04-04 20:03:46 -0700195 @JsonProperty("installerId")
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800196 @Property("installer_id")
197 public String getInstallerId();
198
199 @Property("installer_id")
200 public void setInstallerId(String installerId);
201
Pavlin Radoslavovd28cf7c2013-10-26 11:27:43 -0700202 @JsonProperty("flowPathType")
203 @Property("flow_path_type")
204 public String getFlowPathType();
205
206 @Property("flow_path_type")
207 public void setFlowPathType(String flowPathType);
208
Pavlin Radoslavov7d4a40e2013-10-27 23:39:40 -0700209 @JsonProperty("flowPathUserState")
210 @Property("user_state")
211 public String getFlowPathUserState();
212
213 @Property("user_state")
214 public void setFlowPathUserState(String userState);
215
Pavlin Radoslavov204b2862013-07-12 14:15:36 -0700216 @JsonProperty("flowPathFlags")
217 @Property("flow_path_flags")
218 public Long getFlowPathFlags();
219
220 @Property("flow_path_flags")
221 public void setFlowPathFlags(Long flowPathFlags);
222
Jonathan Hart01f2d272013-04-04 20:03:46 -0700223 @JsonProperty("srcDpid")
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800224 @Property("src_switch")
225 public String getSrcSwitch();
226
227 @Property("src_switch")
228 public void setSrcSwitch(String srcSwitch);
229
Jonathan Hart01f2d272013-04-04 20:03:46 -0700230 @JsonProperty("srcPort")
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800231 @Property("src_port")
232 public Short getSrcPort();
233
234 @Property("src_port")
235 public void setSrcPort(Short srcPort);
236
Jonathan Hart01f2d272013-04-04 20:03:46 -0700237 @JsonProperty("dstDpid")
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800238 @Property("dst_switch")
239 public String getDstSwitch();
240
241 @Property("dst_switch")
242 public void setDstSwitch(String dstSwitch);
243
Jonathan Hart01f2d272013-04-04 20:03:46 -0700244 @JsonProperty("dstPort")
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800245 @Property("dst_port")
246 public Short getDstPort();
247
248 @Property("dst_port")
249 public void setDstPort(Short dstPort);
250
Jonathan Hart01f2d272013-04-04 20:03:46 -0700251 @JsonProperty("dataPath")
252 @JsonSerialize(using=DatapathSummarySerializer.class)
Pavlin Radoslavovdbaaf2e2013-03-29 04:25:55 -0700253 @Property("data_path_summary")
254 public String getDataPathSummary();
255
256 @Property("data_path_summary")
257 public void setDataPathSummary(String dataPathSummary);
258
Jonathan Hart01f2d272013-04-04 20:03:46 -0700259 @JsonIgnore
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800260 @Adjacency(label="flow", direction=Direction.IN)
261 public Iterable<IFlowEntry> getFlowEntries();
262
263 @Adjacency(label="flow", direction=Direction.IN)
264 public void addFlowEntry(final IFlowEntry flowEntry);
265
266 @Adjacency(label="flow", direction=Direction.IN)
267 public void removeFlowEntry(final IFlowEntry flowEntry);
Pavlin Radoslavov67b3ef32013-04-03 02:44:48 -0700268
Pavlin Radoslavov1bc2c472013-07-17 18:11:37 -0700269 //
270 // Matching fields
271 //
Jonathan Hart01f2d272013-04-04 20:03:46 -0700272 @JsonIgnore
Pavlin Radoslavov67b3ef32013-04-03 02:44:48 -0700273 @Property("matchSrcMac")
274 public String getMatchSrcMac();
275
276 @Property("matchSrcMac")
277 public void setMatchSrcMac(String matchSrcMac);
278
Jonathan Hart01f2d272013-04-04 20:03:46 -0700279 @JsonIgnore
Pavlin Radoslavov67b3ef32013-04-03 02:44:48 -0700280 @Property("matchDstMac")
281 public String getMatchDstMac();
282
283 @Property("matchDstMac")
284 public void setMatchDstMac(String matchDstMac);
285
Jonathan Hart01f2d272013-04-04 20:03:46 -0700286 @JsonIgnore
Pavlin Radoslavovad3a1e62013-07-09 13:30:16 -0700287 @Property("matchEthernetFrameType")
288 public Short getMatchEthernetFrameType();
289
290 @Property("matchEthernetFrameType")
291 public void setMatchEthernetFrameType(Short matchEthernetFrameType);
292
293 @JsonIgnore
294 @Property("matchVlanId")
295 public Short getMatchVlanId();
296
297 @Property("matchVlanId")
298 public void setMatchVlanId(Short matchVlanId);
299
300 @JsonIgnore
301 @Property("matchVlanPriority")
302 public Byte getMatchVlanPriority();
303
304 @Property("matchVlanPriority")
305 public void setMatchVlanPriority(Byte matchVlanPriority);
306
307 @JsonIgnore
Pavlin Radoslavov67b3ef32013-04-03 02:44:48 -0700308 @Property("matchSrcIPv4Net")
309 public String getMatchSrcIPv4Net();
310
311 @Property("matchSrcIPv4Net")
312 public void setMatchSrcIPv4Net(String matchSrcIPv4Net);
313
Jonathan Hart01f2d272013-04-04 20:03:46 -0700314 @JsonIgnore
Pavlin Radoslavov67b3ef32013-04-03 02:44:48 -0700315 @Property("matchDstIPv4Net")
316 public String getMatchDstIPv4Net();
317
318 @Property("matchDstIPv4Net")
319 public void setMatchDstIPv4Net(String matchDstIPv4Net);
Pavlin Radoslavovad3a1e62013-07-09 13:30:16 -0700320
321 @JsonIgnore
322 @Property("matchIpProto")
323 public Byte getMatchIpProto();
324
325 @Property("matchIpProto")
326 public void setMatchIpProto(Byte matchIpProto);
327
328 @JsonIgnore
329 @Property("matchIpToS")
330 public Byte getMatchIpToS();
331
332 @Property("matchIpToS")
333 public void setMatchIpToS(Byte matchIpToS);
334
335 @JsonIgnore
336 @Property("matchSrcTcpUdpPort")
337 public Short getMatchSrcTcpUdpPort();
338
339 @Property("matchSrcTcpUdpPort")
340 public void setMatchSrcTcpUdpPort(Short matchSrcTcpUdpPort);
341
342 @JsonIgnore
343 @Property("matchDstTcpUdpPort")
344 public Short getMatchDstTcpUdpPort();
345
346 @Property("matchDstTcpUdpPort")
347 public void setMatchDstTcpUdpPort(Short matchDstTcpUdpPort);
348
Pavlin Radoslavov1bc2c472013-07-17 18:11:37 -0700349 //
350 // Action-related fields
351 //
352 @Property("actions")
353 public String getActions();
354
355 @Property("actions")
356 public void setActions(String actionsStr);
357
358 //
359 // Other fields
360 //
Pankaj Berded0079742013-03-27 17:53:25 -0700361 @JsonIgnore
Toshio Koide13260102013-06-17 13:44:27 -0700362 @GremlinGroovy("it.in('flow').out('switch')")
Pankaj Berdef1404a72013-04-03 11:50:07 -0700363 public Iterable<ISwitchObject> getSwitches();
Jonathan Hart01f2d272013-04-04 20:03:46 -0700364
365 @JsonIgnore
366 @Property("state")
367 public String getState();
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800368 }
369
370public interface IFlowEntry extends IBaseObject {
371 @Property("flow_entry_id")
372 public String getFlowEntryId();
373
374 @Property("flow_entry_id")
375 public void setFlowEntryId(String flowEntryId);
376
377 @Property("switch_dpid")
378 public String getSwitchDpid();
379
380 @Property("switch_dpid")
381 public void setSwitchDpid(String switchDpid);
382
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800383 @Property("user_state")
384 public String getUserState();
385
386 @Property("user_state")
387 public void setUserState(String userState);
388
389 @Property("switch_state")
390 public String getSwitchState();
391
392 @Property("switch_state")
393 public void setSwitchState(String switchState);
394
395 @Property("error_state_type")
396 public String getErrorStateType();
397
398 @Property("error_state_type")
399 public void setErrorStateType(String errorStateType);
400
401 @Property("error_state_code")
402 public String getErrorStateCode();
403
404 @Property("error_state_code")
405 public void setErrorStateCode(String errorStateCode);
Pavlin Radoslavove2f0de82013-03-12 01:39:30 -0700406
Pavlin Radoslavov1bc2c472013-07-17 18:11:37 -0700407 //
408 // Matching fields
409 //
Pavlin Radoslavove2f0de82013-03-12 01:39:30 -0700410 @Property("matchInPort")
411 public Short getMatchInPort();
412
413 @Property("matchInPort")
414 public void setMatchInPort(Short matchInPort);
415
Pavlin Radoslavove2f0de82013-03-12 01:39:30 -0700416 @Property("matchSrcMac")
417 public String getMatchSrcMac();
418
419 @Property("matchSrcMac")
420 public void setMatchSrcMac(String matchSrcMac);
421
422 @Property("matchDstMac")
423 public String getMatchDstMac();
424
425 @Property("matchDstMac")
426 public void setMatchDstMac(String matchDstMac);
427
Pavlin Radoslavovad3a1e62013-07-09 13:30:16 -0700428 @Property("matchEthernetFrameType")
429 public Short getMatchEthernetFrameType();
430
431 @Property("matchEthernetFrameType")
432 public void setMatchEthernetFrameType(Short matchEthernetFrameType);
433
434 @Property("matchVlanId")
435 public Short getMatchVlanId();
436
437 @Property("matchVlanId")
438 public void setMatchVlanId(Short matchVlanId);
439
440 @Property("matchVlanPriority")
441 public Byte getMatchVlanPriority();
442
443 @Property("matchVlanPriority")
444 public void setMatchVlanPriority(Byte matchVlanPriority);
445
Pavlin Radoslavove2f0de82013-03-12 01:39:30 -0700446 @Property("matchSrcIPv4Net")
447 public String getMatchSrcIPv4Net();
448
449 @Property("matchSrcIPv4Net")
450 public void setMatchSrcIPv4Net(String matchSrcIPv4Net);
451
452 @Property("matchDstIPv4Net")
453 public String getMatchDstIPv4Net();
454
455 @Property("matchDstIPv4Net")
456 public void setMatchDstIPv4Net(String matchDstIPv4Net);
457
Pavlin Radoslavovad3a1e62013-07-09 13:30:16 -0700458 @Property("matchIpProto")
459 public Byte getMatchIpProto();
460
461 @Property("matchIpProto")
462 public void setMatchIpProto(Byte matchIpProto);
463
464 @Property("matchIpToS")
465 public Byte getMatchIpToS();
466
467 @Property("matchIpToS")
468 public void setMatchIpToS(Byte matchIpToS);
469
470 @Property("matchSrcTcpUdpPort")
471 public Short getMatchSrcTcpUdpPort();
472
473 @Property("matchSrcTcpUdpPort")
474 public void setMatchSrcTcpUdpPort(Short matchSrcTcpUdpPort);
475
476 @Property("matchDstTcpUdpPort")
477 public Short getMatchDstTcpUdpPort();
478
479 @Property("matchDstTcpUdpPort")
480 public void setMatchDstTcpUdpPort(Short matchDstTcpUdpPort);
481
Pavlin Radoslavov1bc2c472013-07-17 18:11:37 -0700482 //
483 // Action-related fields
484 //
Pavlin Radoslavovc1bafd12013-07-12 17:00:35 -0700485 @Property("actionOutputPort")
486 public Short getActionOutputPort();
Pavlin Radoslavove2f0de82013-03-12 01:39:30 -0700487
Pavlin Radoslavovc1bafd12013-07-12 17:00:35 -0700488 @Property("actionOutputPort")
489 public void setActionOutputPort(Short actionOutputPort);
Pavlin Radoslavov1d4a1072013-03-28 05:29:49 -0700490
Pavlin Radoslavov1bc2c472013-07-17 18:11:37 -0700491 @Property("actions")
492 public String getActions();
493
494 @Property("actions")
495 public void setActions(String actionsStr);
496
497 //
498 // Other fields
499 //
Pavlin Radoslavov1d4a1072013-03-28 05:29:49 -0700500 @Adjacency(label="flow")
501 public IFlowPath getFlow();
502
503 @Adjacency(label="flow")
504 public void setFlow(IFlowPath flow);
505
Pankaj Berded0079742013-03-27 17:53:25 -0700506 @Adjacency(label="switch")
507 public ISwitchObject getSwitch();
Pavlin Radoslavov1d4a1072013-03-28 05:29:49 -0700508
Pankaj Berded0079742013-03-27 17:53:25 -0700509 @Adjacency(label="switch")
510 public void setSwitch(ISwitchObject sw);
Pavlin Radoslavov1d4a1072013-03-28 05:29:49 -0700511
Pankaj Berded0079742013-03-27 17:53:25 -0700512 @Adjacency(label="inport")
513 public IPortObject getInPort();
Pavlin Radoslavov1d4a1072013-03-28 05:29:49 -0700514
Pankaj Berded0079742013-03-27 17:53:25 -0700515 @Adjacency(label="inport")
516 public void setInPort(IPortObject port);
Pavlin Radoslavov1d4a1072013-03-28 05:29:49 -0700517
Pankaj Berded0079742013-03-27 17:53:25 -0700518 @Adjacency(label="outport")
519 public IPortObject getOutPort();
Pavlin Radoslavov1d4a1072013-03-28 05:29:49 -0700520
Pavlin Radoslavov4fead9c2013-03-28 03:09:27 -0700521 @Adjacency(label="outport")
Pankaj Berded0079742013-03-27 17:53:25 -0700522 public void setOutPort(IPortObject port);
Pavlin Radoslavovb6f53542013-03-01 16:02:14 -0800523 }
Pankaj Berde1b8a42f2013-02-15 08:25:03 -0800524}