/** * Deliver a certain message. * * @param message the message to be delivered */ @Override protected void send(final Message<int[]> message) { final int k; k = this.m_traits[message.m_owner.m_index]; if (this.m_manager.modify( message, ((k & ByzantineType.SEND_SAME_ERRORS) != 0), ((k & ByzantineType.SELDOMLY_SEND) != 0))) { super.send(message); } }
/** * This method is called right before the simulation begins. * * @throws IllegalStateException if this simulation is already running. */ @Override public void beginSimulation() { int i; super.beginSimulation(); i = this.getSimulationIndex(); this.m_traits = this.m_traitors[i]; this.m_manager.reset(i); // this.m_err = this.m_errors[i]; // this.m_errIdx = 0; }
/** * deliver the message <code>message</code> to the node at index <code>to</code>. * * @param message the message to be delivered * @param to the node to deliver to */ @SuppressWarnings("unchecked") @Override protected void deliver(final Message<int[]> message, final NetVirtualMachine<MT, PT, int[]> to) { final int k; k = this.m_traits[message.m_owner.m_index]; if (this.m_manager.modify( message, ((k & ByzantineType.SEND_DIFFERENT_ERRORS) != 0), ((k & ByzantineType.SELDOMLY_RECEIVED) != 0))) { super.deliver(message, to); } }