blob: 59c019ed0f32307cb78d4e913df0b988979f4d08 [file] [log] [blame]
// SPDX-License-Identifier: LGPL-2.1-or-later
// Copyright (c) 2012-2014 Monty Program Ab
// Copyright (c) 2015-2021 MariaDB Corporation Ab
package org.mariadb.jdbc.client;
import org.mariadb.jdbc.Configuration;
import org.mariadb.jdbc.export.ExceptionFactory;
public interface Context {
/**
* return current thread id
*
* @return current server thread id
*/
long getThreadId();
/**
* Get connection initial seed
*
* @return initial seed
*/
byte[] getSeed();
/**
* has server capability
*
* @param flag capability to check
* @return true if server has capability
*/
boolean hasServerCapability(long flag);
/**
* has client capability
*
* @param flag capability to check
* @return true if client has capability
*/
boolean hasClientCapability(long flag);
/**
* Does server and client permit pipeline
*
* @return true if permitted
*/
boolean permitPipeline();
/**
* Get server connection state
*
* @return server status
*/
int getServerStatus();
/**
* Set server connection state
*
* @param serverStatus server status
*/
void setServerStatus(int serverStatus);
/**
* Get current connection database
*
* @return database
*/
String getDatabase();
/**
* set current database context
*
* @param database database
*/
void setDatabase(String database);
/**
* Retrieve server version information
*
* @return server version
*/
ServerVersion getVersion();
/**
* does protocol remove EOF in exchanges
*
* @return if EOF packet are deprecated
*/
boolean isEofDeprecated();
/**
* Can server skip prepared statement metadata
*
* @return true if possible
*/
boolean canSkipMeta();
/**
* Does server metadata exchange extended information
*
* @return use metadata extended information
*/
boolean isExtendedInfo();
/**
* has server warnings
*
* @return has warnings
*/
int getWarning();
/**
* set server state warning number
*
* @param warning warning number
*/
void setWarning(int warning);
/**
* Get connection exception factory
*
* @return exception factory
*/
ExceptionFactory getExceptionFactory();
/**
* Get connection configuration
*
* @return configuration
*/
Configuration getConf();
/**
* Get connection transaction isolation level
*
* @return connection transaction isolation level
*/
int getTransactionIsolationLevel();
/**
* Set current connection transaction isolation level
*
* @param transactionIsolationLevel new connection transaction isolation level
*/
void setTransactionIsolationLevel(int transactionIsolationLevel);
/**
* get LRU prepare cache object
*
* @return prepare cache
*/
PrepareCache getPrepareCache();
/** Reset prepare cache (after a failover) */
void resetPrepareCache();
/**
* return connection current state change flag
*
* @return connection current state change flag
*/
int getStateFlag();
/** reset connection state change flag */
void resetStateFlag();
/**
* Indicate connection state (for pooling)
*
* @param state indicate that some connection state has changed
*/
void addStateFlag(int state);
}