-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathIOHandler.java
More file actions
109 lines (103 loc) · 3.28 KB
/
IOHandler.java
File metadata and controls
109 lines (103 loc) · 3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
/**
*
* @author asus
*/
public class IOHandler {
public int m_nNode;
public final String m_strURLInbox;
public final String m_strURLOutbox;
BufferedReader buffered_reader;
PrintWriter print_writer;
PrintWriter print_writer_datafile;
public IOHandler(int x_nNode) throws FileNotFoundException, IOException
{
m_nNode = x_nNode;
m_strURLInbox = "To" + m_nNode + ".txt";
m_strURLOutbox = "From" + m_nNode + ".txt";
buffered_reader = new BufferedReader(new FileReader(m_strURLInbox));
print_writer = new PrintWriter(new BufferedWriter(new FileWriter(m_strURLOutbox, false)));
print_writer_datafile = new PrintWriter(new BufferedWriter(new FileWriter(m_nNode+"Received.txt",false)));
}
public void StoreReceivedMessage(DataMessage x_DataMessage)
{
print_writer_datafile.println(x_DataMessage.getMessage());
print_writer_datafile.flush();
}
public void SendHelloMessage(HelloMessage x_Hello)
{
print_writer.println(x_Hello.getMessage());
print_writer.flush();
}
public void SendDataMessage(DataMessage x_DataMassage)
{
System.out.println("DataMessage: "+x_DataMassage.getMessage());
print_writer.println(x_DataMassage.getMessage());
print_writer.flush();
}
public void SendTCMessage(TCMessage x_TCMessage)
{
print_writer.println(x_TCMessage.getMessage());
print_writer.flush();
}
public ArrayList<Object> ReadMessages() throws IOException
{
String str;
ArrayList<Object> lstMessages = new ArrayList<>();
while((str = buffered_reader.readLine()) != null)
{
if(IsHelloMessage(str))
{
lstMessages.add(new HelloMessage(str));
}
else if(IsTCMessage(str))
{
lstMessages.add(new TCMessage(str));
}
else if(IsDataMessage(str))
{
lstMessages.add(new DataMessage(str));
}
}
return lstMessages;
}
private boolean IsHelloMessage(String x_strMessage)
{
if(x_strMessage.indexOf("HELLO UNIDIR") != -1)
return true;
else
return false;
}
private boolean IsTCMessage(String x_strMessage)
{
if(x_strMessage.indexOf("TC") != -1)
return true;
else
return false;
}
private boolean IsDataMessage(String x_strMessage)
{
if(x_strMessage.indexOf("DATA") != -1)
return true;
else
return false;
}
public void CloseFiles() throws IOException
{
buffered_reader.close();
print_writer.close();
print_writer_datafile.close();
}
}