1 package org.metricshub.ipmi.core.sm.events; 2 3 /*- 4 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲ 5 * IPMI Java Client 6 * ჻჻჻჻჻჻ 7 * Copyright 2023 Verax Systems, MetricsHub 8 * ჻჻჻჻჻჻ 9 * This program is free software: you can redistribute it and/or modify 10 * it under the terms of the GNU Lesser General Public License as 11 * published by the Free Software Foundation, either version 3 of the 12 * License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Lesser Public License for more details. 18 * 19 * You should have received a copy of the GNU General Lesser Public 20 * License along with this program. If not, see 21 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 22 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱ 23 */ 24 25 import org.metricshub.ipmi.core.coding.commands.session.GetChannelAuthenticationCapabilities; 26 import org.metricshub.ipmi.core.sm.StateMachine; 27 import org.metricshub.ipmi.core.sm.states.SessionValid; 28 import org.metricshub.ipmi.core.sm.states.State; 29 30 /** 31 * {@link StateMachineEvent} that will make {@link StateMachine} in the 32 * {@link SessionValid} {@link State} to send 33 * {@link GetChannelAuthenticationCapabilities} to the BMC in order to keep up 34 * the session. 35 * 36 * @see StateMachine 37 */ 38 public class SessionUpkeep extends StateMachineEvent { 39 private int sessionId; 40 private int messageSequenceNumber; 41 private int sessionSequenceNumber; 42 43 /** 44 * Prepares {@link SessionUpkeep} 45 * 46 * @param sessionId 47 * - managed system session ID 48 * 49 * @param messageSequenceNumber 50 * - generated payload sequence number for the message to send 51 * 52 * @param sessionSequenceNumber 53 * - generated session sequence number for the message to send. 54 */ 55 public SessionUpkeep(int sessionId, int messageSequenceNumber, int sessionSequenceNumber) { 56 this.messageSequenceNumber = messageSequenceNumber; 57 this.sessionSequenceNumber = sessionSequenceNumber; 58 this.sessionId = sessionId; 59 } 60 61 public int getSessionId() { 62 return sessionId; 63 } 64 65 public int getMessageSequenceNumber() { 66 return messageSequenceNumber; 67 } 68 69 public int getSessionSequenceNumber() { 70 return sessionSequenceNumber; 71 } 72 }