/*******************************************************************************
* Copyright (c) quickfixj.org All rights reserved.
*
* This file is part of the QuickFIX/J FIX Engine
*
* This file may be distributed under the terms of the quickfixj.org
* license as defined by quickfixj.org and appearing in the file
* LICENSE included in the packaging of this file.
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING
* THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE.
*
* See http://www.quickfixj.org/LICENSE for licensing information.
*
******************************************************************************/
package org.quickfixj.jmx.mbean.session;
import quickfix.SessionNotFound;
import java.io.IOException;
import javax.management.ObjectName;
/**
* This MBean provides the ability monitor session settings and to
* change some of them.
*/
public interface SessionAdminMBean {
/**
* Get the begin string (FIX version) for the session
*
* @return the begin string for the session
*/
String getBeginString();
/**
* Get the target company ID for the session.
*
* @return the target company ID
*/
String getTargetCompID();
/**
* Get the target subID for the session.
*
* @return the target subID
*/
String getTargetSubID();
/**
* Get the target location ID for the session.
*
* @return the target location ID
*/
String getTargetLocationID();
/**
* Get the sender company ID for the session.
*
* @return the sender company ID
*/
String getSenderCompID();
/**
* Get the sender company subID for the session.
*
* @return the sender subID
*/
String getSenderSubID();
/**
* Get the sender company location ID for the session.
*
* @return the sender location ID
*/
String getSenderLocationID();
/**
* Get the session ID.
* @return the session ID
*/
String getSessionID();
/**
* Get the next sender message sequence number.
*
* @return the next sender message sequence number
* @throws IOException
*/
int getNextSenderMsgSeqNum() throws IOException;
/**
* Set the next sender message sequence number. It's dangerous
* to use this operation on an active session.
*
* @param next next sender message sequence number
* @throws IOException
*/
void setNextSenderMsgSeqNum(int next) throws IOException;
/**
* Get the next target message sequence number.
*
* @return next target message sequence number
*/
int getNextTargetMsgSeqNum() throws IOException;
/**
* Set the next target message sequence number. It's dangerous
* to use this operation on an active session.
*
* @param next the next target message sequence number
* @throws IOException
*/
void setNextTargetMsgSeqNum(int next) throws IOException;
boolean isLogonSent();
boolean isLogonReceived();
boolean isLogonAlreadySent();
boolean isLogonSendNeeded();
boolean isLogonTimedOut();
boolean isLogoutSent();
boolean isLogoutReceived();
boolean isLogoutTimedOut();
void setLogoutTimeout(int seconds);
void setLogonTimeout(int seconds);
int getLogoutTimeout();
int getLogonTimeout();
boolean isLoggedOn();
boolean getRedundantResendRequestsAllowed();
String getLogClassName();
String getMessageFactoryClassName();
String getMessageStoreClassName();
// TODO JMX Add schedule support
//String getSchedule();
boolean isUsingDataDictionary();
boolean getCheckCompID();
boolean getRefreshOnLogon();
boolean getResetOnLogout();
boolean getResetOnDisconnect();
/**
* Reset the session's sequence numbers and clear it's resend log.
* @throws IOException
*/
void reset() throws IOException;
/**
* Tell the session to logoff.
*/
void logoff();
/**
* Tell the session to logon.
*/
void logon();
/**
* Send a examples Request message
*/
void sendTestRequest();
/**
* Send a heartBeat message
*/
void sendHeartBeat();
/**
* Send a logout message
*/
void sendLogoutMessage();
/** Reset current sequence number */
void resetSequence(int nextSeqNum) throws SessionNotFound;
/**
* Tell the session to disconnect (implies logoff)
* @throws IOException
*/
void disconnect() throws IOException;
boolean getEnabled();
String getStartTime();
String getConnectionRole();
ObjectName getConnectorName();
}