Merge branch 'master' of ssh://plrg.eecs.uci.edu/home/git/iot2
[iot2.git] / iotjava / iotruntime / IoTTCP.java
1 package iotruntime;\r
2 \r
3 // Java packages\r
4 import java.io.IOException;\r
5 import java.net.UnknownHostException;\r
6 import java.net.SocketException;\r
7 import java.net.Socket;\r
8 import java.net.InetAddress;\r
9 import java.net.ServerSocket;\r
10 import java.io.InputStream;\r
11 import java.io.OutputStream;\r
12 \r
13 import iotruntime.slave.IoTDeviceAddress;\r
14 \r
15 /** Class IoTTCP is a wrapper class that provides\r
16  *  minimum interfaces for user to interact with IoT\r
17  *  devices in our system\r
18  *\r
19  * @author      Rahmadi Trimananda <rahmadi.trimananda @ uci.edu>\r
20  * @version     1.0\r
21  * @since       2016-02-18\r
22  */\r
23 public final class IoTTCP {\r
24 \r
25         /**\r
26          * IoTTCP class properties\r
27          */\r
28         private Socket socket;\r
29 \r
30         protected IoTTCP(Socket _socket) {\r
31                 socket = _socket;\r
32         }\r
33 \r
34         /**\r
35          * Class constructor\r
36          */\r
37         public IoTTCP(IoTDeviceAddress iotDevAdd) throws UnknownHostException, IOException {\r
38 \r
39                 String strHostAddress = iotDevAdd.getHostAddress();\r
40                 int iSrcPort = iotDevAdd.getSourcePortNumber();\r
41                 int iDstPort = iotDevAdd.getDestinationPortNumber();\r
42 \r
43                 socket = new Socket(strHostAddress, iDstPort, InetAddress.getLocalHost(), iSrcPort);\r
44         }\r
45 \r
46         /**\r
47          * getInputStream() method\r
48          */\r
49         public InputStream getInputStream() throws UnknownHostException, IOException {\r
50 \r
51                 return socket.getInputStream();\r
52         }\r
53 \r
54         /**\r
55          * getOutputStream() method\r
56          */\r
57         public OutputStream getOutputStream() throws UnknownHostException, IOException {\r
58 \r
59                 return socket.getOutputStream();\r
60         }\r
61 \r
62         /**\r
63         * setReuseAddress(boolean on) method\r
64         */\r
65         public void setReuseAddress(boolean on) throws SocketException {\r
66 \r
67                 socket.setReuseAddress(on);\r
68         }\r
69 \r
70 \r
71         /**\r
72          * close() method\r
73          */\r
74         public void close() throws UnknownHostException, IOException {\r
75 \r
76                 socket.close();\r
77         }\r
78 }\r