/** * Copyright (c) 2007-2009 Alysson Bessani, Eduardo Alchieri, Paulo Sousa, and the authors indicated in the @author tags * * This file is part of SMaRt. * * SMaRt is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * SMaRt is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with SMaRt. If not, see <http://www.gnu.org/licenses/>. */ package bftsmart.communication; import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; /** * This is the super-class for all other kinds of messages created by JBP * */ public abstract class SystemMessage implements Externalizable { protected int sender; // ID of the process which sent the message public transient boolean authenticated; // set to TRUE if the message was received // with a (valid) mac, FALSE if no mac was given // note that if the message arrives with an // invalid MAC, it won't be delivered /** * Creates a new instance of SystemMessage */ public SystemMessage(){} /** * Creates a new instance of SystemMessage * @param sender ID of the process which sent the message */ public SystemMessage(int sender){ this.sender = sender; } /** * Returns the ID of the process which sent the message * @return */ public final int getSender() { return sender; } // This methods implement the Externalizable interface @Override public void writeExternal(ObjectOutput out) throws IOException { out.writeInt(sender); } @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { sender = in.readInt(); } }