Project

General

Profile

Statistics
| Revision:

root / proj / src / Message.java @ 1

History | View | Annotate | Download (1.34 KB)

1
import java.nio.charset.StandardCharsets;
2

    
3
public class Message {
4
        Header header;
5
        public static String CRLF = "" + (char) 0xD  + (char) 0xA;
6
        byte[] body;
7
        
8
        
9
        
10
        public Message(String messageType, String version, int senderId, String fileId,int chunkNo, int ReplicationDeg, byte[] body) {
11
                //<MessageType> <Version> <SenderId> <FileId> <ChunkNo> <ReplicationDeg> <CRLF>
12
                this.header= new Header(messageType, version, senderId, fileId, chunkNo, ReplicationDeg);
13
                this.body = body;
14
        }
15
        
16
        
17
        public String messageToString() {
18
                if(body != null)
19
                return header.getMessageType() + " " + header.getVersion() + " " + header.getSenderId() + " " + header.getFileId() + " " + 
20
                header.getChunkNo() + " " + header.getReplicationDeg() + " "+ CRLF + CRLF + new String(body, StandardCharsets.UTF_8);
21
                else return header.getMessageType() + " " + header.getVersion() + " " + header.getSenderId() + " " + header.getFileId() + " " + 
22
                header.getChunkNo() + " " + header.getReplicationDeg() + " "+ CRLF + CRLF;
23
        }        
24
        
25
        public String messageToStringPrintable() {
26
                return header.getMessageType() + " " + header.getVersion() + " " + header.getSenderId() + " " + header.getFileId() + " " + 
27
                header.getChunkNo() + " " + header.getReplicationDeg() ;
28
        }
29
        
30
        public byte[] sendable() {
31
                return this.messageToString().getBytes();
32
        }
33
        
34
        public byte[] getBody() 
35
        {
36
                return this.body;
37
        }
38
        
39
}